如何在架构中使用联合

时间:2012-12-28 14:46:04

标签: xml xsd

在下面的模式中,创建了三种不同的简单类型(即TestSexType,TestSexType2和TestSEXCodeSimpleType)。前两个定义了一个枚举值,而后者是由前两个类型组成的联合。然后,创建两个元素,一个是TestSexType2类型,另一个是TestSEXCodeSimpleType类型。 TextSexType(在union中定义)未在从模式生成的类中定义。关于我做错的任何想法?

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2012 rel. 2 sp1 (http://www.altova.com) by CA/CST/ES (US DEPT OF STATE) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="base" targetNamespace="base" elementFormDefault="unqualified" attributeFormDefault="unqualified">
  <xs:simpleType name="TestSexType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Y"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TestSexType2">
    <xs:restriction base="xs:token">
      <xs:enumeration value="Z"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TestSEXCodeSimpleType">
    <xs:union memberTypes="TestSexType TestSexType2"/>
  </xs:simpleType>
  <xs:element name="TestSex" type="TestSEXCodeSimpleType"/>
  <xs:element name="SexElement" type="TestSexType2"/>
</xs:schema>

1 个答案:

答案 0 :(得分:2)

您提到“从架构生成的类”这一事实表明您正在使用某种数据绑定工具。你需要告诉我们哪一个。有很多,它们在可以处理的XSD结构方面都有不同的限制。