`
zds420
  • 浏览: 203798 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

XML之DTD和SCHEMA

    博客分类:
  • XML
 
阅读更多

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

&lt;

&gt;

&amp

&

&quot;

"

&apos;

'

这个不用多说了 J 。在 HTML 里我们不是常用 &nbsp; 么,哈哈。

但是值得一提的是 entity 可以自定义 J ,上面的不过是 XML 预定义的而已。

Entity 的定义既可以是内部的,也可以是外部的。

内部定义:

<!ENTITY writer "Donald Duck.">

<!ENTITY copyright "Copyright W3Schools.">

这两行定义了两个 entity ,下面是在 XML 文档里的引用

<author>&writer;&copyright;</author>

外部定义:

<!ENTITY writer SYSTEM "http://www.w3schools.com/dtd/entities.dtd">

<!ENTITY copyright SYSTEM "http://www.w3schools.com/dtd/entities.dtd">

这里定义了两个外部 entity ,但是不影响引用。

<author>&writer;&copyright;</author>

 

有些像宏定义,不是么?

 

l  PCDATA

Parsed character data

PCDATA 在经过 XML 解释器的时候会被解析,其中的标签和 Entity 都会被按照 XML 的规定解释。

比如 <body> 会被认为是一个 element 的开始,而一个 &amp; 会被解释为 &

l  CDATA

PCDATA 相对的一种用法,里面的字符保持原样,不会被解释器解释

分享到:
评论

相关推荐

    XML、DTD、Schema

    XML(可扩展标记语言,eXtensible ...了解和掌握XML、DTD和Schema,对于编写和解析符合规范的XML文档,以及确保数据的准确性和一致性至关重要。在实际开发中,根据项目需求和复杂性,选择合适的验证工具是非常重要的。

    DTD和Schema

    **DTD(Document Type Definition)与XML Schema是XML文档结构定义的两种主要方法,它们用于确保XML文档遵循预定义的规则,从而保持数据的一致性和可读性。** **DTD(文档类型定义)**是XML规范早期引入的一种方式...

    DTD和Schema规范XML文档

    [实验目的]: 1、掌握使用XMLSpy软件创建DTD和Schema文档 2、掌握在XML文档如何引入DTD和Schema,并验证有效 3、掌握DTD中声明元素、属性的方法 4、掌握Schema中声明元素,属性,类型的方法

    xml约束[dtd,Schema].zip

    为了确保XML文档的结构正确性与一致性,XML约束技术应运而生,主要有两种形式:DTD(Document Type Definition)和XML Schema。 **DTD(Document Type Definition)** DTD是XML的早期约束和验证机制,它定义了XML...

    XML DTD,XmlSchema标准参考手册

    XML DTD(Document Type Definition)和XML Schema是两种主要的XML语义约束机制,用于定义XML文档的结构和数据类型。 XML DTD是最早的XML文档类型定义方式,它使用一套预定义的元素和属性来描述XML文档的结构。DTD...

    XML Schema 与 XML DTD的技术比较与分析

    XML Schema 和 XML DTD 是两种用于定义XML文档结构和数据约束的语言。XML DTD(文档类型定义)是较早出现的规范,而XML Schema则在2001年成为W3C的正式推荐标准,旨在提供更强大和灵活的XML文档验证功能。 首先,...

    XML.rar_dtd xml_xml dtd_xml schema_xml 设计

    在本主题中,我们将深入探讨如何利用DTD(Document Type Definition)和XML Schema来设计一个表示图书信息的XML文档。这两种方法都是为了确保XML文档结构的合法性与一致性。 首先,DTD是XML的早期验证机制,它定义...

    XML基础教程包括DTD和Schema

    总结来说,XML基础教程包括对XML的基本概念、语法规则、树形结构的理解,以及使用DTD和Schema进行数据验证的方法。掌握这些知识对于任何涉及数据处理和交换的IT专业人员都是至关重要的。通过学习XML,开发者能够创建...

    DTD 和SChema

    详细的讲解了DTD和schema,学习DTD,schema 就它了

    DTD_Schema.rar.rar_dtd_xml_xml schema

    在处理XML文档时,为了确保数据的一致性和准确性,我们通常会使用DTD(Document Type Definition)或XML Schema来定义文档的结构。这两个工具都是XML的约束机制,用于规定XML文档的元素、属性以及它们之间的关系。 ...

    xml与DTD,xml与DTD

    - **有效的XML (Valid XML)**:除了满足格式良好的条件之外,还必须符合DTD或XML Schema的约束。这意味着XML文档不仅需要格式正确,还需要满足预定义的数据结构和语义规则。 #### 四、DTD(Document Type ...

    Java Web开发详解:XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用/孙鑫编著

    鑫编写的《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》共分4篇,从XML、XML Schema、XSLT、Servlet、JSP和应用的角度向读者展示了Java Web开发中各种技术的应用,循序渐进...

    XML文件XML Schema.docXML Schema.doc

    XML Schema是DTD的“接任者”,它具有更强的功能和可扩展性。XML Schema支持数据类型、名称空间和可扩展的内容。XML Schema是W3C定义的标准,于2001年5月2日成为W3C推荐使用的标准。 XML Schema的优点包括: 1. 可...

    XML Schema教程

    - **DTD 的基本了解**:尽管 XML Schema 是 DTD 的替代品,但了解 DTD 的基本原理有助于更好地理解 XML Schema 的优势和特点。 通过上述内容,我们可以看出 XML Schema 是一种强大而灵活的语言,用于定义和描述 XML...

    Schema教程 xml

    XML Schema是一种基于XML的文档类型定义(DTD)替代方案,它提供了更为强大且灵活的方式来描述XML文档的结构和数据类型。XML Schema定义(XSD)使用XML语法,使得XML文档的验证和处理更加方便。在这个教程中,我们将...

    XML文档约束之Schema

    XML Schema提供了比早期的DTD(Document Type Definition)更强大的功能,例如支持复杂数据类型、命名空间和更复杂的约束。本篇将深入探讨XML Schema中的常用标签及其作用。 1. `&lt;schema&gt;`:这是XML Schema文档的根...

    XML Schema简明教程-W3C.rar

    在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...

    XML Schema 的简介

    为了学习 XML Schema,需要具备的基础知识包括 HTML、XHTML、XML 以及 XML 命名空间和对 DTD 的基本了解。 XML Schema 的主要作用是定义 XML 文档的合法构建模块,类似 DTD。它可以: * 定义可出现在文档中的元素 ...

    XML学习文档(DTD Schema SAX DOM XSL XPATH)

    本学习文档涵盖了XML的基础以及与其相关的几个核心概念:DTD、Schema、SAX、DOM、XSL和XPath。 首先,让我们来理解XML的基础。XML的设计目标是为了传输和存储结构化数据,它通过自定义的标签来描述数据。XML文档...

Global site tag (gtag.js) - Google Analytics