dtd元素和属性

时间:2012-04-06 18:20:12

标签: xml dtd

我的dtd文件出现问题。我正在写这个订单。订单有案例颜色,电池数量,充电器,手臂,相机和语音。我想要做的是结合武器的长度。我的手臂代表客户选择的手臂数量,手臂长度是每只手臂的长度。但我不知道如何在dtd文件中写它。到目前为止,这是我的dtd文件。

<?xml version="1.0"?>
<!DOCTYPE orders [
<! ELEMENT orders (order)>
<! ELEMENT order (case, batteries, recharger, arm, camera, speech)>
<! ELEMENT case (#PCDATA)>
<! ELEMENT batteries (#PCDATA)>
<! ELEMENT recharger (#PCDATA)>
<! ELEMENT arm (#PCDATA)>
<! ELEMENT camera (#PCDATA)>
<! ELEMENT speech (#PCDATA)>
]>

这就是我想显示xml文件时的手臂和长度

<arm> 2 
 <length> 50 </length>
 <length> 75 </length>
</arm>

1 个答案:

答案 0 :(得分:1)

您是否尝试将手臂长度作为属性添加到手臂元素?如果是这样,这应该有效:

<!DOCTYPE orders [
<!ELEMENT orders (order)>
<!ELEMENT order (case, batteries, recharger, arm, camera, speech)>
<!ELEMENT case (#PCDATA)>
<!ELEMENT batteries (#PCDATA)>
<!ELEMENT recharger (#PCDATA)>
<!ELEMENT arm (#PCDATA)>
<!ATTLIST arm
          length CDATA #REQUIRED>
<!ELEMENT camera (#PCDATA)>
<!ELEMENT speech (#PCDATA)>
]>

如果您不想要length属性,请将#REQUIRED更改为#IMPLIED

此外,由于您的orders元素只允许一个order元素orders,因此不需要。也许你想允许不止一个order? (<!ELEMENT orders (order+)>