我正在尝试在relaxNG中列出不同的出版物(书籍,文章,集合),但是当我尝试使用list标签时,它会出错:
<?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)
答案 0 :(得分:1)
请参阅RelaxNG Specification中的规则4.19。它通过引用将元素替换为新创建的定义,但禁止var
(如错误所示,请参阅前面提到的规范中的7.1)。