ich möchte das element methodtype je nachdem in welchem element es benutzt wird einschränken
bsp.: wenn ich ein cetype habe dann darin ein method definiere, dann darf das attribut m_type in method nur die werte OS und trigger annehmen,
bei smtype nur noOS.
gibts es ne möglichkeit so eine beschränkung ins schema file einzufügen.
meine idee, ich habe es über vererbung versucht, aber es kommen fehler medlungen beim validieren, gibt es vlt eine bessere oder andere lösung
bsp.: wenn ich ein cetype habe dann darin ein method definiere, dann darf das attribut m_type in method nur die werte OS und trigger annehmen,
bei smtype nur noOS.
gibts es ne möglichkeit so eine beschränkung ins schema file einzufügen.
Code:
<xsd:complexType name="methodType">
<xsd:sequence>
<xsd:element name="interfaceElement" type="interfaceElementType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="m_type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="OS"/>
<xsd:enumeration value="NoOS"/>
<xsd:enumeration value="trigger"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="smType">
<xsd:sequence>
<xsd:element name="method" type="methodType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="sm" type="smType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interfaceElement" type="interfaceElementType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
</xsd:complexType>
<xsd:complexType name="ceType">
<xsd:sequence>
<xsd:element name="method" type="methodType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ce" type="ceType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interfaceElement" type="interfaceElementType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
</xsd:complexType>
meine idee, ich habe es über vererbung versucht, aber es kommen fehler medlungen beim validieren, gibt es vlt eine bessere oder andere lösung
Code:
<xsd:complexType name="methodType_module">
<xsd:complexContent>
<xsd:restriction base="methodType">
<xsd:sequence>
<xsd:element name="interfaceElement" type="interfaceElementType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="m_type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="OStype"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>