DTD的语法相当复杂,并且它不符合xml文件的标准,自成一个体系。也就是说DTD文档本身并不是一个良好形式的xml文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的xml应用是建立在DTD之上的。
另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式、大纲、计划、规划等等。它的基本意思就是说为xml文档制定一种模式。
Schema相对于DTD的明显好处是xml Schema文档本身也是xml文档,而不是像DTD一样使用自成一体的语法。这就方便了用户和开发者,因为可以使用相同的工具来处理xml Schema和其他xml信息,而不必专门为Schema使用特殊工具。Schema简单易懂,懂得xml语法、规则的人都可以立刻理解它。Schema的概念提出已久,但W3C的标准最近才出来,相应的应用支持尚未完善,但采用Schema已成为xml发展的一个趋势。
首先我们还是从最简单的例子着手来学习Schema的语法结构:
比如一个简单的xml文档如下:
<书本>
<名称>天涯明月刀
<作者>古龙
如果用DTD的形式来定义该xml文档结构的话,可以如下所示:
<!ELEMENT 书本 (名称, 作者)>
<!ELEMENT 名称 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
那么用Schema形式如何定义呢?见下面的代码:
<element name=''书本'' type=''书本类型''/>
<complexType name=''书本类型''>
<element name=''名称'' type=''string''/>
<element name=''作者'' type=''string''/>
</complexType>
可以注意的一点是,在Schema中,也是通过对元素的定义和元素关系的定义来实现对整个文档性质和内容的定义。同时需要注意的是,在Schema中,元素是通过它的名字和内容模型来确定,名称就是该元素的名字,这个大家都可以理解,而内容模型实际上就是表示元素的类型。就象在C++中,我们可以随便定义一个变量,但是必须定义变量的类型,变量的类型就可能有多种形式,它可以是一个简单的变量(如C++内部指定的类型,bool,int,double,char等等),也可以是很复杂的类型(比如是一个struct或者是class),在Schema中也是一样,类型(type)可以分为两种形式,一种是非常简单的类型,被称为simple,一种是复杂的类型,被称为complex。简单类型不能包含元素和属性(注意在Schema中和DTD中一样,都有元素属性的说法,大道相同)。而复杂类型不仅可以包含属性,而且可以在其中嵌套其他的元素,或者可以和其他元素中的属性相关联。
分享到:
相关推荐
在“XML Schema 例子(C#写的验证程序)”这个项目中,开发者创建了一个C#应用程序,用于验证XML文档是否符合预先定义的XML Schema。这个程序对于那些需要确保XML数据准确无误的应用场景非常有用,比如数据交换、...
这个例子定义了一个`person`元素,包含`firstName`和`lastName`两个子元素,都是字符串类型。 2. **验证XML文档**:使用XML解析器或者XML Schema处理器(如Java的JAXB、Apache XMLBeans等)来检查XML文档是否符合...
在“XMLSchema例子”文件中,你将看到这些概念如何实际应用于具体的XML Schema定义和XML文档实例。通过学习和理解这些例子,你将能够更好地掌握XML Schema的使用,从而更有效地设计和验证XML文档的结构。
2. **XMLSchema**:这个类代表一个XML Schema定义。它可以用于验证XML文档,获取Schema中的元素、属性和其他组件的信息。 3. **XSModelGroup**:表示XML Schema中的模式组,用于组合其他模式元素,如选择(`...
XML Schema是一种用于定义XML文档结构和数据类型的规范,它是W3C(World Wide Web Consortium)在2001年发布的一个标准,旨在替代之前的DTD(Document Type Definition)。本篇文章将深入探讨XML Schema的学习要点,...
一个最简单的XML Schema文档通常会包含一个根元素`<xsd:schema>`,并声明命名空间`xmlns:xsd="http://www.w3.org/2001/XMLSchema"`。例如: ```xml <?xml version="1.0"?> <xsd:schema xmlns:xsd=...
本示例提供了一个简单的Schema讲解,通过源码分析,我们可以深入理解Schema的实际应用和重要性。 首先,让我们来了解一下Schema的基本概念。在数据库领域,Schema是数据库的逻辑结构,包括表格、列、索引等元素的...
例如,一个简单的DTD声明可能如下: ```xml <!DOCTYPE book [ <!ELEMENT book (title, author+, publisher)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT publisher (#PCDATA)> ]> ``` ...
在提供的代码片段中,可以看到一个简单的Java程序,用于验证XML文档是否符合预先定义的XSD规范。以下是程序的关键部分及所涉及的知识点: 1. **SchemaFactory**: `SchemaFactory` 是Java API for XML Validation ...
- 在XML Catalog页面,你会看到一个“Entries”区域,这里用来管理你的XML命名空间和对应的XSD文件。 3. **添加XSD引用**: - 点击“Entries”区域下方的`Add...`按钮,弹出添加对话框。 - 在“Kind”选项中,...
在案例1中,我们看到一个简单的XML Schema文档(3.1 -greeting.xsd): ```xml <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> </xs:schema> ``` 这个例子中,根元素是`<xs:...
例如,以下是一个简单的XML Schema定义: ```xml <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> </xs:schema> ``` 这个例子定义了一个名为"note"的元素,它...
### Solrconfig.xml 和 Schema.xml 说明 #### Solrconfig.xml 概述 Solrconfig.xml 是 Apache Solr 的核心配置文件之一,主要用于定义 Solr 实例如何处理文档的索引与查询请求。该文件中包含了多种配置项,用于...
- **功能**:hyperModel是一款支持上述建模活动的工具,它能够在一个统一的界面下编辑和浏览UML模型以及OWL本体,通过动态生成的类图来实现这一目标。 - **操作**:用户可以通过这个工具来创建、修改和查看UML模型,...
以下是一个简单的XML文档和对应的XSD文档示例: XML文档: ```xml <?xml version="1.0"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com note.xsd"> ...
本示例"Activity Schema例子demo"将展示如何通过AndroidManifest.xml文件配置Activity Schema,以及如何在两个不同的应用(MyApp1和MyApp2)之间进行隐式跳转。 首先,让我们了解Activity Schema的基本概念。在...
在“自己做的第一个xml的例子,包括读写”这个项目中,我们可以推测这是一个简单的C#程序,该程序实现了XML文件的创建、读取和写入操作。下面我们将深入探讨XML的基本概念以及如何在C#中进行操作。 1. XML基本结构...
例如,下面是一个简单的DOM解析示例: ```python import xml.etree.ElementTree as ET # 解析XML文件 tree = ET.parse('example.xml') root = tree.getroot() # 遍历XML元素 for child in root: print(f'元素名称...
这部分的练习旨在帮助读者熟悉XML文档的基本组成,例如创建一个简单的XML文档,包含元素、属性、注释等,并理解它们的作用。 第2章:规范的XML文件 本章将详细介绍如何编写符合规范的XML文件。规范的XML文件需要...