Linq에서 동일한 네임 스페이스에 두 개의 접두어를 사용하는 방법이 있습니까? 예를 들어, "foo1"과 "foo2"아래에 두 개의 접두어가 있는데, 내 문서에서 사용하려는 네임 스페이스를 가리키고 있습니다. 어떻게해야합니까? 나는 일관성을 유지하기 위해 요소의 유사한 정의와 usuage를 사용할 수 있도록하고 싶습니다# linq xml 동일한 네임 스페이스에 두 개의 접두사를 사용하는 방법
string foo = "http://foo";
string bar = "http://bar";
string foo1 = "foo1";
string foo2 = "foo2";
XName Begin = "{" + foo + "}" + "Begin";
XName Child = "{" + foo + "}" + "Child";
XName Name = "{" + foo + "}" + "Name";
XName SomeBarElement = "{" + bar + "}" + "SomeBarElement";
:
<foo1:Begin foo2:Name="somevalue" xmlns:foo1="http://foo" xmlns:foo2="http://foo" xmlns="http://bar">
<foo1:Child foo2:Name="somename" />
<SomeBarElement />
</foo1:Begin>
모든 내 코드에서 나는 같은 요소를 정의합니다. - 심지어하지 않을 경우, 그것은 논리적으로 다른 접두사를 사용하여 요소를 분리하는 의미가 네임 스페이스 나중에 변경 될 수 있기 때문에
XElement doc = new XElement(Begin,
new XAttribute(XNamespace.Xmlns + foo1, foo),
new XAttribute(XNamespace.Xmlns, bar),
new XElement(Child, new XAttribute(Name, "somename")),
new XElement(SomeBarElement)
);
내가이 접두사가 필요합니다 : 나는이 접두사를 해달라고 어디서나 내가 좋아하는 뭔가.
왜 그런 요구 사항이 있습니까? –
동일한 네임 스페이스의 요소를 논리적으로 분리하는 것이 적절하기 때문에 두 개의 접두사가 필요합니다. 그럼에도 불구하고, 이것은 기술적으로 유효한 XML이기 때문에, linq은 그렇게하는 어떤 방법을 허용해야합니까? – Raj
왜 오늘 네임 스페이스가 같아야합니까? – Tormod