次のようなxmlを作成できるようにしたいと思います。
<Restaurant>
<Property Name="Bar" Value="true" Type="boolean"/>
<Property Name="Grill" Value="true" Type="boolean"/>
<Property Name="Capacity" Value="120" Type="integer"/>
<Property Name="Size" Value="200.5" Type="decimal" Unit="square meter"/>
</Restaurant>
だから私はこのようにxsdを作成しました:
<xs:complexType name="Restaurant">
<xs:element name="Property" type="Property" minOccurs="0" maxOccurs="unbounded"/>
</xs:element>
<xs:complexType name="Property">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:anySimpleType" use="required"/>
<xs:attribute name="Type" type="xs:string" use="required"/>
<xs:attribute name="Unit" type="xs:string" use="optional"/>
</xs:complexType>
その属性「タイプ」を定義する方法は、スキーマの組み込みデータ型から 1 つだけにすることができますか? 考えられるすべての型で独自の列挙を作成したくありません。これにより、誰も書くことができないことを達成したいと思います:
<Property Name="Capacity" Value="120" Type="myOwnIntType"/>