DTD属性类型ID

DTD属性类型ID:值为唯一,并且该值必须符合XML的命名规范,否则无法通过验证!

 

如:library.xml

<?xml version="1.0" encoding="utf-8"?>

 

<!DOCTYPE library[

 

<!ELEMENT library (category+)>
<!ELEMENT category (book+)>
<!ELEMENT book (name,author,note,prize)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT note (#PCDATA)>
<!ELEMENT prize (#PCDATA)>

 

<!ATTLIST library name CDATA #REQUIRED>
<!ATTLIST category id ID #REQUIRED>
<!ATTLIST book id ID #REQUIRED>

<!-- ID 类型的属性必须为 #REQUIRED -->

]>

 

<library name="ZhuHai Library">
 <category id="1">
  <book id="101">
   <name>Thinking in JAVA</name>
   <author>American</author>
   <note>A good book to learn java well!</note>
   <prize>75.00</prize>
  </book>
 </category>
 <category id="2">
  <book id="201">
   <name>A Newer to Guitar</name>
   <author>American</author>
   <note>A good book to learn guitar well!</note>
   <prize>25.00</prize>
  </book>
 </category>
</library>

 

将该文件http://www.w3school.com.cn/xml/xml_validator.asp的XML验证器中验证将报错,并且提示

"名字以无效字符开头"!

 

将上述id属性的值前加上"字母"或者_以符合XML命名规范再次验证则可通过!

 

<library name="ZhuHai Library">
 <category id="c1">-----------------------------(1
  <book id="b101">-----------------------------(2
   <name>Thinking in JAVA</name>
   <author>American</author>
   <note>A good book to learn java well!</note>
   <prize>75.00</prize>
  </book>
 </category>
 <category id="c2">
  <book id="b201">
   <name>A Newer to Guitar</name>
   <author>American</author>
   <note>A good book to learn guitar well!</note>
   <prize>25.00</prize>
  </book>
 </category>
</library>

 

整个文件中的ID不可重复,即使不在同一类ELEMENT中,例如(1中已使用c1,那么(2中不可使用c1。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值