小编oge*_*gee的帖子

XSD - 如何描述一组无序的元素类型,其中第一个元素必须首先出现在序列中?

这是一个XML架构问题.

我知道xsd:all元素不能出现在序列中(必须是其类型的顶级元素).

也就是说,我不能使用以下内容:

<xsd:complexType name="Application">
  <xsd:sequence>
    <xsd:element ref="Name"></xsd:element>
    <xsd:all>
      <xsd:element ref="ADD"></xsd:element>
      <xsd:element ref="DELETE"></xsd:element>
    </xsd:all>
  </xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何以任何顺序(无序集)声明上面的"ADD"和"DELETE"元素,但仍然确保元素"Name"将是第一个并始终显示.(想想我不仅有"ADD"和"DELETE"但大约有10个或更多无序元素设置的情况:ADD,DELETE,EDIT等......)

重要说明:ADD和DELETE可能仅出现在ONCE,但它们的顺序无关紧要:

<Application>
  <NAME>
   <DELETE>
   <ADD>
</Application>
Run Code Online (Sandbox Code Playgroud)

但不是:

<Application>
  <NAME>
  <DELETE>
  <ADD>
  <DELETE> <!--cannot appear twice-->
</Application>
Run Code Online (Sandbox Code Playgroud)

xml schema xsd

20
推荐指数
3
解决办法
3万
查看次数

如何声明特殊XML模式(XSD)案例

我需要你的帮助来定义XML模式中的特殊情况:包含两个元素的序列:'x'和'y',而:

  • <x> 元素在序列中可以显示0到未绑定的时间

  • <y> 元素在序列中可以出现0到1次

  • <x><y>位置可以在任何地方 - 也就是说,可以将未绑定的时间作为<x>元素,然后是单个<y>元素,然后取消绑定<x>元素.

这个问题的XML示例:

示例#1

<x>stuff</x>
<y>stuff</y>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)

例#2

<y>stuff</y>
<x>stuff</x>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)

例#3

<x>stuff</x> 
<x>stuff</x>
<y>stuff</y>
<x>stuff</x>
Run Code Online (Sandbox Code Playgroud)

谢谢!

xml xsd

4
推荐指数
1
解决办法
1387
查看次数

标签 统计

xml ×2

xsd ×2

schema ×1