xsd 具有混合内容的复杂类型

Posted

技术标签:

【中文标题】xsd 具有混合内容的复杂类型【英文标题】:xsd Complex Types with Mixed Content 【发布时间】:2014-06-21 22:41:43 【问题描述】:

我正在阅读this tutorial,它指出要获得这样的 xml:

<letter>
  Dear Mr.<name>John Smith</name>.
  Your order <orderid>1032</orderid>
  will be shipped on <shipdate>2001-07-13</shipdate>.
</letter> 

您需要这个 xml 架构定义:

<xs:element name="letter">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="orderid" type="xs:positiveInteger"/>
      <xs:element name="shipdate" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
</xs:element> 

但我认为这并不完全正确。 它定义了 name、orderid 和 shiptdate 元素,但没有定义像 Dear Mr.Your orderwill be shipped on 这样的纯文本

唯一的xs:string 类型已分配给name 元素。

您能帮我理解一下吗?

非常感谢

【问题讨论】:

【参考方案1】:

这就是mixed="true" 所做的——它允许在复杂类型的声明元素周围和之间使用任意文本。元素必须按要求的顺序出现,但中间可以有任何文本。

【讨论】:

虽然教程里已经有注释了,但是我没仔细看。感谢您的回答

以上是关于xsd 具有混合内容的复杂类型的主要内容,如果未能解决你的问题,请参考以下文章

将具有混合复杂类型元素的 XML 转换为 DataSet,以及其他 DataSet 限制

如何定义XSD并在XML中使用XSD

具有限制的 XSD 数据类型字符串:max。仅 2 位数字

XML 和 XSD 验证失败:元素同时具有“类型”属性和“匿名类型”子项

使 xsd.exe 实用程序生成具有强类型的架构

cvc-complex-type.2.4.a:具有子元素和属性的复杂类型[重复]