具有多重继承的 XML 模式

2024-04-01

XML 模式中是否可以具有多重继承,如果可以,如何实现?

Example

<xs:schema xmlns:xs="http://www.w3.org/2001/Schema" ....>

 <xs:complexType name="Account">
   <xs:sequence>
     <xs:element name="balance" type="xs:decimal"/>
     <xs:element name="accountNo" type="xs:string"/>
   </xs:sequence>
 </xs:complexType>

 <xs:complexType name="CreditCardAccount">
   <xs:complexContent>
    <xs:extension base="Account">
     <xs:sequence>
      <xs:element name="expiryDate" type="xs:date"/>
      <xs:element name="issuer" type="xs:string"/>
      <xs:element name="type" type="xs:string" use="required"/>
     </xs:sequence>
    </xs:extension>
   <xs:complexContent>
 </xs:complexType>

</xs:schema>

我的问题是; CreditCardAccount 是否可以继承多种类型而不是仅继承 Account?


在某些方面类似于多重继承的东西可以使用命名模型组和命名属性组进行管理;它是否以您想要的方式类似于多重继承只有您自己才能判断。

假设您有复杂类型 Account(如上所示)和 Customer,并且您希望复杂类型 CreditCardAccount 从它们中的每一个继承。正如其他人指出的那样,您不能在复杂类型定义中指定两个基本类型。但是您可以将 Account 和 Customer 类型的内容模型打包到命名模型组中,并从类型定义中引用适当的命名组。

<xs:group name="Account">
  <xs:sequence>
    <xs:element name="balance" type="xs:decimal"/>
    <xs:element name="accountNo" type="xs:string"/>
  </xs:sequence>
</xs:group>

<xs:group name="Customer">
  <xs:sequence>
    <xs:element name="custid" type="xs:int"/>
    <xs:element name="street" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="phone" type="xs:string"/>
  </xs:sequence>
</xs:group>

<xs:complexType name="Account">
  <xs:sequence>
    <xs:group ref="Account"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="Customer">
  <xs:sequence>
    <xs:group ref="Customer"/>
  </xs:sequence>
</xs:complexType>

然后您可以从 CreditCardAccount 引用这两个命名组:

<xs:complexType name="CreditCardAccount">
  <xs:sequence>
    <xs:group ref="Account"/>
    <xs:group ref="Customer"/>
    <xs:element name="expiryDate" type="xs:date"/>
    <xs:element name="issuer" type="xs:string"/>
    <xs:element name="type" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

在这种情况下,XSD 验证器不会将 Customer、Account 和 CreditCardAccount 类型视为相关的,这可能重要也可能不重要。

当然,更简单的方法是将元素用作信息包,并定义元素 Account、Customer 和 CreditCardAccount,其中 CreditCardAccount 包含 (surprise) 一个帐户元素和一个客户元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有多重继承的 XML 模式 的相关文章

  • 如何使用lxml和python更新xml文件?

  • 如何为键盘上的 xml 中的功能键设置不同的背景?

    我正在开发 Android 键盘应用程序 我尝试为普通键和功能键设置不同的背景 但它不起作用
  • 使用 LinearLayout 将按钮放在屏幕底部?

    我有以下代码 如何使 3 个按钮位于底部
  • 在以下情况下强制 EditText 失去焦点:按下某些键盘按键以及当用户单击活动中的其他内容时

    我知道这个问题之前已经以多种不同的方式提出过 但即使我已经查看了许多有关 EditText 焦点的其他相关问题 我还没有找到我的解决方案 这是我想要实现的目标 当用户完成编辑 EditText 后 我 希望它失去焦点 当用户点击 EditT
  • Android 子菜单布局

    我读到 Android 中的子菜单不支持图标 我想知道这是否已经改变 或者是否有类似的方法来生成支持图标的 子菜单 Currently This is My Submenu 这是它的 XML 文件 menu menu
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么不继承 std::allocator

    我创建了自己的分配器 如下所示 template
  • 如何使用sql作为xml路径('')但保留回车符

    我有下面的代码 select select cast Narrative as Varchar max char 13 from officeclientledger where ptmatter matter and ptTrans 4
  • 带有嵌套表的 XSLT 中的数据对齐问题

    我正在通过 FoundationPHP 使用 XSLT 和嵌套表生成 Word 文档 我想要的结果是 Table 1 Table 2 Image 1 Image 2 Label 1 Label 2 Data 1 Data 2 Table 3
  • 使用 C# 将 XML 转换为 BSON

    我想将 XML 文件转换为 BSON 然后将 BSON 导入 MongoDB 我进行了搜索 但找不到如何使用 C 来隐藏它 请向我提供使用 C 执行此操作的源代码 今天有同样的问题 这肯定不是最好的解决方案 但是 我在我的项目中以这种方式解
  • 如何获得打开另一个活动的按钮?

    我已在活动 XML 文件中添加了一个按钮 但无法用它来打开我的其他活动 有人可以逐步告诉我如何做到这一点吗 A 确保您的其他活动已在清单中声明
  • 构造函数和析构函数的继承

    我相信Constructors and Destructors in base class不能被继承derived classes的基类 我的理解是否正确 你的理解是正确的 例如 如果您有 class Base Base int i cla
  • 从流中过滤/删除无效的 xml 字符

    首先 我无法更改 xml 的输出 它是由第三方生成的 他们在 xml 中插入无效字符 我得到了 xml 字节流表示形式的 InputStream 除了将流消耗到字符串中并对其进行处理之外 是否有一种更干净的方法来过滤掉有问题的字符 我找到了
  • Dart - 抽象构造函数

    假设我有抽象类 A abstract class A A someConstructor Foo foo A 的所有子类都应该实现这样的构造函数 class B extends A override B someConstructor Fo
  • Solr 索引在分隔符上分割字段

    我正在尝试使用一些数据设置 Solr 索引 但是我想将我的字段之一作为管道分隔发送并在 Solr 端拆分 例如
  • 如何从 SOAP 响应中删除额外的结果标签

    我知道这个问题以前曾被问过 但我在任何地方都找不到答案 问题是我的 asmx 文件中有以下代码 namespace IrancellSmsServer SoapDocumentService RoutingStyle SoapService
  • 如何访问 Scala XML 中的父元素

    The scala xml包表示带有标记树节点的 XML 但是这棵树在 Scala 2 7 中是单向的吗 因为似乎没有办法访问Elem给定的父级Elem 这似乎同样适用于父母Document 例如 在 XOM 中你有getParent an
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中
  • CDATA 真的有必要吗?

    我经常使用内联 Javascript 通常是在我制作的 WordPress 主题中 我没有听说过将内联 Javascript 包装在 直到几个月前 几年来我一直在以相当的能力水平做这些事情 我用谷歌搜索了一下 听说人们使用它是因为他们的 J

随机推荐

  • 测量 Javascript 应用程序的 CPU 负载

    我需要测量额外的 Javascript 事件绑定 使用 jQuery live 的性能开销 该开销可能会增加 CPU 负载 并且很难从执行时间分析中注意到 如何测量 Javascript 应用程序的两个不同版本之间的 CPU 负载差异 分析
  • Process.Start cmd.exe 在 IIS 中运行时不会运行作为参数传递的 cmd 文件

    我整个早上都在寻找和试验这个 但我被难住了 我有一个在 IIS 中运行的 aspx 页面并调用以下 c 函数 我试图让它运行 cmd 文件并返回 cmd 文件的输出 我在下面的代码中尝试了五个不同的选项 protected String R
  • 渲染谷歌折线图,曲线类型未设置且动画未按预期工作

    我正在绘制谷歌折线图 效果很好 该图表使用正确的数据绘制 但是 当我更改 curveType 的选项时 函数 选项不会将图表从直线更改为曲线 此外 动画功能根本不执行任何操作 我在这里错过了什么吗 这是我的代码 google charts
  • MUI v5 - 将组件名称添加到“样式”类名称中?

    我在 github 和这里进行了一些搜索 但也许我的做法是错误的 Using styled from mui material styles生成随机类名 如下所示 const TitleWrapper styled div display
  • Android 中整个应用程序的选项菜单?

    我可以为单个活动创建一个选项菜单 但现在我想在菜单中创建一个注销选项 该选项应该在应用程序中的所有活动中可用 有没有可能为应用程序创建一次选项菜单 我曾经回答过这个问题 但我忘了在哪里 所以我又来了 它非常简单 创建一个BaseActivi
  • “机器硬件”和“硬件平台”的区别

    我的 Linux 机器报告 uname a 输出如下 root tom i386 uname a Linux tom 2 6 9 89 ELsmp 1 SMP Mon Apr 20 10 34 33 EDT 2009 i686 i686 i
  • 将单列文本输入重新排列为多列

    我正在将 jTable 用于我目前正在进行的一个项目 想看看你们是否可以帮助解决我遇到的 CSS 问题 我在下面制作了一个 jsfiddle 当我向 jTable 添加新记录时会弹出该表单 因为我有很多行 所以它比可见屏幕长 您认为通过一些
  • 为什么 Git 中会忽略 IDE 特定的项目文件?

    我看到 Github 上发布的许多项目都有一个 gitignore文件明确排除与 IDE 相关的控制文件 这些控制文件广泛用于定义项目及其依赖项 这些可以是 sln对于 NET 或 project对于 Eclipse 我想问为什么这种做法被
  • Angular ngAnimate 在页面加载时第一次无法工作

    我正在使用 ngAnimate 除了页面加载后第一次之外 它的效果都很好 我有一些像这样的html a href newcontent a div class content div 使用路由单击链接时视图会更新 如下所示 app conf
  • 如何更改 Eclipse 项目的 JDK 版本

    我需要编写一个仅与 Java 1 5 兼容的项目 我安装了Java 1 6 是否有某种形式的向后兼容性可以让 Eclipse 使用 1 5 进行编译 我是否必须安装 Java 1 5 才能在此处显示 或者也许还有另一种方法 单击添加库按钮
  • 将 d3-tip 与 npm 一起使用:“未捕获类型错误:无法读取未定义的属性‘节点’”?

    我已经安装了d3 3 5 17 and d3 tip 0 7 1 使用 npm d3 tip 文档 https www npmjs com package d3 tip 然后在我的index js文件我有这个代码 var d3 requir
  • 用于翻译的 MySQL 结构

    根据这种方法 默认语言是已经翻译了在第一个表中 如果用户不需要翻译 他就不会为之烦恼 只需连接主表 仅此而已 产品表 InnoDB Obj id PK name desc 1 Million Dollar Baby Short descri
  • 在 Oracle 11g 中如何将分区表从一个表空间移动到另一个表空间?

    我有一个属于表空间的分区表report 我想将它移动到表空间record反而 一种可能性是删除表并在新表空间中重新创建它 但这对我来说不是一个选择 因为表中的数据需要在移动后继续存在 我首先检查分区是否确实属于表空间报告 SELECT FR
  • Symfony 2:如何渲染没有日期的日期字段?

    我正在尝试构建带有日期字段的表单 其中用户只能选择月份和年份 没有月份中的某一天 但我不知道如何实现这一点 public function buildForm FormBuilderInterface builder array optio
  • 停止加载 iframe

    所以我有 iframe 并且我正在通过它上传文件 所以我的问题是如何在加载过程中停止它 我尝试使用 jquery 函数更改 srcattr 但我没有做任何好事 我正在考虑删除整个 iframejs但这会给我带来其他问题 我什至不确定它是否有
  • 为什么排序(Comparator::reverseOrder)不起作用?

    下面的 Stream 表达式工作得很好 Stream
  • Itextsharp:导入页面时有没有办法复制链接?

    我正在开发一个项目 需要在显示 pdf 之前对其进行编辑 I need 添加水印 编辑权限 锁定以避免 复制 粘贴 和 另存为 编辑观众偏好 我做到了 并且工作正常 除了一件事 原始文件中的链接在新文件中不起作用 有什么想法吗 注意 实际上
  • 重命名 Identity 表并导致 EF6 迁移失败

    我正在尝试通过 EF6 Package Manager 中的迁移工具重命名我的 Identity 2 0 表 然而 它已经炸毁了一部分 我只是在 IdentityModels cs 中的 ApplicationDBContext Creat
  • 流式执行 exec.Command StdoutPipe

    我正在尝试将 shell 命令的标准输出流式传输到控制台 但遇到困难 这是我目前拥有的 cmd exec Command sh c for number in 0 10 do echo number done pipe cmd Stdout
  • 具有多重继承的 XML 模式

    XML 模式中是否可以具有多重继承 如果可以 如何实现 Example