DTD与XML Schema

XML是一种数据格式化语言,用于描述复杂的数据结构。而DTD/Schema是规范XML文档,对XML文档的书写进行约束

 XML DTD

一个例子

DTD约束文档

<!ELEMENT books (book)>
<!ELEMENT book (name,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>

在DTD文档中定义book Tag的相关属性

XML文档

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE books SYSTEM "books.dtd">
<books>
<book>
<name>java</name>
<price>$16</price>
</book>
</books>

在XML文档中引入DTD约束,因为DTD中规定books Tag有book组成,因此在XML中books Tag需有book child Tag,
DTD中规定book Tag由name和price组成,因此XML文档中book Tag必须有name和price

当然DTD和XML可以写在同一个文件中

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE users [
<!ELEMENT users (user*)>
<!ELEMENT user (id,username,password,email,birthday)>
<!ELEMENT id      (#PCDATA)>
<!ELEMENT username    (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT email    (#PCDATA)>
<!ELEMENT birthday    (#PCDATA)>
]>
<users>
<user>
<id>1</id>
<username>1</username>
<password>1</password>
<email>1</email>
</user>
</users>

XML引入DTD

XML中有两个方式引入DTD,一种是直接引入,即将DTD和XML写在同一个文档中。还有一种是外部引入。外部引入分为本地和公共。本地表示自定义DTD,而公共则表示大家共同认可的DTD。

本地引入DTD
    <!DOCTYPE root-element SYSTEM "filename">
引入公共DTD
    <!DOCTYPE root-element PUBLIC "DTD-NAME" "URL">

很少有自定义DTD,大部分开发场景下都使用公用DTD,关于DTD可参考DTD定义

XML Schema

xml Schema使用预先定义好的元素和属性开发的,其本身就是XML文档(这与DTD不同),通过Schema再来规定XML实例文档。由于一个XML实例文档可以引入多个Schema,为了避免元素重名问题,每个Schema都应有一个名称空间(这里使用URI来区分)。由于定义Schema文档时要用到预先定义的属性和元素,因此需引入W3C组织规定的scheme,即xmlns="http://www.w3.org/2001/XMLSchema"

约束文档

<?xml version="1.0" encoding="utf-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNameSpace="http://www.dy-pc.com"
elementFormDefault = "qualified"
>
<element name="books">
    <complexType>
        <sequence>
            <element name="book">
                <squence>
                    <element name="name" type="string" />
                    <element name="price" type="double" />
                </squence>
            </element>
        </sequence>
    </complexType>
</element>

XML文档

<?xml version="1.0" encoding="utf-8" ?>
<books  xmlns="http://www.dy-pc.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.dy-pc.com  test.xsd">
    <book>
        <name>java</name>
        <price>$16</price>
    </book>
</books>

原文地址:https://www.cnblogs.com/xidongyu/p/12237183.html

时间: 2024-10-12 02:51:36

DTD与XML Schema的相关文章

Eclipse Maven pom.xml 警告No grammar constraints (DTD or XML schema)

消除警告方案: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> 参考资料 No grammar co

No grammar constraints (DTD or XML Schema) referenced in the document.

问题描述 web.xml 使用 Servlet4.0 版本,No grammar constraints (DTD or XML Schema) referenced in the document. 解决方法 添加 <!DOCTYPE html> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <web-app version="4.0" x

No grammar constraints (DTD or XML schema).....两种解决方法

方法一:常用方法   关闭XML验证 工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可. 方法二:(个人推荐) 添加 内容如下 <?xml version="1.0" encoding="UTF-8" standalone="no"?&g

如何解决XML文件中的警告提示“No grammar constraints (DTD or XML Schema) referenced in the document.”

解决方法:加上 <!DOCTYPE xml> <?xml version="1.0" encoding="UTF-8"?> <strong><span style="color:#ff0000;"><!DOCTYPE xml></span></strong> <ROOT> <goods> <isin>SN100001</i

解决XML警告&quot;No grammar constraints (DTD or XML Schema) referenced in the document&quot;

解决办法: 顶部有这两行信息即可解决警告: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml> 原文地址:https://www.cnblogs.com/xiaohan970121/p/9552190.html

XML&amp;DTD&amp;XML Schema学习

XML(eXtensible Markup Language)可扩展的标记语言.xml在web service编程中尤为重要.在网络传输中可以作为传输数据的载体.xml作为元语言, 它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的元语言. 它非常适合网络传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据.可以实现异构语言.异构平台之间的交互.XML 文档定义方式有:文档类型定义(DTD)和XML Schema.DTD(Document Type Defi

疯狂XML学习笔记(7)-----------XML Schema

XML Schema 是基于 XML 的 DTD 替代者. XML Schema 可描述 XML 文档的结构. XML Schema 语言也可作为 XSD(XML Schema Definition)来引用. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML XML 以及 XML 命名空间 对 DTD 的基本了解 如果您希望首先学习这些项目,请在 首页 访问这些教程. 什么是 XML Schema? XML Schema 的作用是定义 XML 文档

XSD(XML Schema Definition)学习笔记

今天学习了XSD相关的知识,为了以后查找的方便,写一些笔记. 一.什么是XSD? 1.XSD全称:XML Schema Definition.XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD.XML Schema: 定义可出现在文档中的元素 定义可出现在文档中的属性 定义哪个元素是子元素 定义子元素的次序 定义子元素的数目 定义元素是否为空,或者是否可包含文本 定义元素和属性的数据类型 定义元素和属性的默认值以及固定值 XML Schema 在 2001 年 5 月

xml语法、DTD约束xml、Schema约束xml、DOM解析xml

今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的html语言,html是超文本标记语言,使用html语言规定好的标签来封装文本数据.而html使用的标签html语言规定好的,每个标签都有自己特定的功能. xml语言,可扩展的标记语言,这门语言它没有定义任何的标记,而标记是由使用者自己来定义,但是由于标签名称以及属性名称都由用户自己来命名,导致别人在使