gpt4 book ai didi

java - 如何在 processContents=lax 中指定外部模式

转载 作者:行者123 更新时间:2023-12-01 05:38:52 26 4
gpt4 key购买 nike

我有一个通用架构,定义了这样的部分:

<xs:element name="detail">
<xs:annotation>
<xs:documentation>
</xs:documentation>
</xs:annotation>

<xs:complexType>
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>

我今天大部分时间都在阅读这些内容,但似乎仍然无法理解如何深入了解在详细信息元素下的实际 xml 文档中找到的字段。

我知道它可能看起来像这样:

<detail>
<drawing>
<name="test"/>
</drawing>
</detail>

<detail>
<icon>
<icon_name="testIcon"/>
<icon_image="iconImage.jpg"/>
</icon>
</detail>

xmlbeans 无法知道详细信息元素中的内容,因为它是通配符,因此它没有为我提供深入研究这些元素的方法。 xmlbeans 站点表明我修改了已读入的文档以将通配符元素向上移动一个级别,但这似乎并不明确。我还可以修改架构以对可能存在于我的特定代码中的元素进行元素引用。对此有何想法?

最佳答案

由于详细信息元素可以包含任何有效的 XML,因此您只能使用某种访问内容的通用方式(XPath、DOM 遍历或类似方式),或者专门尝试将每个子元素与特定模式进行匹配(最好使用唯一的命名空间)。然后,与已知模式匹配的子项可以被输入到您最喜欢的库,该库从 XML 生成对象。

正如您所说,另一个选项可以是指定架构中的每个有效子类型(出于可扩展性的目的,可以选择在底部使用通配符)。

关于java - 如何在 processContents=lax 中指定外部模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649876/

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