gpt4 book ai didi

java - xmlbeans 上的 Getter 生成的类返回 null,它不应该

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

使用此简化的 XSD(已简化,但仍然像所有 XSD 一样冗长):

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="[redacted]">
<xsd:element name="Statement" type="BILLINGSTATEMENTTYPEType"/>

<xsd:complexType name="BILLINGSTATEMENTTYPEType">
<xsd:sequence>
<xsd:element name="AccountSection" type="ACCOUNTSECTIONTYPEType"/>
<xsd:element name="DataSection" type="DATASECTIONTYPEType"/>
<xsd:element name="Summary" type="SUMMARYTYPEType"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ACCOUNTSECTIONTYPEType">
<xsd:sequence>
<xsd:element name="Foo" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="DATASECTIONTYPEType">
<xsd:sequence>
<xsd:element name="Bar" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="SUMMARYTYPEType">
<xsd:sequence>
<xsd:element name="Baz" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

</xsd:schema>

我生成了一个 JAR 文件(使用 <xmlbean> Ant task from xmlbeans ),一切看起来都很棒,我得到了所有正确的类型等等。但是当我让它解析这个简化的文档时:

<Statement>
<AccountSection>
<Foo>bar</Foo>
</AccountSection>
<DataSection>
</DataSection>
<Summary>
</Summary>
</Statement>

使用这段代码:

public class XmlTest {
public static void main(String[] args) throws Exception {
File xmlFile = new File("./data/test.xml");
FileInputStream xmlStream = new FileInputStream(xmlFile);

BILLINGSTATEMENTTYPEType statement = BILLINGSTATEMENTTYPEType.Factory.parse(xmlStream);

ACCOUNTSECTIONTYPEType acctSection = statement.getAccountSection();

System.out.println(statement.xmlText());
System.out.println("acctSection is null:" + (acctSection == null));
}
}

acctSection (以及我尝试过的任何子部分)始终为空,即使它正在完全解析文档。

输出:

<Statement>
<AccountSection>
<Foo>bar</Foo>
</AccountSection>
<DataSection>
</DataSection>
<Summary>
</Summary>
</Statement>
acctSection is null:true

为什么为空?为什么它们都是空的?我是否在我的 XSD 中的某处不正确地定义了某些东西?我之前成功使用过 xmlbeans,但从未遇到过这个问题,这就是为什么我确信我遗漏了一些东西,但我一直找不到它。

最佳答案

我自己不是xmlbeans中的export,但是我注意到你使用了复杂类型的Factory来解析xml。您可以尝试改用 StatementDocument.Factory 吗?

关于java - xmlbeans 上的 Getter 生成的类返回 null,它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823598/

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