首页 > 代码库 > XML 约束 (DTD和 schema)

XML 约束 (DTD和 schema)

 

技术分享

技术分享

技术分享

 

 技术分享

技术分享

技术分享

book.DTD 如下:

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.atguigu.com/bookSchema"
	elementFormDefault="qualified">
	<element name="书架">
		<complexType>
			<sequence maxOccurs="unbounded">
				<element name="书">
					<complexType>
						<sequence>
							<element name="书名" type="string" />
							<element name="作者" type="string" />
							<element name="售价" type="string" />
						</sequence>
					</complexType>
				</element>
			</sequence>
		</complexType>
	</element>
</schema>

<!-- 
	schema规范中:
	1. 所有标签和属性都需要有schema文件来定义 
	2. 所有的schema文件都需要有一个id, 但在这里它叫namespace, 
	3. namespace的值由什么来指定?
		由targetNamespace属性来指定, 它的值是一个url(很有可能不存在)
	4. 如何引入一个Schema约束?
		属性? : 用xmlns属性
		属性值: 对应的schema文件的id(namespace值)
 -->

  

book.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.atguigu.com/bookSchema"
	xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
	dd:schemaLocation="http://www.atguigu.com/bookSchema book.xsd">
	<书>
		<书名>JavaScript开发</书名>
		<作者>老佟</作者>
		<售价>28.00元</售价>
	</书>
</书架>
<!-- 
	schema规范中:
	1. 所有标签和属性都需要有schema文件来定义 
	2. 所有的schema文件都需要有一个id, 但在这里它叫namespace, 
	3. namespace的值由什么来指定?
		由targetNamespace属性来指定, 它的值是一个url(很有可能不存在)
	4. 如何引入一个Schema约束?
		属性? : 用xmlns属性
		属性值: 对应的schema文件的id(namespace值)
	5. 如果引入的schema不是w3c组织定义, 必须指定schema文件的位置
	6. schema文件的位置由什么属性来指定?
		属性? : schemaLocation
		属性值: namespace path
	7. 如果引入了N个约束, 需要给n-1个取别名
 -->

  

 

XML 约束 (DTD和 schema)