2017-12-02 2 views
1

relaxNGでさまざまな出版物(ブック、記事、コレクション)のリストを作成しようとしていますが、RelaxNG:リストパターンに要素パターンが含まれていてはなりません(list // ref)

<?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> 

3つのカテゴリで出版物を分割したいと考えています。

私は取得していますエラーは次のとおりです。

a list pattern must not contain an element pattern (section 7.1 of the RELAX NG specification requires that the simplified XML form of the schema not contain any elements matching the path list//ref)

答えて

1

RelaxNG Specificationで規則4.19を参照してください。要素を新しく作成された定義への参照で置き換えますが、list//refは禁止されています(エラーが示すように、前述の仕様の7.1を参照)。

関連する問題