加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML DTD约束

发布时间:2020-12-16 00:39:12 所属栏目:百科 来源:网络整理
导读:为了方便数据交换,需要明确元素与元素之间、元素与属性之间的关系以及属性的取值范围。 常用的约束技术:XML DTD (Document Type Definition【文档类型定义】)(易学,功能有限) XML Schema (难学,功能强大) DTD 声明有两种: 一种是声明在外部文件中

为了方便数据交换,需要明确元素与元素之间、元素与属性之间的关系以及属性的取值范围。

常用的约束技术:XML DTD(Document Type Definition【文档类型定义】)(易学,功能有限)

XML Schema(难学,功能强大)

DTD 声明有两种:

一种是声明在外部文件中,一种是直接在文档中给出DTD

直接给出DTD ——> <!DOCTYPE 根元素 [元素声明]>

带有 DTD 的 XML 文档实例

<?xml version="1.0"?>
<!DOCTYPE书架 [
<!ELEMENT 书架 (书)>
<!ELEMENT书 (书名,作者,售价)>
<!ELEMENT书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
]>
<书架>
<书>

<书名>西游记</书名>

<作者>吴承恩</作者>

<售价>45</售价>

</书>

</书架>
以上 DTD 解释如下:
!DOCTYPE书架 (第二行)定义此文档是书架 类型的文档。
!ELEMENT书 (第四行)定义书 元素有三个元素:"书名,售价" //这些元素是有顺序的,后边定义时必须按照此处给定的顺序。
!ELEMENT书名 (第五行)定义书名 元素为 "#PCDATA"【字符型】 类型
!ELEMENT作者 (第六行)定义作者 元素为 "#PCDATA" 类型
!ELEMENT售价 (第七行)定义售价 元素为 "#PCDATA" 类型
ELEMENT(元素)
外部声明是创建一个扩展名为.dtd的单独的文档,在每个需要符合此约束的XML文件中引用这个文档。
如果DTD比较简单 建议写在内部,如果比较复杂又有多处引用此约束,就写在外部。
当外部文件在本地时,采用如下方式:
<!DOCTYPE 书架 SYSTEM "book.dtd">
当外部文件是一个公共文件时,采用下边的方式:
<!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL">
语法细节:
利用括号、逗号、竖线、星号、加号和问号的组合可以说明很复杂的内容模型。
--用逗号分隔,表示出现的顺序必须与声明时一致。
--用|分隔,表示任选其一,即多个只能出现一个。
--用 +、*、?表示元素出现的次数
+ 一次或者多次,例 (书+)
? 0次或1次,(书?)
* 0次或多次 , (书*) 或者 (书) 有且只有一次

属性定义:ATTLIST

#REQUIRED:必须设置该属性值

#IMPLIED: 可以设置也可以不设置

#FIXED: 说明该属性取值为一个固定值,在XML文件中无需定义,此处会提供一个默认值。

直接使用默认值:在XML中可以设置该值也可以不设置,如果不设置,会直接使用提供的默认值。

实体的定义:相当于定义变量。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读