пишу первый раз XSD:)
кусок xml должен выглядеть примерно так:
<download_file_list>
<item type='File'>
<attribute name='FileDescription' value='Cool Game' />
<attribute name='Url' value='http://freeciv.org/' />
сейчас для этого пишу специальные типы:
<xs:simpleType name="downloadable_type">
<xs:restriction base="xs:string">
<xs:enumeration value="File" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="file_attr_name_description">
<xs:restriction base="xs:string">
<xs:enumeration value="FileDescription" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="file_attr_name_url">
<xs:restriction base="xs:string">
<xs:enumeration value="URL" />
</xs:restriction>
и потом их использую:
<xs:element name="download_file_list">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="item">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="attribute">
<xs:complexType>
<xs:attribute name="name" type="file_attr_name_description"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="attribute">
<xs:complexType>
<xs:attribute name="name" type="file_attr_name_url"/>
<xs:attribute name="value" type="url_type"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" use="required" type="downloadable_type"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
Есть вопросы: можно ли как-то обойтись без создания отдельного типа
file_attr_name_description? то есть как-то прямо написать в том
месте где нужно FileDescription.
Можно ли как-то создать тип name_value который будет матчить любой узел вида:
<attribute name='FileDescription' value='Cool Game' />
и ограничением этого типа получать частные случаи для FileDescription и URL.
вообще любые советы как это упростить приветствуются..
все просто. "есть проблема. обязательно: придумать описание на xml; по-возможности: разобраться в предметной области." на w3c.org уйма "стандартов", разработанных по данной методике. :)
> "есть проблема. обязательно: придумать описание на xml; по-возможности: разобраться в предметной области." на w3c.org уйма "стандартов", разработанных по данной методике. :)
я таки окончательно пришел к выводу что XSD это полное дрмо. Переключился на Скиматрон. Он и проще и гораздо мощнее. Да еще и стандартизирован ISO.