命名空间的XML属性排序

时间:2008-12-03 15:44:35

标签: xml namespaces xsd

one I asked earlier的相关问题......

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

我发现它确实如此 - 至少在使用XML Notepad 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 个答案:

答案 0 :(得分:1)

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

我实际上正在处理的XML非常复杂,我没有注意到我在所有子节点中都插入了xmlns =“”。一旦我删除了问题就会消失,命名空间属性的排序没有任何区别 - 这就是我所期望的......