gpt4 book ai didi

XML、DTD : how to make the order not important

转载 作者:数据小太阳 更新时间:2023-10-29 01:39:40 25 4
gpt4 key购买 nike

我开始使用 XML 文件和解析器作为存储数据的便捷方式

我想在 xml 文件到达时使用 DTD 检查其结构。

这是我的 DTD 文件

< ?xml version="1.0" encoding="UTF-8"?>
< !ELEMENT document (level*)>
< !ELEMENT level (file,filelName?,fileNumber?)>
< !ELEMENT file (#PCDATA)>
< !ELEMENT filelName (#PCDATA)>
< !ELEMENT fileNumber (#PCDATA)>

(注意 fileName 和 fileNumber 实际上是纯可选的)

<document>
<level>
<file>group1file01</file>
</level>
<level>
<file>group1file02</file>
<fileName>file 2</fileName>
<fileNumber>0</fileNumber>
</level>
...

因此,所有这些工作正常。 (我现在使用 Eclipse 的“验证”选项来测试它)

然而在测试时我得到了一个我认为是奇怪的错误

如果我这样做

 <level>
<levelName>Level 2</levelName>
<levelNumber>0</levelNumber>
<file>group1level02</file>
</level>

改变行的顺序,Eclipse 拒绝验证它......

我想知道这是否是 Eclipse 的问题,或者顺序是否真的很重要。

如果顺序很重要,我该如何更改 DTD 以使其无论元素的顺序如何都能正常工作?

我真的不能更改 XML,因为我已经编写了所有 XML 文件和解析器(我知道我做错了,哈哈)。

最佳答案

正如罗杰所说,只有有序列表,但您可以使用运算符 OR | 来定义所有可接受的组合

<!ELEMENT level ((file,filelName?,fileNumber?)|(filelName?,fileNumber?,file))>

here , Choices

部分有一个示例

关于XML、DTD : how to make the order not important,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com