第三十五章 XML 模式的高级选项 - 创建子类型的选择列表
创建子类型的选择列表
根据 XML Schema 规范,复杂类型可以由类型(特别是相关类型)的选择列表组成。假设我们希望架构允许使用 , , or 元素,而不是 元素。要定义这样的架构,我们会将 Person 属性的 属性参数设置为等于“CHOICE”,如下所示:
Class UsingSubclasses.Example2 Extends (%Persistent, %XML.Adaptor)
{
Property Person As UsingSubclasses.Person(XMLTYPECONSTRAINT = "CHOICE");
}
默认情况下,选择列表由 类的所有子类组成。示例 的架构如下:
<s:complexType name="Example2">
<s:sequence>
<s:choice minOccurs="0">
<s:element name="Employee" type="Employee" />
<s:element name="Patient" type="Patient" />
<s:element name="Person" type="Person" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="Employee">
<s:complexContent>
<s:extension base="Person">
<s:sequence>
<s:element name="EmployeeID" type="s:string" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="Person">
<s:sequence>
<s:element name="Name" type="s:string" />
<s:element name="DOB" type="s:date" />
</s:sequence>
</s:complexType>
<s:complexType name="Patient">
<s:complexContent>
<s:extension base="Person">
<s:sequence>
<s:element name="PatientID" type="s:string" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
.png)
.png)
.png)
.png)


.jpg)

