DTD声明 ELEMENT 语法: n<! ELEMEN name content category>或者 <!ELEMENT name (content model) cardinality> name是被描述的元素名,必须为合法XML名字 后面参数描述了name元素可以包含那些内容和或子元素 元素的内容可以分为下面五种情况: ANY(任意) 任何格式正规的XML数据 EMPTY(无) name元素为空元素,只允许属性存在 纯文本:包含任何文本字符数据但是不包含任何子元素 纯元素只包含子元素但是不包含任何文本内容 n混合:既可以包含子元素也可以包含文本内容 前两种类型可以使用语法的第一种形式,后三种类型使用第二 种语法形式
DTD声明-ELEMENT ◼ 语法: ◼ <!ELEMENT name content_category> 或者 <!ELEMENT name (content_model) cardinality> ◼ name是被描述的元素名,必须为合法XML名字 ◼ 后面参数描述了name元素可以包含那些内容和/或子元素 ◼ 元素的内容可以分为下面五种情况: ◼ ANY(任意) ◼ 任何格式正规的XML数据 ◼ EMPTY(无) ◼ name元素为空元素,只允许属性存在 ◼ 纯文本:包含任何文本字符数据,但是不包含任何子元素 ◼ 纯元素:只包含子元素,但是不包含任何文本内容 ◼ 混合:既可以包含子元素,也可以包含文本内容 ◼ 前两种类型可以使用语法的第一种形式,后三种类型使用第二 种语法形式
DTD声明 ELEMENT n没有 integer, floating point,date,或者其他数据类 型定义 元素的声明次序是没有关系的 <?xml version="1.0"encoding="UTF-8"?> < DOCTYPE DOCUMENT L element files EMPTy> < ELEMENT DOCUMENT(files)> KDOCUMENT> <files>/files> </DOCUMENT>
DTD声明-ELEMENT ◼ 没有integer, floating point, date, 或者其他数据类 型定义 ◼ 元素的声明次序是没有关系的 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DOCUMENT[ <!ELEMENT files EMPTY> <!ELEMENT DOCUMENT (files)> ] > <DOCUMENT> <files></files> </DOCUMENT>
DTD声明 ELEMENT ANY类型: 要谨慎使用,其对于name元素内部内容没有任何规 定 For example: <! ELEMENT catalog ANY>
DTD声明-ELEMENT ◼ ANY类型: ◼ 要谨慎使用,其对于name元素内部内容没有任何规 定 ◼ For example: <!ELEMENT catalog ANY>
DTD声明 ELEMENT EMPTY类型: 定义空元素类型 大小写敏感 For example: <!ELEMENT BR EMPTY In use: <BR/>
DTD声明-ELEMENT ◼ EMPTY类型: ◼ 定义空元素类型 ◼ For example: ◼ <!ELEMENT BR EMPTY> ◼ In use: ◼ <BR/> 大小写敏感
DTD声明 ELEMENT 内容模型用于给后三种类型元素指明内容的结构 ANY和 EMPTY类型不允许使用任何内容模型 n内容模型基本语法是子元素名列表和或由圆括号括起的 # PCDATA关键字 通过"0"呵可以将他们组成混合片断 可以使用逗号“,”来间隔各个片断表示各个片断是顺序出现的 可以使用""来间隔各个片断表示各个片断是选择关系的 可以用基数操作符来定义片断在内容模板里出现的次数 n可以嵌套 例子 KIELEMENT name(#PCDATA)> KIELEMENT name((child1, child 2)I(child3, child4))> K!ELEMENT name(#PCDATAIchild1]child2)*>
DTD声明-ELEMENT ◼ 内容模型用于给后三种类型元素指明内容的结构 ◼ ANY和EMPTY类型不允许使用任何内容模型 ◼ 内容模型基本语法是子元素名列表和/或由圆括号括起的 #PCDATA关键字 ◼ 通过"()"可以将他们组成混合片断 ◼ 可以使用逗号“,”来间隔各个片断,表示各个片断是顺序出现的 ◼ 可以使用"|"来间隔各个片断,表示各个片断是选择关系的 ◼ 可以用基数操作符来定义片断在内容模板里出现的次数 ◼ 可以嵌套 ◼ 例子 <!ELEMENT name (#PCDATA)> <!ELEMENT name ((child1,child2)|(child3,child4))> <!ELEMENT name (#PCDATA|child1|child2)* >