我们的xml文件的根节点中:
<IndividualAnnex xmlns= "https://XXXXXX " xmlns:xsi= "http://XXXXXXX " xsi:schemaLocation= "https://YYYYYYYY "/>
其中xsi:schemaLocation这个搞不懂,到底是节点的命名空间声明还是属性的命名空间前缀,
我在jDom里把schemaLocation定义为属性,把xsi定位为属性的命名空间前缀,但是往节点上增加该属性时报xsi命名空间已定义,把xsi:schemaLocation都定义为属性又报属性名不能带 ': ',晕了~~
各位高手知道是怎么回事么?
------解决方案--------------------
schemaLocation 属性是在 XML 架构实例命名空间 http://www.w3.org/2001/XMLSchema-instance(通常与前缀 xsi 关联)中定义的,它仅适用于 XML 实例文档,而不适用于 XML 架构文档。它区别于在 XML 架构命名空间 http://www.w3.org/2001/XMLSchema 中定义的 schemaLocation 属性。
xsi:schemaLocation 属性提供一种方法来查找在 XML 实例文档中定义的命名空间的 XML 架构定义。它的值是用空白分隔的统一资源标识符 (URI) 对的列表,其中的每一对 URI 都依次包含一个命名空间以及该命名空间的 XML 架构定义(通常为 .xsd 文件)的位置。
当将 XML 文档反序列化为对象时,XmlSerializer 类忽略 xsi:schemaLocation 属性。但是,在验证 XML 文档时,XmlValidatingReader 类可以使用该属性值来获取 XML 架构定义。