gpt4 book ai didi

xml - XSD 具有相同名称但不同类型的多个元素

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

我正在尝试针对某些看起来(在结构上明智的)类似于以下内容的 XML 编写 XSD:

<responses>

<response>
<id>foo</id>
<values>
<value>bar</value>
</values>
</response>

<response>
<id>asdf</id>
<values>
<value>
<a>a</a>
<b>b</b>
<c>c</c>
</value>
</values>
</response>

</responses>

当我尝试验证(使用 javax API)它时,我收到以下错误消息:

名称为“response”、具有不同类型的多个元素出现在模型组中

是否可以编写一个 XSD 来验证多个具有相同名称的节点?各个响应节点的顺序是一致的,因此至少这部分不会成为问题。

最佳答案

在设计层面,要问的问题是为什么要指定两个具有不同有效性条件的不同元素,然后用它们的元素类型名称来表示它们是同一个东西。您认为以这种方式欺骗处理器是好的设计吗?

在模式级别:分配给元素的类型完全由验证根的路径决定。 (如果验证从文档根开始,那么在您的示例中,response 元素的类型必须完全由路径 /responses/response 决定。这是完全合法的让两个同名的元素出现在不同的上下文中(其中“上下文”仅由祖先定义,而不是由 sibling 定义);在 XSD 中,不允许两个同名的 sibling 具有不同的默认类型。

关于xml - XSD 具有相同名称但不同类型的多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25575660/

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