0

我有具有以下结构的原始 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 的更多信息,我想知道是否有任何方法可以对属性进行排序。

谢谢。

4

1 回答 1

2

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

于 2013-05-21T11:26:49.173 回答