假设我有一个xml元素如下:
<item name="ItemName" id="itemID" .... />
现在,假设我已经使用我的dtd ATTLIST
架构处理/验证了一些属性。
我希望它能做到以下几点:
if attribute 'id' not exists, set id=_name_attribute's_value
,或简单演示:
<item name="itemName" .... />
将变为:
<item name="itemName" id="itemName" .... />
有可能吗?
答案 0 :(得分:1)
您可以在ATTLIST
中提供默认值。例如:
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ATTLIST note id CDATA "myid">
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
如果您在此处显示此文件IE,它看起来像
如您所见,id
属性包含。值已添加。从技术上讲,这是可能的,但请记住,id属性应该是唯一的,这是DTD无法提供的。