首页技术文章正文

怎样引入XML Schema文档?

更新时间:2021-07-22 来源:黑马程序员 浏览量:

IT培训班

若想通过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

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

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

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

例2 xmlbook.xml

     <?xml version="1.0" encoding="UTF-8"?>
     <书架 xmlns="http://www.it315.org/xmlbook/schema" 
           xmlns:demo="http://www.it315.org/demo/schema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.it315.org/xmlbook/schema
                             http://www.it315.org/xmlbook.xsd 
                               http://www.it315.org/demo/schema 
                                 http://www.it315.org/demo.xsd">
         <书>
             <书名>JavaScript网页开发</书名>
             <作者>张孝祥</作者>
             <售价 demo:币种="人民币">28.00元</售价>
         </书>
     </书架>


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

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

例3 xmlbook.xml

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

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






猜你喜欢:

什么是Schema约束?有什么优势?

如何编辑XML的文档声明?

XML的名称空间指的是什么?声明空间语法格式介绍

黑马程序员Java高级软件工程师培训

分享到:
在线咨询 我要报名
和我们在线交谈!