Я работаю над заданием по составлению XML-документации для календаря событий, который состоит из элементов событий, которые имеют дочерние элементы имени, даты, места проведения и т. д. У нескольких событий одно и то же место, но указана контактная информация для каждого места. только один раз в данных XML. Итак, что у меня есть в XML-документе:
<venueinfo>
<venue id="p1">
<name>...</name>
<address>...</address>
...
</venue>
<venue id="p2">
...
</venue>
...
</venueinfo>
И в элементах события:
<event>
<name>...</name>
...
<location idref="p1"/>
...
</event>
В XSD мне нужно связать элементы elements с соответствующими элементами в , но пока у меня нет правильной привязки. Вот соответствующие объявления атрибутов и элементов:
<-- root element -->
<xs:element name="eventcalendar">
<xs:complexType>
<xs:sequence>
<xs:element ref="tapahtuma" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="idref" type="xs:IDREF"/>
<xs:element name="venueinfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="venue" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="venue">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="address"/>
...
</xs:sequence>
<xs:attribute ref="id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="location">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="idref" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="event">
<xs:complexType>
<xs:sequence>
<xs:element ref="category"/>
...
<xs:element ref="location"/>
...
</xs:sequence>
</xs:complexType>
</xs:element>
Проверка XML дает мне "элемент "venueinfo" не разрешен для модели контента "(событие +)"". Может ли кто-нибудь посоветовать мне, что я должен сделать, чтобы получить это правильно? Большое спасибо.