<?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"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    <!-- Schema for format of an Index as used
    in the Reference Indexing Services protocol.
    
    copyright (c) 2006 Neel Smith
    
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
        
    Originally prepared by Neel Smith, College of the Holy Cross:  nsmith@holycross.edu
        
     Currently maintained by Neel Smith for the Center for Hellenic Studies.
    -->
    <define name="htmlpattern">
        <attribute name="type">
            <value>html</value>
        </attribute>
    </define>

    <start>
        <element name="Index">
            <attribute name="id">
                <text/>
            </attribute>
            

            <externalRef href="indexmetadata.rng"/>
            <choice>
                <group>
                    <externalRef href="idxstructure.rng"/>

                    <oneOrMore>

                        <element name="record">
                            <element name="ref">
                                <text/>
                            </element>
                            <element name="value">
                                <text/>
                            </element>
                        </element>
                    </oneOrMore>
                </group>


                <group>
                    <element name="idxstructure">
                        <element name="refstructure">
                            <attribute name="type">
                                <value>data</value>
                            </attribute>
                           
                        </element>

                        <element name="valuestructure">
                           <!-- anything -->
                        	<text/>
                        </element>

                    </element>
                </group>
            </choice>
        </element>
    </start>
</grammar>
