XML 约束 (DTD和 schema)

Posted K____K

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)的主要内容,如果未能解决你的问题,请参考以下文章

xml初步,DTD和Schema约束

Schema约束

[JavaWeb-XML]约束(DTD,Schema)

xml的schema约束(Java)

Java 模拟servlet执行DTD约束Schema约束dom4j解析(读写xml)

advanced-day17-XML,DTD约束,schema约束及枚举,注解