我对构建和验证 XML 文档的具体细节非常陌生,所以我希望我问的是一个微不足道的问题。
我有一个文档中描述的主题和子主题的层次结构:
<topics>
<topic> <name>First Topic</name>
<subtopic> <name> Subtopic 1 </name> </subtopic>
<subtopic> <name> Subtopic 2 </name> </subtopic>
</topic>
<topic> <name>Second Topic</name>
<subtopic> <name> Subtopic 3 </name> </subtopic>
<subtopic> <name> Subtopic 4 </name> </subtopic>
</topic>
</topics>
另一个包含主题和子主题的文档:
<mydoc>
<topic>First Topic</topic>
<subtopic>Subtopic 1</subtopic>
... rest of the doc ...
</mydoc>
我想确保仅包含有效的主题/副主题组合,并且易于验证。我不确定这样做的方法应该是什么。
我首先认为我可以在模式中定义复杂类型以概述可能的组合,但前几个这样做产生了我无法完全理解的重言式。
我的第二个想法就像我上面指出的那样;将主题/子主题放在单独的文档中,也许给每个子主题一个唯一的“id”属性。然后我可以改用类似的东西:
<mydoc subtopic_id="st4"> ... </mydoc>
然后我可以验证 mydoc 仅包含文档中存在的 subtopic_ids。但是,我一直在摸索以了解如何验证这一点。而且,这意味着我必须创建一个需要被作者记住的 id 键。
那么,规范的方法是什么?
理想情况下,我希望有人使用 XML 编辑器,比如oxyXML,并且能够创作一个(从模式生成)并让编辑器帮助他们只输入有效的主题/子主题组合。
这甚至可能吗?
我已经为此挠头了一段时间,如果你有任何智慧的话,我将非常感激。