Я ищу XSD, описывающий класс экземпляров. Я объясню, что я пытаюсь выполнить на примере примера. Я хотел бы иметь тип XSD (назовем его FormBaseType), описывающий этот экземпляр:
<form method="post" action="someaction" name="acme">
<input name="EXACTLY FOO" value="EXACT ENUMERATION" type="CONST STRING" />
<input name="SOME RANDOM STRING" value="SOME RANDOM STRING" type="CONST STRING" />
<input name="SOME RANDOM STRING" value="SOME RANDOM STRING" type="CONST STRING" />
... (input element repeats up to 30 times) ...
</form>
Чем бы я хотел, чтобы OneKindOfMyFormType наследовал и ограничивал FormBaseType, чтобы он соответствовал только таким экземплярам:
<form method="post" action="someaction" name="acme">
<input name="EXACTLY FOO" value="EXACT ENUMERATION" type="CONST STRING" />
<input name="EXACTLY BAR" value="SOME RANDOM STRING RESTRICTION" type="CONST STRING" />
<input name="EXACTLY BAZ" value="SOME OTHER RANDOM STRING RESTRICTION" type="CONST STRING" />
... (input element repeats up to 30 times) ...
</form>
Я сталкиваюсь с проблемой при попытке определить несколько элементов ввода, которые по-разному ограничены. Я могу иметь несколько элементов ввода одного типа, как это:
<xs:complexType name="FormBaseType">
<xs:sequence>
<xs:element name="input" type="ns0:InputType" minOccurs="1" maxOccurs="33"/>
</xs:sequence>
</xs:complexType>
Но когда я попробую это:
<xs:complexType name="RequestType">
<xs:complexContent>
<xs:restriction base="RequestTypeBase">
<xs:sequence>
<xs:element name="input" type ="ns0:AlphaNumericInputType" minOccurs="1" maxOccurs="1" />
<xs:element name="input" type ="ns0:NumericInputType" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
существует проблема в том, что элементы с одинаковым именем («вход») и в одной и той же области видимости должны иметь одинаковый тип. (AlphaNumericInputType и NumericInputType являются ограничениями InputType, но для примера это не имеет значения, за исключением, возможно, разъяснения моих намерений).
Короче говоря, я хотел бы получить XSD-описание нескольких форм, в которых некоторые элементы input одинаковы для всех видов форм (базовых), а также для производных типов XSD * 1017. * input элементы, имеющие базовый атрибут type плюс точное значение атрибута name и для этого точного имени value ограничение типа атрибута.
Возможно ли это? Как?
ТИА