DTD语法(二)
来源:互联网 发布:网站域名一年多少钱 编辑:程序博客网 时间:2024/06/05 17:51
三 DTD-元素
1,声明一个元素
在DTD中,XML元素使用“element”声明的。一个element声明有以下两中方式的语法声明:
<!ELEMENT element-name 类型>
或者
<!ELEMENT element-name (元素内容)>
空元素
空元素可以用关键字“EMPTY”作为其类型
例子:
<!ELEMENT element-name EMPTY>
example:<!ELEMENT br EMPTY>XML example:<br />
只包含字符的元素
只包含字符的元素是用包含在圆括号里的“#PCDATA”来声明的:
<!ELEMENT element-name (#PCDATA)>
例子:
<!ELEMENT from (#PCDATA)>
包含任意内容的元素
是以关键字“ANY”作为其类型来声明的,可以包含任何可解析的数据。
<!ELEMENT element-name ANY>
例子
<!ELEMENT note ANY>
包含子元素的元素
包含子元素的元素是以在圆括号中包含所有子元素的形式定义的:
<!ELEMENT element-name
(child-element-name)>
或者
<!ELEMENT element-name
(child-element-name,child-element-name,.....)>
例子:
<!ELEMENT note (to,from,heading,body)>
一旦在圆括号中定义了子元素,那么XML文档中的子元素必须以声明的顺序出现
“note”元素的完整声明如下:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
声明只能出现一次的子元素。语法:
<!ELEMENT element-name (child-name)>
例子:
<!ELEMENT note (message)>
上面例子演示了子元素必须出现,并且只能出现在“note”元素里面一次。
声明出现至少一次的子元素。语法:
<!ELEMENT element-name (child-name+)>
例子:
<!ELEMENT note (message+)>
“+”号表示子元素在“note”元素必须至少出现一次
声明出现零次或多次的子元素。语法:
<!ELEMENT element-name (child-name*)>
例子:
<!ELEMENT note (message*)>
"*"号表示子元素在“note”元素中可以不出现或者出现多次。
声明出现零次或一次的子元素。语法:
<!ELEMENT element-name (child-name?)>
例子:
<!ELEMENT note (message?)>
"*"号表示子元素"message"在“note”元素中可以不出现或者出现一次。
声明多种选择中取其一的内容,例子:
<!ELEMENT note (to,from,header,(message|body))>
上面的例子声明:note元素必须包含一个“to”元素,一个“from”元素,一个“header”元素。还有一个message或者body元素(二者只能取其一)
声明混合内容。例子:
<!ELEMENT note (#PCDATA|to|from|header|message)*>
上面的例子说明,note元素可以包含零个或者多个的可解析字符串或to元素或from元素或header元素或message元素(这五种取一)
<!ATTLIST element-name attribute-name
attribute-type default-value>
example:
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML: "square"
<square width="100" />
<!ATTLIST element-name attribute-name
attribute-type #IMPLIED>
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
合法的XML:
<contact fax="555-667788" />
合法的 XML:
<contact />
<!ATTLIST element-name attribute_name
attribute-type #REQUIRED>
DTD:
<!ATTLIST person number CDATA #REQUIRED>
合法的 XML:
<person number="5677" />
非法的 XML:
<person />
<!ATTLIST element-name attribute-name
attribute-type #FIXED "value">
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
合法的 XML:
<sender company="Microsoft" />
非法的 XML:
<sender company="W3Schools" />
Syntax:
<!ATTLIST element-name
attribute-name (en1|en2|..) default-value>
DTD example:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
当你想要那些属性值成为固定的一系列逻辑值之一时,可以使用列举属性值
五 实体
实体就是指向通用文本的变量名
-实体可以在内部或者外部定义
--------------------------------------------------------------------------------
内部实体声明,语法:
<!ENTITY entity-name "entity-value">
DTD Example:
<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">
XML example:
<author>&writer;©right;</author>
--------------------------------------------------------------------------------
外部实体声明,语法:
<!ENTITY entity-name SYSTEM "URI/URL">
DTD Example:
<!ENTITY writer
SYSTEM "http://www.w3schools.com/dtd/entities.dtd">
<!ENTITY copyright
SYSTEM "http://www.w3schools.com/dtd/entities.dtd">
XML example:<author>&writer;©right;</author>
文章转自:http://blog.csdn.net/myth_2002/article/details/1483235
- DTD语法(二)
- 闲聊DTD语法(二)
- DTD和schema语法的区别(二)
- DTD语法(一)
- DTD语法
- DTD语法
- DTD语法
- dtd语法
- DTD语法
- DTD语法
- DTD语法
- XML学习(二)DTD
- XML: DTD详解(二)
- xml入门(二)----DTD
- XML介绍之DTD约束语法详解二
- XML文件格式语法及DTD (转)
- XML-基础(介绍、语法、dtd约束)
- javaweb-day01-4(DTD 的语法)
- c++日期转换
- k-l变换原理
- linux常用查看硬件设备信息命令
- SQL执行计划及统计信息相关视图
- Windows Java JNI编程环境搭建
- DTD语法(二)
- C++11标准之variadic template (可变参数模板)
- CUDA程序优化小记(一)
- 1325 hdu
- 蜂鸟算法在谷歌15岁生日发布引起搜索引擎的哪些变化
- Problem A.Ant on a Chessboard
- ZOJ-2201
- 北魏正光五年铭金铜成铺弥勒佛大祭坛——美国纽约大都会艺术博物馆神秘荣光
- sqlite 视图、触发器、索引和事务总结