XML (2) Document Type Definitions (DTD)

XML提供了和显示无关的内容数据,可是数据的结构怎么确定呢?对于复杂问题,肯定是先有一个提纲,在给出具体内容,所以我们需要一种方式来提供XML的数据结构定义,这个就是DTD。

Element Declarations
<! ELEMENTSAMPLE(#PCDATA) >


Document Type Declarations
<! DOCTYPEname_of_root_elementSYSTEM"URL"[internalDTDsubset] >

external DTD subsets: Link to an outside file( often *.dtd)
internal DTD subsets: declaration in the XML file

Command-line validation
libxml2

Wed-based validation
www.cogsci.ed.ac.uk/~richard/xml-check.html
www.stg.brown.edu/service/xmlvalid

Elements Declarations
  1. Define elements, like
    <! ELEMENTSAMPLE1ANY >

  2. Find out the #PCDATA, change all necessary elements to #PCDATA, like
    <! ELEMENTSAMPLE2(#PCDATA) >

  3. Find out the child elements, add to necessary elements, like
    <! ELEMENTSAMPLE3(CHILD_SAMPLE1+,CHILD_SAMPLE2?,(CHILD_SAMPLE3*|CHILD_SAMPLE4|CHILD_SAMPLE5)?,(CHILD_SAMPLE6,CHILD_SAMPLE7)*,#PCDATA) >
Empty elements, like <!ELEMENT SAMPLE4 EMPTY>
Comments in DTD, like <!-- comments -->

Tips:
Case sensitive
Sequence sensitive

Attribute Declarations
<!ATTLIST Element_name Attribute_name Type Default_value>
Attribute Types: CDATA, Emumerated, ID, IDREF, IDREFS, ENTITY, ENTINITYS, NMTOKEN, NMTOKENS, NOTION
<! ELEMENTAUTHOREMPTY >
<! ATTLISTAUTHORCOMPANYCDATA#FIXED"TIC" >
<! ATTLISTEXTENSIONCDATA#IMPLIED >
<! ATTLISTAUTHORNAMECDATA#REQUIRED >

Namespaces
Everyone can define elements, so name collision can be avoided. Like java, to avoid the class name collision, import Name Space.

All from 《XML 1.1 Bible 3rd Edition》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值