美文网首页
第三十四章 XML 模式的高级选项

第三十四章 XML 模式的高级选项

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

第三十四章 XML 模式的高级选项

类和属性参数

  • XMLTYPECONSTRAINT

  • XMLINCLUDEINLIST

  • XMLINHERITANCE

自动创建子类的类型

当为一个类定义 XML 投影时,它的所有子类都会自动映射到单独的类型,所有这些类型都使用超类作为基类型。这意味着无论何时使用超类型,都可以使用其中一种子类型。还可以使用子类型在 XML 模式中定义选择列表或替换组。

请注意,可以为抽象类定义 XML 映射;该类在任何派生类模式中都显示为基类型,尽管它是抽象的,无法实例化。

考虑一个例子。我们从一个简单的 Person 类开始:

Class UsingSubclasses.Person Extends (%Persistent, %XML.Adaptor)
{
Property Name As %String [Required];
Property DOB As %Date(FORMAT = 5, MAXVAL = "+$h") [Required];
}

假设我们有两个直接基于 Person 类的类。首先是 Patient 类:

Class UsingSubclasses.Patient Extends UsingSubclasses.Person
{
Property PatientID As %String [Required];
}

接下来是 Employee 类:

Class UsingSubclasses.Employee Extends UsingSubclasses.Person
{
Property EmployeeID As %String [Required];
}

最后,考虑一个使用 Person 作为属性的类:

Class UsingSubclasses.Example1 Extends (%Persistent, %XML.Adaptor)
{
Property Person As UsingSubclasses.Person;
}

当生成 Example1 类的架构时,结果如下:

<s:complexType name="Example1">
    <s:sequence>
        <s:element name="Person" type="Person" minOccurs="0" />
    </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>

请注意以下事项:

  • Example1 的类型是 Person
  • Employee类型和Patient类型均已定义;这是默认设置。 (作为参考,这对应于将 XMLTYPECONSTRAINT 属性参数设置为等于“EXPLICIT”。)
  • 根据 XML 架构规范,前面的架构意味着无论何时包含 <Person> 元素,都可以包含 <Employee> 元素或 <Patient> 元素。

相关文章

  • Visio设置默认字体大小的方法

    打开visio,选项->高级,开启”开发模式“ 选项中将样式添加到”主选项卡“的”开发工具“页面下image.pn...

  • FFmpeg解读-参数说明(一)

    FFmpeg 参数说明 通用选项 -hq 激活高质量设置 视频选项 高级视频选项 音频选项 音视频捕获选项 高级选...

  • VM选项

    : 标准VM选项,VM规范的选项-X: 非标准VM选项,不保证所有VM支持-XX: 高级选项,高级特性,但属于不稳...

  • ffmpeg参数

    1.通用选项 2.视频选项 3.高级视频选项 4.音频选项 5.音频/视频捕获选项 6.高级选项 15.压缩视频

  • 类原生刷入教程(ROM更换)

    1.重启至recovery模式,清除-高级清除-勾选除USB-OTG之外的所有选项,确认清除 2.返回清除模式,格...

  • vs2017 community 找回高级保存

    找回高级保存选项 Visual Studio Community 2017 默认隐藏了高级保存选项, 我们可以通过...

  • 2018-04-24高级接口自动化框架

    高级接口自动化测试框架 //了解被测试的对象 现在流行的接口开发模式/框架: webservice:XML文件,基...

  • Visual Studio 2019 2017设置 修改编码UT

    Visual Studio编码设置 如图所示,文件->高级保存选项 但是 有可能在文件选项中没有高级保存选项这个选...

  • 2020-02-03 Excel知识学习

    课时8 高级选项重点设置 选项--高级---记忆式键入 粘贴选项 显示编辑栏 显示水平、垂直滚动条 显示工作表标签...

  • 05 全景图设置选项卡

    主窗口:全景图设置选项卡 在“全景设置”选项卡中,可以定义要创建的全景的属性。此页仅在高级模式下可见。投影定义将呈...

网友评论

      本文标题:第三十四章 XML 模式的高级选项

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