如何定义一个仅在父元素中首先出现的子元素?

时间:2013-04-21 12:33:52

标签: xml dtd

我想为XML文档创建文档类型定义。

我有以下格式的XML文档:

<parent>
    <first>Some PCDATA</first>
    <a>The elements aye...</a>
    <c>see</c>
    <b>and bee</b>
    <c>can occur in random order</c>
    <a>and with a random frequency</a>
    <last>Some PCDATA</last>
</parent>

我只希望元素第一个成为第一个元素(并且只发生一次),元素 last 成为最后一个子元素(并且只发生一次),和元素 a b c 以混合顺序发生零次或多次。

我可以实现吗?如果有,怎么样?如果没有,那么接近这个的解决方法是什么呢?

1 个答案:

答案 0 :(得分:1)

这应该有效:

<!DOCTYPE parent [
    <!ELEMENT parent (first, (a|b|c)*, last) >
    <!ELEMENT first #PCDATA >
    <!ELEMENT a ANY >
    <!ELEMENT b ANY >
    <!ELEMENT c ANY >
    <!ELEMENT last #PCDATA >
]>