【发布时间】:2017-12-03 00:44:52
【问题描述】:
我正在尝试在 RelaxNG 中列出不同的出版物(书籍、文章、收藏),但是当我尝试使用列表标签时出现错误:
<?xml version="1.0" encoding="UTF-8"?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<element name="publications">
<oneOrMore>
<interleave>
<list>
<choice>
<element name="article">
<element name="publication_name">
<text/>
</element>
<element name="authors">
<text/>
</element>
<element name="publisher">
<text/>
</element>
<element name="volume">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
<element name="number">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
<element name="pages">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
<element name="citation">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
<element name="year">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
</element>
<element name="book">
<element name="publication_name">
<text/>
</element>
<element name="authors">
<text/>
</element>
<element name="publisher">
<text/>
</element>
<element name="citation">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
<element name="year">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
</element>
<element name="chapter">
<element name="publication_name">
<text/>
</element>
<element name="authors">
<text/>
</element>
<element name="collection_name">
<text/>
</element>
<element name="editors">
<text/>
</element>
<element name="citation">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
<element name="year">
<data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="int"/>
</element>
</element>
</choice>
</list>
</interleave>
</oneOrMore>
</element>
</start>
</grammar>
我希望能够将出版物分为三个类别。
我得到的错误是:
列表模式不得包含元素模式(第 7.1 节) RELAX NG 规范要求简化 XML 形式的 schema 不包含任何与路径列表匹配的元素//ref)
【问题讨论】: