gpt4 book ai didi

java - JAXB 验证错误 - cvc-complex-type.2.4.a : Invalid content was found starting with element 'codeSystem' . 需要 '{codeSystem}' 之一

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

我正在尝试解析和验证 XML (jaxb-impl-2.2.4.jar),但收到错误:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'codeSystem'. One of '{codeSystem}' is expected.

我不确定是什么原因造成的,因为我认为我的 XML 看起来是正确的。

codeSystem 的架构要求:

<xs:complexType name="GenericPropertyType">
<xs:element name="codeSystem" type="tns:CodeSystem">
</xs:element>
<xs:element name="code" type="tns:Code">
</xs:element>
<xs:element name="codeText" type="tns:CodeText" minOccurs="0">
</xs:element>
</xs:complexType>

codeSystem 所属的 GenericProperty Java 类:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "GenericPropertyType", propOrder = {
"codeSystem",
"code",
"codeText"
})
public class GenericPropertyType {

@XmlElement(required = true)
protected String codeSystem;
@XmlElement(required = true)
protected String code;
@XmlElement
protected String codeText;

/**
* Getters and Setters ommitted.
*
*/
}

正在解析的 XML:

<genericProperty>
<codeSystem>8B-30-33</codeSystem>
<code>EMAIL_RETRY_COUNT</code>
<codeText>5</codeText>
</genericProperty>

我尝试过在 genericPropertycodeSystem 元素中提供或不提供命名空间,例如 xmlns="http://www.somedomain.com/context" 但错误仍然相同。有什么想法吗?

编辑架构中的 CodeSystem 类型:

<xs:simpleType name="CodeSystem">
<xs:annotation>
<xs:documentation>Simple Type with Input Restictions</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse" fixed="true"/>
<xs:maxLength value="64" fixed="true"/>
</xs:restriction>

最佳答案

通过将此行添加到正在验证的 XmlSchema(XSD 文件)中,我能够解决该问题:elementFormDefault="qualified"

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.somedomain.com/context"
xmlns:tns="http://www.somedomain.com/context"
**elementFormDefault="qualified"**>

我在我的 package-info.java 类中声明了这个,但我忘记检查它是否在提供给 JAXB 解析器的 XSD 模式中。

关于java - JAXB 验证错误 - cvc-complex-type.2.4.a : Invalid content was found starting with element 'codeSystem' . 需要 '{codeSystem}' 之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862651/

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