码迷,mamicode.com
首页 > 其他好文 > 详细

DTD和XSD

时间:2020-09-14 19:21:21      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:位置   规范   允许   文件   机制   部分   The   固定   --   

DTD和XSD

DTD

DTD ( Document Type Definition )即文挡类型定义,是XML 约束模式语言,是 XML文件的验证机制,属于 XML 文件组成的一部分。

DTD 种保证 XML 文档格式正确的有效方法,可以通过比较 XML 文档和 DTD 文件来看文档是否符合规范,元素和标签使用是否正确一个 DTD 文档包 :元素的定义规 ,元素间关系的定义规则 ,元素可使用 属性, 可使用的实体或符号规则。

DTD和XSD相比:DTD 是使用非 XML 语法编写的。
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .

XSD

XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。
可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认 和固定值。
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
XML Schema的优点:

  1. XML Schema基于XML,没有专门的语法
  2. XML Schema可以象其他XML文件一样解析和处理
  3. XML Schema比DTD提供了更丰富的数据类型.
  4. XML Schema提供可扩充的数据模型。
  5. XML Schema支持综合命名空间
  6. XML Schema支持属性组。
spring-beans.xsd
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<xsd:schema xmlns="http://www.springframework.org/schema/beans"
		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
		targetNamespace="http://www.springframework.org/schema/beans">

	<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
		<!-- base types -->
	<xsd:complexType name="identifiedType" abstract="true">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
	The unique identifier for a bean. The scope of the identifier
	is the enclosing bean factory.
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="id" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
	The unique identifier for a bean. A bean id may not be used more than once
	within the same <beans> element.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	.......
</xsd:schema>

(1)schema元素为所有XML Schema模式文档的根元素,它用于声明该XML文档是一个XML Schema文档。该模式文档本身也一个XML文档,自己的名称空间为xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd为其前缀。
(2)Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间.

spring配置文件钟对xsd的使用
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        
</beans>

在使用邓征 Schema 文档对邓伍 档进行检验,除了要声明名称 间外 xmlns=http: //www.Springframework.org schema/beans ),还必须指 该名称 间所对应的 XML Schema文档的存储位置。 通过 schemaLocation 属性来指定名称 间所对应的 XML Schema 档的存储位置它包含两个部分, 部分 名称 间的 URI ,另 部分就 该名称 间所标识的 XML Schema 文件位 URL 地址( xsi:schemaLocation="http://www.springframeework.org/schema/beans http://www.springframeework.org/schema/beans/Spring-beans.xsd)

DTD和XSD

标签:位置   规范   允许   文件   机制   部分   The   固定   --   

原文地址:https://www.cnblogs.com/JackQiang/p/13598264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!