schema&dtd
一个文档满足了
XML
文档格式规定才算是一个
XML
文档,但是随便一个
XML
文档其实对我们意义不大,因为
XML
并不是为哪项特定应用而设计的,其结构也千变万化,所以我们必须规定
XML
文档的结构以便我们创建,解析和交换
XML
文档.
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,head,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT head(#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>zhudansheng</to>
<from>zhudansheng1987</from>
<head>header</head>
<body>forget</body>
</note>
DTD
里面的结构块:
l
Elements
<message>some message in between</message>
这就是一个元素,
element
是组成
XML
的主要成分。
常用写法:
<!ELEMENT element-name EMPTY>
空
element
比如:
<br />
<!ELEMENT element-name ANY>
包含任何内容的
element
,前提是内容合法。
<!ELEMENT element-name (#PCDATA)>
只含有字符信息的
element
。
<!ELEMENT element-name (child-element-name,child-element-name,.....)>
包含若干子
element
的
element
。注意,子节点必须按照这里定义的顺序出现。
下面是关于出现次数的一些写法:
<!ELEMENT element-name (child-name)>
子节点出现且只出现一次。
<!ELEMENT element-name (child-name+)>
一次或者多次。
<!ELEMENT element-name (child-name*)>
零次或者多次。
下面是一些组合用法:
<!ELEMENT note (to,from,header,(message|body))>
“
|
”用法提供“或”的功能。
<!ELEMENT note (#PCDATA|to|from|header|message)*>
这句的意思是
note
元素可以包含零个或者多个(
#PCDATA|to|from|header|message
)中任意的一个元素或文本。
l
Attributes
属性是用来对元素的附加特性进行描述,他以名值对的形式出现。如:
<img src="computer.gif" />
下面是属性的表示方法:
<!ATTLIST element-name attribute-name attribute-type default-value>
Attribute Types:
Value
|
Explanation
|
CDATA
|
文本
|
(en1|en2|..)
|
规定属性值必须是列表中的一个
|
ID
|
属性值必须唯一
|
IDREF
|
属性值是另外一个
element
的
ID
|
IDREFS
|
属性值是一个
ID
列表
|
NMTOKEN
|
属性值是一个合法的
XML name
|
NMTOKENS
|
属性值是一个合法的
XML name
列表
|
ENTITY
|
属性值是一个
entity
|
ENTITIES
|
属性值是一个
entity
列表
|
NOTATION
|
属性值是一个
notation
|
xml:
|
属性值是一个预定义
xml value
|
Default Value:
Value
|
Explanation
|
value
|
默认值
<!ATTLIST square width CDATA "0">
|
#REQUIRED
|
属性是必须的
<!ATTLIST element-name attribute_name attribute-type #REQUIRED>
|
#IMPLIED
|
属性是可选的
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
|
#FIXED value
|
属性是固定值的
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
|
那么假如我们想要规定
payment
元素的一个叫做
type
的属性,他必须是
check
或者
cash
,而且默认是
cash
,我们需要这样写:
<!ATTLIST payment type (check|cash) "cash">
l
Entities
Entity References
|
Character
|
<
|
<
|
>
|
>
|
&
|
&
|
"
|
"
|
'
|
'
|
这个不用多说了
J
。在
HTML
里我们不是常用
么,哈哈。
但是值得一提的是
entity
可以自定义
J
,上面的不过是
XML
预定义的而已。
Entity
的定义既可以是内部的,也可以是外部的。
内部定义:
<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">
这两行定义了两个
entity
,下面是在
XML
文档里的引用
<author>&writer;©right;</author>
外部定义:
<!ENTITY writer SYSTEM "http://www.w3schools.com/dtd/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.w3schools.com/dtd/entities.dtd">
这里定义了两个外部
entity
,但是不影响引用。
<author>&writer;©right;</author>
有些像宏定义,不是么?
l
PCDATA
Parsed character data
。
PCDATA
在经过
XML
解释器的时候会被解析,其中的标签和
Entity
都会被按照
XML
的规定解释。
比如
<body>
会被认为是一个
element
的开始,而一个
&
会被解释为
&
。
l
CDATA
与
PCDATA
相对的一种用法,里面的字符保持原样,不会被解释器解释
分享到:
相关推荐
XML(可扩展标记语言,eXtensible ...了解和掌握XML、DTD和Schema,对于编写和解析符合规范的XML文档,以及确保数据的准确性和一致性至关重要。在实际开发中,根据项目需求和复杂性,选择合适的验证工具是非常重要的。
**DTD(Document Type Definition)与XML Schema是XML文档结构定义的两种主要方法,它们用于确保XML文档遵循预定义的规则,从而保持数据的一致性和可读性。** **DTD(文档类型定义)**是XML规范早期引入的一种方式...
[实验目的]: 1、掌握使用XMLSpy软件创建DTD和Schema文档 2、掌握在XML文档如何引入DTD和Schema,并验证有效 3、掌握DTD中声明元素、属性的方法 4、掌握Schema中声明元素,属性,类型的方法
为了确保XML文档的结构正确性与一致性,XML约束技术应运而生,主要有两种形式:DTD(Document Type Definition)和XML Schema。 **DTD(Document Type Definition)** DTD是XML的早期约束和验证机制,它定义了XML...
XML DTD(Document Type Definition)和XML Schema是两种主要的XML语义约束机制,用于定义XML文档的结构和数据类型。 XML DTD是最早的XML文档类型定义方式,它使用一套预定义的元素和属性来描述XML文档的结构。DTD...
XML Schema 和 XML DTD 是两种用于定义XML文档结构和数据约束的语言。XML DTD(文档类型定义)是较早出现的规范,而XML Schema则在2001年成为W3C的正式推荐标准,旨在提供更强大和灵活的XML文档验证功能。 首先,...
在本主题中,我们将深入探讨如何利用DTD(Document Type Definition)和XML Schema来设计一个表示图书信息的XML文档。这两种方法都是为了确保XML文档结构的合法性与一致性。 首先,DTD是XML的早期验证机制,它定义...
总结来说,XML基础教程包括对XML的基本概念、语法规则、树形结构的理解,以及使用DTD和Schema进行数据验证的方法。掌握这些知识对于任何涉及数据处理和交换的IT专业人员都是至关重要的。通过学习XML,开发者能够创建...
详细的讲解了DTD和schema,学习DTD,schema 就它了
在处理XML文档时,为了确保数据的一致性和准确性,我们通常会使用DTD(Document Type Definition)或XML Schema来定义文档的结构。这两个工具都是XML的约束机制,用于规定XML文档的元素、属性以及它们之间的关系。 ...
- **有效的XML (Valid XML)**:除了满足格式良好的条件之外,还必须符合DTD或XML Schema的约束。这意味着XML文档不仅需要格式正确,还需要满足预定义的数据结构和语义规则。 #### 四、DTD(Document Type ...
鑫编写的《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》共分4篇,从XML、XML Schema、XSLT、Servlet、JSP和应用的角度向读者展示了Java Web开发中各种技术的应用,循序渐进...
XML Schema是DTD的“接任者”,它具有更强的功能和可扩展性。XML Schema支持数据类型、名称空间和可扩展的内容。XML Schema是W3C定义的标准,于2001年5月2日成为W3C推荐使用的标准。 XML Schema的优点包括: 1. 可...
- **DTD 的基本了解**:尽管 XML Schema 是 DTD 的替代品,但了解 DTD 的基本原理有助于更好地理解 XML Schema 的优势和特点。 通过上述内容,我们可以看出 XML Schema 是一种强大而灵活的语言,用于定义和描述 XML...
XML Schema是一种基于XML的文档类型定义(DTD)替代方案,它提供了更为强大且灵活的方式来描述XML文档的结构和数据类型。XML Schema定义(XSD)使用XML语法,使得XML文档的验证和处理更加方便。在这个教程中,我们将...
XML Schema提供了比早期的DTD(Document Type Definition)更强大的功能,例如支持复杂数据类型、命名空间和更复杂的约束。本篇将深入探讨XML Schema中的常用标签及其作用。 1. `<schema>`:这是XML Schema文档的根...
在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...
本学习文档涵盖了XML的基础以及与其相关的几个核心概念:DTD、Schema、SAX、DOM、XSL和XPath。 首先,让我们来理解XML的基础。XML的设计目标是为了传输和存储结构化数据,它通过自定义的标签来描述数据。XML文档...