XML Schema文档与XML Schema实例之间的区别是什么?
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
表示XML Schema文档的命名空间。xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
表示XML Schema实例的命名空间。
请进一步阐述。
XML Schema文档与XML Schema实例之间的区别是什么?
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
表示XML Schema文档的命名空间。xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
表示XML Schema实例的命名空间。请进一步阐述。
xsd
和xsi
的相似之处xs
。)xsd
和xsi
的区别xsd
(或 xs
)前缀指的是模式命名空间(http://www.w3.org/2001/XMLSchema
),在XML模式(XSDs)中用于元素、属性和类型。这是可能的,因为XML Schema本身就是XML。xsi
前缀指的是模式实例命名空间 http://www.w3.org/2001/XMLSchema-instance
,在XML文档实例中使用,用于几个由XML Schema推荐定义的特殊属性:
xsi:type
允许XML实例直接关联元素类型信息,而不是通过XSD。请参见 如何使用xsi:type在XSD中限制XML元素的值?。
xsi:nil
允许将空元素视为有效,即使XSD可能不允许它。
xsi:schemaLocation
和 xsi:noNamespaceSchemaLocation
提供提示,告诉XML处理器如何将XSD与XML文档关联起来。当存在命名空间时,请使用 xsi:schemaLocation
;当没有命名空间时,请使用 xsi:noNamespaceSchemaLocation
。
xmlns="
默认命名空间 URI
"
, 可以指定 默认命名空间, 并将该元素及其子元素默认放置于给定的命名空间中。可以在任何XML文档中声明默认命名空间,包括XSD,在其中可用于避免在整个XSD中指定 xsd
或 xs
命名空间前缀。此外,参见 XML 和 XML Schema(XSD)中的名称空间相关属性。 - kjhugheshttp://www.w3.org/2001/XMLSchema
简单版本:这是在XML Schema(XSD)中使用的命名空间。 XML模式用于描述XML实例文档中的有效内容。
稍微复杂一点的版本:这是描述XML Schema结构的XML Schema的命名空间。换句话说,这是描述自身的模式。
必须使用此模式中定义的类型编写XML Schema(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解析器提供附加数据。它描述了属性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>