XML DTD备忘
来源:互联网 发布:剧本统计软件 编辑:程序博客网 时间:2024/06/05 11:53
XML中的DTD(Document Type Definition)用来描述xml的结构规则的描述语言,通常用在xml建模上面。
如何定义XML中的节点?
DTD 有两种元素类型:简单性和复杂型。简单型就是不包含子节点的元素,如:<xmltest>xmltest</xmltest>。复杂型及为包含子节点的元素,如:<xmlroot><xmlfirstchild>xmlfirstchild</xmlfirstchild></xmlroot>.
简单型元素的定义语法为:<!ElEMENT name (#PCDATA)> 。如:<!ELEMENT xmltest (#PCDATA)>就是对应上面的例子定义的简单元素类型。
复杂型元素的定义语法为:<!ELEMENT name (子节点1,子节点2,....,..)>.如:<!ELEMENT xmlroot (xmlfirstchild)>.
在这里也可以使用通配符来灵活的 描述子节点出现的情况。
? 该子节点出现1次或0次 <!ELEMENT xmlroot (xmlfirstchild,xmlsecondchild?)>
* 出现0次或N次 <!ELEMENT xmlroot (xmlfirstchild,xmlsecondchild*)>
+ 出现1次或N次 <!ELEMENT xmlroot (xmlfirstchild,xmlsecondchild+)>
| 不是必须出现的子节点 <!ELEMENT xmlroot (xmlfirstchild|xmlsecondchild)>
如何定义xml中的属性?
DTD的属性类型:如<xmltest id="001"/> 这个元素的属性用DTD来定义的话如下:<!ATTLIST xmltest id CDATA>
属性类型的定义语法为:<!ATTLIST nodename attname type default_value|#REQUIRED|#IMPLIED>
nodename是指当前定义的属性是在哪个节点中
type是指属性值的类型,共有8种类型,分别为:
CDATA: 可以理解为字符串类型 <xmltest id="abcdef"/>
Enumerated:<xmltest id=book computerbook xmlprograming"/>用空格分隔开的列表
ID:类似于标识列,当定义<xmltest id='1'/>后,就不允许再有<xmltest id='1'/>定义。
IDREF:引用标示列 如有定义<xmltestcollection id="1 2 3"/> 其中的"1"分别是元素<xmltest id="1"/>
IDREFS:引用标示列 如有定义<xmltestcollection id="1 2 3"/> 其中的"1 2 3"分别是元素<xmltest id="1"/>,<xmltest id="2"/>,<xmltest id="3"/>
ENTITY: 导入类型 <!ATTRIBUTE xmltest id ENTITY> 引用这类元素:<!ENTITY test SYSTEM http://www.abc.com/abc.jpg>
ENTITIES:导入类型集合 <!ATTRIBUTE xmltest id ENTITYs>
NMTOKEN:
NMTOKENS:
NOTATION
如何能更有效率的开发dtd文档?
实体类型:DTD中有两类实体一般实体和参数实体。这里的实体类似于c语言中的宏
一般实体作用于内容元素(xml文档),参数实体作用于定义元素(dtd文档内容)
一般内部实体:<!ENTITY bookname "Xml Programming">
<book>
<bookid>1<bookid/>
<bookname>&bookname;</bookname>
</book>
一般外部实体:<!ENTITY book SYSTEM "book.xml">
<books>
<book>
<bookid>1<bookid/>
<bookname>xml programming</bookname>
</book>
&book;
</books>
参数内部实体:<!ENTITY % book "(bookid,bookname)">
使用该实体:<!ELEMENT book %book;>
参数外部实体:<!ENTITY % book SYSTEM "book.dtd">
使用该实体:<!ELEMENT books (book)+>
%book;
如何在xml文件用引用dtd文档?
有三中方法:1.嵌入式
<!DOCTYPE books[
<!ELEMENT books (book)+>
<!ELEMENT book (bookid,bookname)>
]>
<books>
<book><bookid>1</bookid></bookname></book>
</books>
2.外部引用式
<!DOCTYPE books SYSTEM "books.dtd">
3.混合式
<!DOCTYPE books SYSTEM "books.dtd" [
<!ELEMENT books (book)+>
<!ELEMENT book (bookid,bookname)>
] >
- XML DTD备忘
- xml基础、DTD验证、Schema验证(备忘)
- xml基础、DTD验证、Schema验证(备忘)
- 个人备忘--DTD
- XML-DTD
- XML DTD
- XML DTD
- 【XML】DTD
- 【XML】DTD
- XML--DTD
- XML DTD
- XML--DTD
- XML - DTD
- XML DTD
- XML--DTD
- XML-DTD
- XML - DTD
- XML---DTD
- firefox,cygwin
- Linux代码阅读器
- [转载]模糊系统:挑战与机遇并存——十年研究之感悟 王立新
- SQLite 小例子。
- maven jetty配置
- XML DTD备忘
- [转载]模糊领域-机遇与争议
- java 不重复随机数生成
- 类加载器
- 当WebKit碰上Clutter
- 当WebKit碰上Clutter
- 伏威谈淘宝网的高并发处理与压力测试
- AT91RM9200添加串口驱动
- 祈福自省