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属性是否必须始终位于属性列表中?
答案 0 :(得分:1)
我实际上正在处理的XML非常复杂,我没有注意到我在所有子节点中都插入了xmlns =“”。一旦我删除了问题就会消失,命名空间属性的排序没有任何区别 - 这就是我所期望的......