代码之家  ›  专栏  ›  技术社区  ›  SAL

命名空间的XML属性排序

  •  4
  • SAL  · 技术社区  · 16 年前

    相关问题 one I asked earlier

    检查一下:XML文件中xmlns、xmlns:xsi和xsi:schemaLocation属性的顺序是否重要?

    我发现确实如此——至少在使用XML记事本2007查看XML文件时如此。例如(假设我的XML文件根据我的模式是合法的),这不会给出错误(示例1):

    <myroot 
        xmlns="http://www.someurl.com/ns/myroot" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.someurl.com/ns/myroot http://www.someurl.com/xml/schemas/myschema.xsd">
    
       <sometag>somecontent</sometag>
    
    </myroot>
    

    但这个例子(例2)是这样的:

    <myroot 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.someurl.com/ns/myroot http://www.someurl.com/xml/schemas/myschema.xsd"
        xmlns="http://www.someurl.com/ns/myroot"> 
    
       <sometag>somecontent</sometag>
    
    </myroot>
    

    (错误是,根据架构,“sometag”是非法条目)。

    我的问题是,如果我使用另一个问题中的代码来生成名称空间和模式属性,那么我将按照示例2的顺序获得XML属性输出…

    xmlns属性是否总是在属性列表中的第一个?

    1 回复  |  直到 16 年前
        1
  •  1
  •   SAL    16 年前

    啊-我发现了我的问题……

    我正在处理的XML非常复杂,我没有注意到我在所有子节点中都插入了一个xmlns=“”。一旦我消除了这个问题,名称空间属性的排序就没有什么区别了——这正是我所期望的……