根目录中命名空间的顺序是否重要?有可能订购吗?

时间:2013-05-21 10:14:03

标签: xml linq-to-xml

我有原始的xml,它有以下结构:

<Root xmlns="http://xyz.com/2006/root" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xyz.com/2006/root.xsd">

要创建新的xml,我使用以下代码:

XNamespace ns = "http://xyz.com/2006/root";
            XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
            XDocument doc = new XDocument(
                new XDeclaration("1.0", "UTF-8", null),
                new XElement(ns + "root",
                    new XAttribute(XNamespace.Xmlns + "xsi", xsiNs),
                    new XAttribute(xsiNs + "schemaLocation",
                        "http://xyz.com/2006/root.xsd"),
            ));

结果是:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xyz.com/2006/root.xsd" xmlns="http://xyz.com/2006/root">

我们怎么看,原来xmls是第一个属性,xmls:xsi是第二个,xsi:schemalocation是最后一个。在新的xml中,顺序是不同的。

我想知道订单是否重要。

但是,要了解有关xml的更多信息,我想知道是否有任何方法可以订购属性。

感谢。

1 个答案:

答案 0 :(得分:2)

XML中的属性顺序(包括名称空间声明属性)没有意义。保留原始订单不需要XML处理工具。