gpt4 book ai didi

java - 解码 XML 文件时如何修复无法识别的字段 "schemaLocation"

转载 作者:行者123 更新时间:2023-11-30 05:38:43 28 4
gpt4 key购买 nike

反序列化 XML 消息时遇到此错误:

Unrecognized field "schemaLocation" (class com.example.RefreshTokenType), not marked as ignorable (4 known properties: "authorized_party", "audience", "meta", "client_id"]).

<p:RefreshToken authorized_party="" client_id="15d8b31f4823aeaf21d3ba6ee87a4557"
xmlns:p="http://example.com/xsd/oauth/v2/oauth-spec.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.com/xsd/oauth/v2/oauth-spec.xsd oauth-v2-spec.xsd ">
<p:meta id="meta111" locale="*" name="x" value="x" />
</p:RefreshToken>

背景是我正在从 org.eclipse.persistence.moxy 切换到 FasterXML/Jackson,以便使用 Jersey 编码 JSON 和 XML。一切正常,直到我收到包含 schemaLocation 的 XML 消息。

这是我的反序列化设置:

public static void enableDeserializationSetting(ObjectMapper reader) {
Set<Class<?>> jaxbClasses = collectJaxbAnnotatedClasses();
reader.registerModule(new JaxbAnnotationModule());
reader.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
reader.registerSubtypes(jaxbClasses);
}

这是我的 http://example.com/xsd/oauth/v2/oauth-spec.xsd 中的片段:

    <xs:element name="RefreshToken" type="RefreshTokenType"/>
<xs:complexType name="RefreshTokenType">
<xs:sequence>
<xs:element name="meta" type="MetaDataType" minOccurs="0" maxOccurs="unbounded"></xs:element>
<xs:element name="audience" type="xs:string" minOccurs="0" maxOccurs="unbounded"></xs:element> <!-- mandated by OpenID Connect spec (aud) -->
</xs:sequence>
<xs:attribute name="authorized_party" type="xs:string" use="optional" />
<xs:attribute name="client_id" type="xs:string" use="optional" />
</xs:complexType>

有人能解释一下吗?

最佳答案

您可以禁用 FAIL_ON_UNKNOWN_PROPERTIES ObjectMapper 中的功能:

mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

或者,您可以使用 @JsonIgnoreProperties设置ignoreUnknowntrue:

@JsonIgnoreProperties(ignoreUnknown = true)
public class RefreshTokenType {
...
}

关于java - 解码 XML 文件时如何修复无法识别的字段 "schemaLocation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56125887/

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