如何用 XOR 定义 dtd 元素
How to define dtd element with XOR
我有一个 xml 元素 vehicle 可以作为子元素 car XOR truck XOR 多个#PCDATA OR bus 的组合。如何编写dtd?
<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT root (vehicle)*>
<!ELEMENT vehicle (truck|car|(#PCDATA|bus)*)>
以上失败并出现错误
parser error : ContentDecl : Name or '(' expected
在 XML 中不可能。一旦您需要定义允许文本 (#PCDATA
) 和元素的内容模型 - 也称为 mixed content - ,您必须 定义它那样 :
(#PCDATA | element1 | element2 | ...)*
针对您的情况的解决方法可能是:
<!ELEMENT vehicle (truck|car|buscontent)>
<!ELEMENT buscontent (#PCDATA | bus)* >
我有一个 xml 元素 vehicle 可以作为子元素 car XOR truck XOR 多个#PCDATA OR bus 的组合。如何编写dtd?
<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT root (vehicle)*>
<!ELEMENT vehicle (truck|car|(#PCDATA|bus)*)>
以上失败并出现错误
parser error : ContentDecl : Name or '(' expected
在 XML 中不可能。一旦您需要定义允许文本 (#PCDATA
) 和元素的内容模型 - 也称为 mixed content - ,您必须 定义它那样 :
(#PCDATA | element1 | element2 | ...)*
针对您的情况的解决方法可能是:
<!ELEMENT vehicle (truck|car|buscontent)>
<!ELEMENT buscontent (#PCDATA | bus)* >