学科分类
目录
Java Web

引入Schema文档

若想通过XML Schema文件对某个XML文档进行约束,必须得将XML文档与Schema文件进行关联。在XML文档中引入Schema文件有两种方式,具体如下:

1、 使用名称空间引入XML Schema文档

在使用名称空间引入XML Schema文档时,需要通过属性xsi:schemaLocation来声明名称空间的文档,xsi:schemaLocation属性是在标准名称空间“http://www.w3.org/2001/XMLSchema-instance”中定义的,在该属性中,包含了两个URI,这两个URI之间用空白符分隔。其中,第一个URI是名称空间的名称,第二个URI是文档的位置,接下来,通过一个案例来演示如何使用名称空间引入XML Schema文档,如例1所示。

例1 book.xml

 1    <?xml version="1.0" encoding="UTF-8"?>
 2    <书架 xmlns="http://www.it315.org/xmlbook/schema" 
 3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.it315.org/xmlbook/schema
 5             http://www.it315.org/xmlbook.xsd">
 6        <>
 7            <书名>JavaScript网页开发</书名>
 8            <作者>张孝祥</作者>
 9            <售价>28.00元</售价>
 10        </>
 11    </书架>

在例1中, schemaLocation属性用于指定名称空间所对应的XML Schema文档的位置,由于schemaLocation属性是在另外一个公认的标准名称空间中定义的,因此,在使用schemaLocation属性时,必须要声明该属性所属的命名空间。

需要注意的是,一个 XML 实例文档可能引用多个名称空间,这时,可以在schemaLocation属性值中包含多对名称空间与它们所对应的XML Schema文档的存储位置,每一对名称空间的设置信息之间采用空格分隔。接下来通过一个案例来演示在一个XML文档中引入多个名称空间名称的情况,如例2所示。

例2 xmlbook.xml

 1    <?xml version="1.0" encoding="UTF-8"?>
 2    <书架 xmlns="http://www.it315.org/xmlbook/schema" 
 3          xmlns:demo="http://www.it315.org/demo/schema"
 4         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5         xsi:schemaLocation="http://www.it315.org/xmlbook/schema
 6                            http://www.it315.org/xmlbook.xsd 
 7                              http://www.it315.org/demo/schema 
 8                                http://www.it315.org/demo.xsd">
 9        <>
 10            <书名>JavaScript网页开发</书名>
 11            <作者>张孝祥</作者>
 12            <售价 demo:币种="人民币">28.00元</售价>
 13        </>
 14    </书架>

2、 不使用名称空间引入XML Schema文档

在XML文档中引入XML Schema文档,不仅可以通过xsi:schemaLocation属性引入名称空间的文档,还可以通过xsi:noNamespaceSchemaLocation属性直接指定,noNamespaceSchemaLocation属性也是在标准名称空间“http://www.w3.org/2001/XMLSchema-instance”中定义的,它用于定义指定文档的位置。接下来,通过一个案例来演示noNamespaceSchemaLocation属性在XML文档中的使用,如例3所示。

例3 xmlbook.xml

 1    <?xml version="1.0" encoding="UTF-8"?>
 2    <书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3        xsi:noNamespaceSchemaLocation="xmlbook.xsd">
 4        <>
 5            <书名>JavaScript网页开发</书名>
 6            <作者>张孝祥</作者>
 7            <售价>28.00元</售价>
 8        </>
 9    </书架>

在例3中,文档xmlbook.xsd与引用它的实例文档位于同一目录中。

点击此处
隐藏目录