美文网首页
第三十六章 XML 模式的高级选项 - 创建子类型的替换组

第三十六章 XML 模式的高级选项 - 创建子类型的替换组

作者: Cache技术分享 | 来源:发表于2023-12-15 15:23 被阅读0次

    第三十六章 XML 模式的高级选项 - 创建子类型的替换组

    创建子类型的替换组

    XML 模式规范还允许定义替换组,这可以是创建选择的替代方法。语法有些不同。无需制作明确的集中类型列表,而是注释可能的替代项,如下所示:

    <s:complexType name="Example3">
        <s:sequence>
            <s:element ref="Person" minOccurs="0" />
        </s:sequence>
    </s:complexType>
    <s:element name="Person" type="Person"/>
    <s:element name="Employee" type="Employee" substitutionGroup="Person"/>
    <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:element name="Patient" type="Patient" substitutionGroup="Person"/>
    <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>
    

    为了创建这个模式,我们使用以下类:

    Class UsingSubclasses.Example3 Extends (%Persistent, %XML.Adaptor)
    {
    Property Person As UsingSubclasses.Person
    (XMLTYPECONSTRAINT = "SUBSTITUTIONGROUP");
    }
    

    将子类限制在替换组中

    对于给定属性,如果将 XMLTYPECONSTRAINT 属性参数设置为等于“SUBSTITUTIONGROUP”,则该组将自动包含该属性类型的所有子类,如前面的示例所示。可以使用 XMLINCLUDEINGROUP 参数来标记给定的子类,以便它不包含在替换组中。例如,假设我们添加 Person 类的另一个子类:

    Class UsingSubclasses.Other Extends UsingSubclasses.Person
    {
    
    Parameter XMLINCLUDEINGROUP = 0;
    
    Property OtherID As %String [ Required ];
    }
    

    在这种情况下,该类不包含在替换组中。并且因为已经以这种方式显式标记了此类,所以它根本不包含在架构中。

    相关文章

      网友评论

          本文标题:第三十六章 XML 模式的高级选项 - 创建子类型的替换组

          本文链接:https://www.haomeiwen.com/subject/pfhggdtx.html