我有以下XSD:
<xs:element name="Parameter" type="complex">
</xs:element>
<xs:complexType name="complex">
<xs:choice>
<xs:element name="MyData" type="myData"/>
<xs:element name="String" type="xs:string"/>
</xs:choice>
<xs:attribute name="Name" use="required" type="xs:string"/>
</xs:complexType>
<xs:complexType name="myData">
<xs:attribute name="X" use="required" type="xs:integer"/>
<xs:attribute name="Y" use="required" type="xs:integer"/>
</xs:complexType>
当我验证这个
时<Parameter Name="P"><MyData X="1" Y="2"></MyData></Parameter>
一切都很好,但是当我尝试验证时:
<Parameter Name="P">5r5r5r5r</Parameter>
它说“元素'参数'不能包含文本。期望的可能元素列表:'MyData,String'。”有没有办法跳过<Sring></String>
围绕“5r5r5r5r “?
答案 0 :(得分:0)
你真的想要什么? 如果你想在参数标签内写,你应该这样定义:
<xs:element name="Parameter" type="xs:string"></xs:element>
答案 1 :(得分:0)
所以看起来你想要一个可以包含其他元素或文本的<Parameter>
元素。这可以通过在mixed="true"
或<xs:complexType>
元素上设置属性<xs:complexContent>
来允许混合内容来实现。
以下示例代码。
<xs:element name="Parameter">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="MyData" type="MyData"/>
</xs:sequence>
<xs:attribute name="Name" use="required" type="xs:string"/>
</xs:complexType>
<xs:element name="Parameter">
注意:混合类型允许元素任何这些可能的内容选择
You have three所有问题都围绕同一主题展开。如果这些答案没有真正解决您的问题,那么我要求您指定您真正想要实现的所有要求。