Inheritance XSD继承设计
我的xsd中有这个:Inheritance XSD继承设计,inheritance,xsd,Inheritance,Xsd,我的xsd中有这个: <xsd:simpleType name="line_action"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="add"/> <xsd:enumeration value="delete"/> <xsd:enumeration value="remove"/> &l
<xsd:simpleType name="line_action">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="add"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="remove"/>
<xsd:enumeration value="suspend"/>
<xsd:enumeration value="restore"/>
<xsd:enumeration value="update"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="action_enum_5">
<xsd:restriction base="tns:line_action">
<xsd:enumeration value="add"/>
<xsd:enumeration value="remove"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="call_forward_dont_answer">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="tns:basic_option">
<xsd:sequence>
<xsd:element name="paths" type="tns:path_type"/>
<xsd:element name="number_of_rings" type="tns:number_of_rings_type"/>
<xsd:element name="ring_to_number" type="tns:telephone_number_type"/>
</xsd:sequence>
<xsd:attribute name="action" type="tns:action_enum_5"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="line_action">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="add"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="remove"/>
<xsd:enumeration value="suspend"/>
<xsd:enumeration value="restore"/>
<xsd:enumeration value="update"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="action_enum_5">
<xsd:restriction base="tns:line_action">
<xsd:enumeration value="add"/>
<xsd:enumeration value="remove"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="call_forward_dont_answer">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="tns:basic_option">
<xsd:sequence>
<xsd:element name="paths" type="tns:path_type"/>
<xsd:element name="number_of_rings" type="tns:number_of_rings_type"/>
<xsd:element name="ring_to_number" type="tns:telephone_number_type"/>
</xsd:sequence>
<xsd:attribute name="action" type="tns:action_enum_5"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
因此,对于call_forward_dont_answer,我想扩展基本选项和更多的元素/字段,但接下来的操作应该是add和Remove。如果进行扩展,则无法更改属性类型,但如果进行限制,则无法添加新元素/字段
<xsd:simpleType name="line_action">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="add"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="remove"/>
<xsd:enumeration value="suspend"/>
<xsd:enumeration value="restore"/>
<xsd:enumeration value="update"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="action_enum_5">
<xsd:restriction base="tns:line_action">
<xsd:enumeration value="add"/>
<xsd:enumeration value="remove"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="call_forward_dont_answer">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="tns:basic_option">
<xsd:sequence>
<xsd:element name="paths" type="tns:path_type"/>
<xsd:element name="number_of_rings" type="tns:number_of_rings_type"/>
<xsd:element name="ring_to_number" type="tns:telephone_number_type"/>
</xsd:sequence>
<xsd:attribute name="action" type="tns:action_enum_5"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
我该怎么办?嗯,我自己修好了。通过制定限制,然后扩展该限制
<xsd:simpleType name="line_action">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="add"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="remove"/>
<xsd:enumeration value="suspend"/>
<xsd:enumeration value="restore"/>
<xsd:enumeration value="update"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="action_enum_5">
<xsd:restriction base="tns:line_action">
<xsd:enumeration value="add"/>
<xsd:enumeration value="remove"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="call_forward_dont_answer">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="tns:basic_option">
<xsd:sequence>
<xsd:element name="paths" type="tns:path_type"/>
<xsd:element name="number_of_rings" type="tns:number_of_rings_type"/>
<xsd:element name="ring_to_number" type="tns:telephone_number_type"/>
</xsd:sequence>
<xsd:attribute name="action" type="tns:action_enum_5"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="line_action">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="add"/>
<xsd:enumeration value="delete"/>
<xsd:enumeration value="remove"/>
<xsd:enumeration value="suspend"/>
<xsd:enumeration value="restore"/>
<xsd:enumeration value="update"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="super_option">
<xsd:attribute name="action" type="tns:line_action"/>
</xsd:complexType>
<xsd:element name="call_forward_dont_answer">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="tns:updatable_option">
<xsd:sequence>
<xsd:element name="paths" type="tns:path_type"/>
<xsd:element name="number_of_rings" type="tns:number_of_rings_type"/>
<xsd:element name="ring_to_number" type="tns:telephone_number_type"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="basic_option">
<xsd:complexContent>
<xsd:restriction base="tns:super_option">
<xsd:attribute name="action" type="tns:action_enum_1"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="updatable_option">
<xsd:complexContent>
<xsd:restriction base="tns:super_option">
<xsd:attribute name="action" type="tns:action_enum_5"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>