2
Linq中有两种方法可以为同一命名空间使用两个前缀吗?例如,在“foo1”和“foo2”下面有两个前缀指向我想在文档中使用的相同名称空间。我怎么做?c#linq xml如何为同一命名空间使用两个前缀
<foo1:Begin foo2:Name="somevalue" xmlns:foo1="http://foo" xmlns:foo2="http://foo" xmlns="http://bar">
<foo1:Child foo2:Name="somename" />
<SomeBarElement />
</foo1:Begin>
在我所有的代码,我定义的元素如:
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";
我想能够使用元素的类似的定义和usuage保持一致性。不管走到哪里我没有两个前缀我做这样的事情:
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)
);
我需要两个前缀,因为命名空间可以在以后更改 - 即使不是,是有意义的使用不同的前缀的元素在逻辑上分开。
为什么你有这样的要求......? – 2011-05-01 05:28:24
我需要两个前缀,因为从逻辑上分离相同名称空间中的元素是有意义的。尽管如此,由于这在技术上是有效的,linq必须允许某种方式这样做,不是吗? – Raj 2011-05-01 16:29:00
为什么你今天需要命名空间是一样的? – Tormod 2011-08-24 21:46:19