Inheritance XSD继承和xhtml格式
我正在寻找一个描述一类实例的XSD。我将用一个实例来解释我试图实现的目标。我想要一个XSD类型,我们称之为FormBaseType,用于描述此实例:Inheritance XSD继承和xhtml格式,inheritance,xsd,Inheritance,Xsd,我正在寻找一个描述一类实例的XSD。我将用一个实例来解释我试图实现的目标。我想要一个XSD类型,我们称之为FormBaseType,用于描述此实例: <form method="post" action="someaction" name="acme"> <input name="EXACTLY FOO" value="EXACT ENUMERATION" type="CONST STRING" /> <input name="SOME RANDOM
<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描述,其中一些输入元素在各种表单中都是相同的(基本的),并且在派生的XSD类型中,输入元素具有基本属性类型加上确切的名称属性值,对于确切的名称,还有一个值属性类型限制
这可能吗?怎么做
TIA根据我的发现,这是不可能做到的。请确认这一点,如果你有专业知识 名称、值和类型是XML属性。XML规范明确声明属性没有顺序。XML解析器应该能够使用单个标记先行解析输入。因此,不可能通过固定另一个属性的值来限制一个属性的类型。问题是,要按类型限制的属性值可能在属性值确定受限制属性类型之前出现