gpt4 book ai didi

java - 包含基本参数以及其他集合或数组的集合或数组的 XML 模式

转载 作者:数据小太阳 更新时间:2023-10-29 02:45:13 25 4
gpt4 key购买 nike

我需要编写一个 XML 模式,以允许生成需要采用非常特定格式的 XML 文件。我希望将 XML Schema 与 JAXB 一起使用来创建数据对象,写入数据对象,然后将该数据对象编码为正确格式的 XML。

不幸的是,不存在此 XML 文档的架构,某些遗留代码正在以非常手动的方式读取它。所以我们的目标是创建一个 XML 模式,允许 JAXB 以这种非常具体的方式编码。

我特别遇到命名集合或数组的问题。我对此有一些变体,最复杂的版本如下。

请注意,我无法控制 XML 的目标所需格式,因此我需要了解如何指示模式以生成此模式。任何和所有的建议都会非常非常有帮助,我保证,XML Schema 专家,如果有人帮助我,那么他们将是我本周最喜欢的人!

这是目标格式:

 <BetaInfo name="Beta ID" value="1">
<SimpleBetaInfo>
<Param name="Simple Beta A" value="Beta ID 1, Param A data"/>
<Param name="Simple Beta B" value="Beta ID 1, Param B data"/>
</SimpleBetaInfo>
<ListBetaInfo name="List ID" value="1">
<Param name="Item 1" value="Beta ID 1, List Index 1, Item 1 data"/>
<Param name="Item 2" value="Beta ID 1, List Index 1, Item 2 data"/>
</ListBetaInfo>
<ListBetaInfo name="List ID" value="2">
<Param name="Item 1" value="Beta ID 1, List Index 2, Item 1 data"/>
<Param name="Item 2" value="Beta ID 1, List Index 2, Item 2 data"/>
</ListBetaInfo>
</BetaInfo>

最佳答案

这可能是一个起点。它描述了您提供的实例的结构,您可以对其进行调整以支持子元素的出现。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:attributeGroup name="commonAttributes">
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:attributeGroup>

<xs:element name="BetaInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="SimpleBetaInfo" type="BetaInfoType" minOccurs="1" maxOccurs="1" />
<xs:element name="ListBetaInfo" type="BetaInfoType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>
</xs:element>

<xs:complexType name="BetaInfoType">
<xs:sequence>
<xs:element name="Param" minOccurs="2" maxOccurs="2">
<xs:complexType>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="commonAttributes"/>
</xs:complexType>

</xs:schema>

但是,上述模式并没有限制可以使用正则表达式完成的属性内容的结构,也没有限制不同字段中数据之间的关系(这需要 JAXB 目前不支持的 XSD 1.1) .

关于java - 包含基本参数以及其他集合或数组的集合或数组的 XML 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22867632/

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