org.xml.sax.saxpasseeption:cvc复杂类型。2.4.c:匹配的通配符是严格的,但找不到元素';接收时间';

org.xml.sax.saxpasseeption:cvc复杂类型。2.4.c:匹配的通配符是严格的,但找不到元素';接收时间';,xml,saxparseexception,Xml,Saxparseexception,我正在尝试验证一个xml文件。这是我的xsd: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="EXTRACT"> <xs:complexType> <xs:sequence> <xs:element r

我正在尝试验证一个xml文件。这是我的xsd:

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="EXTRACT">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="HEAD"/>
        </xs:sequence>
    </xs:complexType>

</xs:element>

<xs:element name="HEAD">
<xs:complexType>
    <xs:sequence>
        <xs:element name="RequestId" type="xs:integer"/>
        <xs:element name="RequestsInBatch" type="xs:string"/>
        <xs:element name="PeriodDate" type="xs:date"/>
        <xs:element name="Type" type="xs:string"/>
        <xs:element name="StartDate" type="xs:date"/>
        <xs:element name="EndDate" type="xs:date"/>
        <xs:element name="PricingDate" type="xs:date"/>
        <xs:any minOccurs="0"/>
    </xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>

这是我的xml文件

<?xml version='1.0'?>
<EXTRACT>
    <HEAD>
        <RequestId>1</RequestId>
        <RequestsInBatch>1,2</RequestsInBatch>
        <PeriodDate>2013-03-31</PeriodDate>
        <Type>Monthly</Type>
        <StartDate>2013-03-01</StartDate>
        <EndDate>2013-03-31</EndDate>
        <PricingDate>2013-03-29</PricingDate>
        <ReceiptTime>2013-04-02 12:30:00</ReceiptTime>
        <CreateTime>2013-04-02 16:00:00</CreateTime>
        <RecordCount>3</RecordCount>
        <ExceptionCount>1</ExceptionCount>
        <ExtractType>FLOWS</ExtractType>
        <ExtractCurrency>USD</ExtractCurrency>
    </HEAD>
</EXTRACT>

1.
1,2
2013-03-31
月刊
2013-03-01
2013-03-31
2013-03-29
2013-04-02 12:30:00
2013-04-02 16:00:00
3.
1.
流动
美元
我不关心其他标签,我认为它是由


但是,当我在Java中运行时,我得到以下错误org.xml.sax.SAXParseException:cvc complex type.2.4.c:匹配的通配符是严格的,但是找不到元素“ReceiptTime”的声明


我如何验证该文件,使其忽略我没有在xsd中声明的任何元素,因为我不需要它们,但它们仍然在xml文档中?我无法控制xml文档的内容,因此我只需要关注要提取的数据。

尝试设置
processContents=“lax”
。默认值为
strict
,这意味着它可以是任何元素,只要它在您的模式中的某处定义

<xs:any processContents="lax" minOccurs="0"/>


签出。

现在我收到以下错误:org.xml.sax.saxpasseeption:cvc复杂类型。2.4.d:发现以元素“CreateTime”开头的无效内容。此时不需要任何子元素。我认为这意味着它只能允许一个元素。我如何让它接受多个元素?谢谢你的信息,这很有帮助。只需快速更改,添加
maxOccurs=“unbounded”
即可使其正常工作。现在它变成了:
<xs:any processContents="lax" minOccurs="0"/>