Schema约束(看懂即可)
1、Schema约束文档本身就是一个XML文档,扩展名为xsd
2、重点:根据Schema写出XML文档
难点:XML文档的根元素的写法
3、 参考XmlSchema标准参考手册.chm
例1: 根据Schema约束文档book.xsd书写book.xml文档
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.itcast.cn" elementFormDefault="qualified">
<xs:element name='书架'>
<xs:complexType>
<xs:sequence maxOccurs='unbounded'>
<xs:element name='书'>
<xs:complexType>
<xs:sequence>
<xs:element name='书名' type='xs:string' />
<xs:element name='作者' type='xs:string' />
<xs:element name='售价' type='xs:string' />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
*****************************************************************************************************************************
方式1:带名称空间的方式写XML的根元素:
a、首先看Schema文档,找到根元素
<?xml version="1.0" encoding="UTF-8"?>
<书架></书架>
b、思考:书架来自于哪个名称空间?看Schema文档,targetNamespace就是名称空间。
用xmlns关键字(xmlns名称空间声明)来声明我的元素来自哪个名称空间(xmlns:xml namespace),同时在元素面前声明名称空间
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"></itcast:书架>
c、思考:名称空间与哪个xsd文件对应呢?使用schemaLocation关键字来关联名称空间和xsd的对 应关系
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>
d、schemaLocation来自哪里?来自一个标准的名称空间(http://www.w3.org/2001/XMLSchema- instance),顺便起个别名
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" (固定写法)
xsi:schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>
快捷方式自动生成声明:
创建XML时,先别点finish,先点next, 选中schema约束,再next,再选中xsd约束文件,next, 可以修改名称空间,
方括号选中后俩个,finish即可!
最终写出的book.xml文档如下:
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn book.xsd">
<itcast:书>
<itcast:书名>葵花宝典</itcast:书名>
<itcast:作者>谢飞</itcast:作者>
<itcast:售价>10</itcast:售价>
</itcast:书>
</itcast:书架>
*********************************************************************************************************************
方式2:不带名称空间的方式写XML的根元素:
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn book.xsd">
<书>
<书名>葵花宝典</书名>
<作者>谢飞</作者>
<售价>10</售价>
</书>
</书架>
*********************************************************************************************************************
文件清单: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元</售价>
</书>
</书架>
**********************************************************************************************************************
例3: 不使用名称空间引入XML Schema文档(了解,不常用)
文件清单: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元</售价>
</书>
</书架>
**********************************************************************************************************************
验证是否书写正确:
右键点击写成的book.xml文档,选中MyEclipse,再选中Run Validation,若提示没有错误,则书写成功。
************************************************************************************************************************
1、Schema约束文档本身就是一个XML文档,扩展名为xsd
2、重点:根据Schema写出XML文档
难点:XML文档的根元素的写法
3、 参考XmlSchema标准参考手册.chm
例1: 根据Schema约束文档book.xsd书写book.xml文档
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.itcast.cn" elementFormDefault="qualified">
<xs:element name='书架'>
<xs:complexType>
<xs:sequence maxOccurs='unbounded'>
<xs:element name='书'>
<xs:complexType>
<xs:sequence>
<xs:element name='书名' type='xs:string' />
<xs:element name='作者' type='xs:string' />
<xs:element name='售价' type='xs:string' />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
*****************************************************************************************************************************
方式1:带名称空间的方式写XML的根元素:
a、首先看Schema文档,找到根元素
<?xml version="1.0" encoding="UTF-8"?>
<书架></书架>
b、思考:书架来自于哪个名称空间?看Schema文档,targetNamespace就是名称空间。
用xmlns关键字(xmlns名称空间声明)来声明我的元素来自哪个名称空间(xmlns:xml namespace),同时在元素面前声明名称空间
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"></itcast:书架>
c、思考:名称空间与哪个xsd文件对应呢?使用schemaLocation关键字来关联名称空间和xsd的对 应关系
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>
d、schemaLocation来自哪里?来自一个标准的名称空间(http://www.w3.org/2001/XMLSchema- instance),顺便起个别名
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" (固定写法)
xsi:schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>
快捷方式自动生成声明:
创建XML时,先别点finish,先点next, 选中schema约束,再next,再选中xsd约束文件,next, 可以修改名称空间,
方括号选中后俩个,finish即可!
最终写出的book.xml文档如下:
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn book.xsd">
<itcast:书>
<itcast:书名>葵花宝典</itcast:书名>
<itcast:作者>谢飞</itcast:作者>
<itcast:售价>10</itcast:售价>
</itcast:书>
</itcast:书架>
*********************************************************************************************************************
方式2:不带名称空间的方式写XML的根元素:
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.itcast.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn book.xsd">
<书>
<书名>葵花宝典</书名>
<作者>谢飞</作者>
<售价>10</售价>
</书>
</书架>
*********************************************************************************************************************
例2: 使用名称空间引入多个XML Schema文档
文件清单: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元</售价>
</书>
</书架>
**********************************************************************************************************************
例3: 不使用名称空间引入XML Schema文档(了解,不常用)
文件清单: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元</售价>
</书>
</书架>
**********************************************************************************************************************
验证是否书写正确:
右键点击写成的book.xml文档,选中MyEclipse,再选中Run Validation,若提示没有错误,则书写成功。
************************************************************************************************************************