如何使用XOR定义dtd元素

时间:2015-06-23 12:34:12

标签: xml dtd

我有一个xml元素 vehicle ,它可以作为子元素 car XOR truck XOR多个组合#PCDATA OR < EM>总线。我该如何写dtd?

<?xml version="1.0" encoding="UTF-8" ?>
    <!ELEMENT root (vehicle)*>
    <!ELEMENT vehicle (truck|car|(#PCDATA|bus)*)>

上述操作失败,错误

  

解析器错误:ContentDecl:名称或&#39;(&#39;预期

1 个答案:

答案 0 :(得分:2)

在XML中不可能。一旦您需要定义允许文本(#PCDATA)和元素(也称为混合内容)的内容模型,您必须以这种方式定义:

(#PCDATA | element1 | element2 | ...)*

您案件的解决方法可能是:

<!ELEMENT vehicle (truck|car|buscontent)>
<!ELEMENT buscontent (#PCDATA | bus)* >