gpt4 book ai didi

xml - 独特的粒子违规

转载 作者:行者123 更新时间:2023-12-04 07:08:25 24 4
gpt4 key购买 nike

我已经关注这个问题太久了。我怀疑我错过了一些明显的东西,因为我对它太熟悉了。

我有一个存在独特的粒子违规错误的模式。我明白为什么,但我花了太长时间摆弄它,无法退后一步解决问题。

我如何描述这个模式,以便它可以验证我需要建模的内容?

内容模型如下所示:

<document>
<extract>...</extract>
<structure>...</structure>
<structure>...</structure>
</document>

或者
<document>
<structure>...</structure>
<structure>...</structure>
</document>

或者
<document>
<extract>...</extract>
<extract>...</extract>
</document>

那是 文档 元素可以包含一个或多个 提取元素或一个或多个 结构 元素或者它可以包含单个 提取元素后跟一个或多个 结构 元素。

我有一个(不正确的)架构,看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="document" type="Document"/>
<xs:complexType name="Document">
<xs:choice>
<xs:sequence>
<xs:element ref="extract" minOccurs="0"/>
<xs:element ref="structure" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:element maxOccurs="unbounded" ref='extract'/>
</xs:choice>
</xs:complexType>

<xs:element name="extract" type="xs:string"/>
<xs:element name="structure" type="xs:string"/>

</xs:schema>

(这是一个更复杂的模式的精简版)。

干杯

网卡

最佳答案

所以你需要一个 DTD 风格的内容模型:

extract+|structure+|extract,structure+

这里的问题是存在 extract不确定正在采用哪个分支。但是我们可以像这样重写内容模型:
extract,(structure+|extract*)|structure+

如果将内部选择“扩展”为代数,则可以看到这是相同的:
extract,structure+|extract,extract*|structure+
extract,structure+|extract+|structure+ [[ extract,extract* === extract+ ]]

这个内容模型可以转换回 XSD:
<xs:complexType name="Document">
<xs:choice>
<xs:sequence>
<xs:element ref="extract"/>
<xs:choice>
<xs:element ref="structure" maxOccurs="unbounded"/>
<xs:element ref="extract" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
<xs:element ref="structure" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>

关于xml - 独特的粒子违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com