PDA

View Full Version : setting attribute in complextype restriction


renting
08-10-2009, 08:55 PM
I have the following code:

<xs:complexType name="Frequency">
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="units" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Hz"/>
<xs:enumeration value="KHz"/>
<xs:enumeration value="MHz"/>
<xs:enumeration value="GHz"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType><xs:complexType name="ClockType">
<xs:simpleContent>
<xs:restriction base="Frequency">
<xs:enumeration value="160"/>
<xs:enumeration value="200"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>

My problem is, that for the life of me, I can't figure out how to set the units attribute when restricting Frequency in ClockType. What I want to do is have ClockType be either 160MHz or 200MHz.

Does anyone have a clue how to do this?

Thank you for any replies.

renting
08-19-2009, 10:58 AM
I got some help elsewhere and figured out a way to do this:

<xs:simpleType name="frequencyunit">
<xs:restriction base="xs:string">
<xs:enumeration value="Hz" />
<xs:enumeration value="KHz" />
<xs:enumeration value="MHz" />
<xs:enumeration value="GHz" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Frequency">
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="units" type="frequencyunit" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ClockType">
<xs:simpleContent>
<xs:restriction base="Frequency">
<xs:enumeration value="160" />
<xs:enumeration value="200" />
<xs:attribute fixed="MHz" name="units" type="frequencyunit" use="required" />
</xs:restriction>
</xs:simpleContent>
</xs:complexType>