gpt4 book ai didi

java - 奇怪的 XML 结构的验证

转载 作者:行者123 更新时间:2023-12-01 23:04:51 26 4
gpt4 key购买 nike

我有一个非常奇怪的 XML 结构需要验证。同时,我必须接受,出于政治原因,我不得修改其结构的任何内容。

我已经通过定义一个过于复杂的模式来验证其中的大部分内容。然而,XML 的某些部分似乎几乎不可能使用 XSD 进行验证。这是有问题的片段:

<booktitles>
<author>Some Author</author>
<title>Title 1</title>
<year>1666</year>
<title>Title 2</title>
<year>1919</year>
</booktitles>

因此,每个书名条目恰好包含 1 位作者和数量不等的书名 - 年份对。

因此,在不修改 XML 结构的情况下(是的,我确实意识到这听起来多么愚蠢)是否可以定义一个 XSD 来验证/强制执行它?

PS:我也可以使用 JaxB 进行验证。

最佳答案

试试这个:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="booktitles">
<xs:complexType>
<xs:sequence>
<xs:element ref="author"/>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="title"/>
<xs:element ref="year"/>
</xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="author" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="year" type="xs:string"/>
</xs:schema>

trang 提供,由此而来

<!ELEMENT   booktitles
(author, (title, year)+)
>

<!ELEMENT author
(#PCDATA)
>

<!ELEMENT title
(#PCDATA)
>

<!ELEMENT year
(#PCDATA)
>

关于java - 奇怪的 XML 结构的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22937144/

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