【问题标题】:XSD for any element with text content only?任何仅包含文本内容的元素的 XSD?
【发布时间】:2020-06-23 15:03:46
【问题描述】:

为此 XML 创建一个 XSD:

  <items name="home">
    <chicken>Foo</chicken>
    <nuggets>Bar</nuggets>
    <moo>Hello World</moo>
     ....
  </item>

我不知道items 将包含哪些元素,除了值应该是一个字符串(没有其他节点)。

只有&lt;any processContents="skip" /&gt;才能使用吗?

【问题讨论】:

    标签: xml xsd xsd-validation xml-validation


    【解决方案1】:

    XSD 1.0

    您可以使用&lt;xsd:any processContents="skip"/&gt; 来允许items 下的任何元素,但您将无法进一步强制要求有关这些元素的内容模型的任何内容。 (您不能说这些子元素只能在其内容模型中包含文本。)

    您可以使用&lt;xsd:any processContents="strict"/&gt;&lt;xsd:any processContents="lax"/&gt; 并仅控制您可以预见到在XSD 中定义的那些子元素的内容模型。

    另请参阅

    XSD 1.1

    如果你想控制你没有明确声明的子元素的内容模型,你可以在items上结合&lt;xsd:any processContents="skip"/&gt;&lt;xsd:assert test="*[not(*)]"/&gt;来坚持items的子元素没有他们自己的。

    另请参阅

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 2021-10-03
      相关资源
      最近更新 更多