命名空间
1. XML 命名空间提供避免元素命名冲突的方法。当不同的xml文件里包含相同的标签但不同含义,又恰恰在同一个文件里被引用时就分辨不出这个标签的含义了,使用命名空间来区分就不会存在歧义了,
1)xmlns (xmlns="http://www.w3schools.com")-- specifies thedefaultnamespace declaration.
This declaration tells the schema-validator that all the elements used in this XML document are declared in the "http://www.w3schools.com"
namespace.这个是定义了默认命名空间,所有不带前缀的元素都是使用这个默认命名空间里的元素。
2)xmlns:xsi (xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance")-- indicates that the elements and data types used in the schema come from the " http://www.w3.org/2001/XMLSchema-instance " namespace. It also specifies that the elements and data types that come from the " http://www.w3.org/2001/XMLSchema-instance " namespaceshould be prefixed with xsi.这个同样声明了可以使用的命名空间,但是使用时需要指明xsi前缀,比如:<xsi:ss>使用xsi命名空间</xsi:ss> (ss应该是xsi里真实定义的schema).
3) targetNamespace (targetNamespace="http://www.w3schools.com")这个是把当前文档声明成一个命名空间,类似java文件中的package。但这只是声明而没有使用。如果使用xmlns:target定义跟targetNamespace一样的值,则是定义了target前缀的命名空间就是使用当前文档定义的命名空间。如:<schema xmlns="http://www.w3.org/2001/SchemaXML targetNamespace="http://www.example.com/name" xmlns:target="http://www.example.com/name">
2、xsi是http://www.w3.org/2001/XMLSchema-instance的别名。
这样用于下面元素的时候可以这样<xsi:element />而不用带上长长的uri。
有了命名空间以后,在同一级元素就可以使用同一个元素名称而不会混乱:
<xsi1:element />
< xsi2:element />
3、XML Schema提供了两个在实例文档中使用的特殊属性,用于指出模式文档的位置。这两个属性是:xsi:schemaLocation和xsi:noNamespaceSchemaLocation,前者用于声明了目标名称空间的模式文档,后者用于没有目标名称空间的模式文档,它们通常在实例文档中使用。
xsi:schemaLocation属性的值由一个URI引用对组成,两个URI之间以空白符分隔。第一个URI是名称空间的名字,第二个URI给出模式文档的位置,模式处理器将从这个位置读取模式文档,该模式文档的目标名称空间必须与第一个URI相匹配。
浙公网安备 33010602011771号