【问题标题】:How do i designate in XSD that an element only contains CDATA?我如何在 XSD 中指定一个元素只包含 CDATA?
【发布时间】:2010-09-15 14:20:52
【问题描述】:

如何在 XSD 中表示以下内容。

<price-update>
    <![CDATA[
      arbitrary data goes here
    ]]>
</price-update>

【问题讨论】:

  • 您使用 CDATA 是否有特定原因?换句话说,是否可以在一个元素(或多个元素)中传递该信息,您可以将其添加到您的架构定义中?
  • 我的文档的使用者还需要一些用它自己的 XML 语言定义的更多信息。我们不想使用单独的文件。我想做的是在我的内部搭载另一个 XML 文档。

标签: xml xsd


【解决方案1】:
<element name="price-update" type="string"></element>  

是尽可能接近。

(我认为最好将答案从 cmets 移到实际答案中)。

【讨论】:

    【解决方案2】:

    CDATA 标记只是将数据转义为文本节点的一种方式。因此,您不能规定您需要一个 CDATA 节点。

    从 DOM 的角度来看,以下文档是相同的:

    <doc>value</doc>
    

    <doc><![CDATA[value]]></doc>
    

    【讨论】:

    • 那么你会如何推荐我写 XSD?像这样?
    • 我认为 type="string" 是尽可能接近。
    • 您可能会考虑使用正则表达式模式定义自己的类型,但我认为这不会起作用,因为 XSD 处理不会“看到” CDATA 部分实际应用该模式(虽然不确定)。
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2011-01-30
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    相关资源
    最近更新 更多