XML DTD Schema,我可以创建一个具有其他值的属性吗?

时间:2013-11-20 07:41:51

标签: xml dtd xml-dtd

假设我有一个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" .... />

有可能吗?

1 个答案:

答案 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,它看起来像

enter image description here

如您所见,id属性包含。值已添加。从技术上讲,这是可能的,但请记住,id属性应该是唯一的,这是DTD无法提供的。