元素定义
在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示:
<!ELEMENT 元素名称 元素类型>
元素类型可以是元素内容、或类型
• 如为元素内容:则需要使用()括起来,如
<!ELEMENT 书架 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
• 如为元素类型,则直接书写,DTD规范定义了如下几种类型:
EMPTY:用于定义空元素,例如<br/> <hr/>
ANY:表示元素内容为任意类型。
元素内容中可以使用如下方式,描述内容的组成关系
• 用逗号分隔,表示内容的出现顺序必须与声明时一致。<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
• 用|分隔,表示任选其一,即多个只能出现一个
<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>
在元素内容中也可以使用+、*、?等符号表示元素出现的次数:
+: 一次或多次 (书+)
?: 0次或一次 (书?)
*: 0次或多次 (书*)
也可使用圆括号( )批量设置,例
<!ELEMENT MYFILE ((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>
属性定义
设置说明:
• #REQUIRED:必须设置该属性
• #IMPLIED:可以设置也可以不设置
• #FIXED:说明该属性的取值固定为一个值,在 XML 文件中不能为该属性设置其它值。但需要为该属性提供这个值
• 直接使用默认值:在 XML 中可以设置该值也可以不设置该属性值。若没设置则使用默认值
语法:
<!ATTLIST 元素名
属性名1 类型 默认值
……
>
属性规则:
CDATA:表示值为字符,默认值表示未赋值时自动给定的值;
(en1|en2…..):枚举类型,表示只能从给定集合选择对应值;
ID :表示值为唯一ID;
IDREF:参照已存在(其他)ID;
IDREFS:值为一个或多个参照已存在(其他)ID;
多个参数中间用“空格”为分隔符,不能使用“逗号”;
NMTOKEN:值为合法的XML名称;
NMTOKENS:由空格分隔开的多个XML名称;
ENTITY:在DTD中声明实体名;
ENTITIES:在DTD中声明用空格分隔的实体名;
NOTATION:在DTD声明中的注释;
默认值:
#REQUIRED:该元素必须有该属性值;
<img src=””>
#IMPLIED:表示该属性值可有可无;
<img src=” ” alt=””
#FIXED :表示该属性有固定值;
Default:默认值
实体规则
1) 一般实体
声明并引用普通字符或特殊字符的快捷方式的变量
实体引用是对实体的引用,包括内部、外部声明两种
语法格式:
声明
<!ENTITY 实体名 “值“>
<!ENTITY 实体名 SYSTEM “URL“>
<!ENTITY 实体名 PUBLIC “公共名“ “URL”>
支持嵌套
注意:不要自己调用自己