XML架构文档与 XML架构实例之间究竟有什么区别?
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
请详细说明。
答案 0 :(得分:15)
xsd
和xsi
相似之处xsd
的另一种常规替代方法是xs
。)xsd
和xsi
差异xsd
(或 xs
)前缀引用Schema Namespace
( http://www.w3.org/2001/XMLSchema
)在XML架构(XSD)中用于W3C XML Schema Recommendation的元素,属性和类型
本身。 (这是可能的,因为XML Schema本身就是XML。)引用The Schema Instance
Namespace xsi
的 http://www.w3.org/2001/XMLSchema-instance
前缀是
在XML文档实例中用于定义的几个特殊属性
通过XML Schema Recommendation:
xsi:type
允许XML实例直接关联元素类型信息,而不是通过XSD。请参阅How to restrict the value of an XML element using xsi:type in XSD?
xsi:nil
允许在XSD可能不允许的情况下将空元素视为有效。
xsi:schemaLocation
and xsi:noNamespaceSchemaLocation
向XML处理器提供有关如何将XSD与XML文档相关联的提示。有命名空间时使用xsi:schemaLocation
;没有命名空间时使用xsi:noNamespaceSchemaLocation
。
答案 1 :(得分:4)
<强> http://www.w3.org/2001/XMLSchema 强>
简单版本:这是XML Schema(XSD)中使用的命名空间。 XML模式用于描述XML实例文档中的有效内容。
不太简单的版本:这是描述XML Schema结构的XML Schema的命名空间。换句话说,描述自己的模式。
必须使用此架构中定义的类型编写XML架构(XSD)。
例如。
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyElement" type="xs:string" />
</xs:schema>
http://www.w3.org/2001/XMLSchema-instance
这是XML实例文档中使用的命名空间,用于向正在处理它的XML Parser提供其他数据。它描述了xsi:schemalocation,xsi:noSchemalocation,xsi:type和xsi:nil这些属性,XML解析器可以使用它来帮助验证。
例如。
<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="MySchema.xsd">
string
</MyElement>