新建java project,其目录结构和文件如下:
schema文件:即xsd文件
book.xsd文件
<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.zyf.cn/bookSchema"
elementFormDefault="qualified"> <!--qualified表示约束所有标签,unqualified表示只约束根标签 -->
<element name="书架">
<complexType>
<sequence maxOccurs="unbounded"><!--unbounded表示这里的【书】标签可以无限个 -->
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string" />
<element name="作者" type="string" />
<element name="售价" type="string" />
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入标签(用唯一标识)与xsd文件中的targetNamespace属性一致 取别名tt -->
<tt:书架 xmlns:tt="http://www.zyf.cn/bookSchema"
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://http://www.zyf.cn/bookSchema book.xsd">
<!--所引入的标签文件book.xsd位置 (相对位置 ) -->
<tt:书>
<tt:书名>JavaScript开发</tt:书名>
<tt:作者>老佟</tt:作者>
<tt:售价>28.00元</tt:售价>
</tt:书>
<tt:书架>
<!--
1.schema约束文件中,即.xsd文件中:
所有标签和属性都需要有schema文件来定义
所有的schema文件都需要有一个唯一标识, 叫namespace, 由targetNamespace属性来指定, 它的值是一个url(很有可能不存在)
2.在xml文件中引入一个Schema约束
属性? : 用xmlns属性
属性值: 对应的schema文件的唯一标识(namespace值)
如果引入的schema不是w3c组织定义, 必须指定schema文件的位置
schema文件的位置由什么属性来指定?
属性? : schemaLocation
属性值: namespace path
如果引入了N个约束, 需要给n-1个取别名
-->