Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml jaxb2 SAXParseException:发现无效内容_Xml_Marshalling_Sax_Jaxb2_Bipro - Fatal编程技术网

Xml jaxb2 SAXParseException:发现无效内容

Xml jaxb2 SAXParseException:发现无效内容,xml,marshalling,sax,jaxb2,bipro,Xml,Marshalling,Sax,Jaxb2,Bipro,我正在使用spring.oxm和带有SAX解析器的jaxb2将java对象编组为xml 我遇到了一个问题,我的封送员抛出了一个org.xml.sax.SAXParseException,指出存在: 发现以元素“ns59:ArtID”开头的无效内容。什么之中的一个 应为“{[…],”:ArtID,[…]} 在我的org.springframework.oxm.jaxb.JAXBMarshaller.graph中,一切似乎都正常,至少就我的理解而言。 此图显示调试模式下的这些变量: 这是jaxax.

我正在使用spring.oxm和带有SAX解析器的jaxb2将java对象编组为xml

我遇到了一个问题,我的封送员抛出了一个org.xml.sax.SAXParseException,指出存在:

发现以元素“ns59:ArtID”开头的无效内容。什么之中的一个 应为“{[…],”:ArtID,[…]}

在我的org.springframework.oxm.jaxb.JAXBMarshaller.graph中,一切似乎都正常,至少就我的理解而言。 此图显示调试模式下的这些变量: 这是jaxax.xml.transform.result.writer,然后中断错误并保留如下输出字符串:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ns43:getShipmentResponse 
xmlns="http://www.bipro.net/namespace/basis" 
xmlns:ns2="http://www.bipro.net/namespace/nachrichten" 
xmlns:ns3="http://www.bipro.net/namespace/abrechnung" 
xmlns:ns4="http://www.bipro.net/namespace/allgemein" 
xmlns:ns5="http://www.bipro.net/namespace/schaden-leistung" 
xmlns:ns6="http://www.bipro.net/namespace/partner" 
xmlns:ns7="http://www.bipro.net/namespace/sachen" 
xmlns:ns8="http://www.bipro.net/namespace/versicherung/produktmodell/rechtsschutz" 
xmlns:ns9="http://www.bipro.net/namespace/produktmodell" 
xmlns:ns10="http://www.bipro.net/namespace/versicherung/produktmodell" 
xmlns:ns11="http://www.bipro.net/namespace/kapitalanlage/basis" 
xmlns:ns12="http://www.bipro.net/namespace/versicherung/produktmodell/komposit" 
xmlns:ns13="http://www.bipro.net/namespace/kapitalanlage/transaktion" 
xmlns:ns14="http://www.bipro.net/namespace/provision" 
xmlns:ns15="http://www.bipro.net/namespace/beteiligungsverhaeltnis" 
xmlns:ns16="http://www.bipro.net/namespace/kapitalanlage" 
xmlns:ns17="http://www.bipro.net/namespace/versicherung/produktmodell/kraftfahrt" 
xmlns:ns18="http://www.bipro.net/namespace/fragen" 
xmlns:ns19="http://www.bipro.net/namespace/versicherung/produktmodell/kranken" 
xmlns:ns20="http://www.bipro.net/namespace/vertrag" 
xmlns:ns21="http://www.bipro.net/namespace/foerderung" 
xmlns:ns22="http://www.bipro.net/namespace/versicherung/produktmodell/leben" 
xmlns:ns23="http://www.bipro.net/namespace/versicherung/unfall" 
xmlns:ns24="http://www.bipro.net/namespace/sepa" 
xmlns:ns25="http://www.bipro.net/namespace/versicherung/haftpflicht" 
xmlns:ns26="http://www.bipro.net/namespace/schaden-objekte" 
xmlns:ns27="http://www.bipro.net/namespace/schaden-details" 
xmlns:ns28="http://www.bipro.net/namespace/versicherung/sach" 
xmlns:ns29="http://www.bipro.net/namespace/fahrzeug"
xmlns:ns30="http://www.bipro.net/namespace/gevo" 
xmlns:ns32="http://www.bipro.net/namespace/evb" 
xmlns:ns33="http://www.bipro.net/namespace/prozesse/foerderdaten" 
xmlns:ns34="http://www.bipro.net/namespace/prozesse/partner" 
xmlns:ns35="http://www.bipro.net/namespace/prozesse/schaden" 
xmlns:ns36="http://www.bipro.net/namespace/prozesse/vertrag" 
xmlns:ns37="http://www.bipro.net/namespace/prozesse/versicherung/vertrag/komposit" 
xmlns:ns38="http://www.bipro.net/namespace/prozesse/versicherung/vertrag/kraftfahrt" 
xmlns:ns39="http://www.bipro.net/namespace/prozesse/versicherung/vertrag/kranken" 
xmlns:ns40="http://www.bipro.net/namespace/prozesse/versicherung/vertrag/leben" 
xmlns:ns41="http://www.bipro.net/namespace/versicherung/tarifierung" 
xmlns:ns42="http://www.bipro.net/namespace/tools/iban" 
xmlns:ns43="http://www.bipro.net/namespace/transfer" 
xmlns:ns44="http://www.bipro.net/namespace/transfer/abrechnung" 
xmlns:ns45="http://www.bipro.net/namespace/transfer/gevo" 
xmlns:ns46="http://www.bipro.net/namespace/transfer/inkassostoerfall" 
xmlns:ns47="http://www.bipro.net/namespace/transfer/schaden-leistung" 
xmlns:ns48="http://www.bipro.net/namespace/transfer/schadenrueckfrage" 
xmlns:ns49="http://www.bipro.net/namespace/transfer/sepa" 
xmlns:ns50="http://www.bipro.net/namespace/transfer/vertrag" 
xmlns:ns51="http://www.bipro.net/namespace/kontext/beruf" 
xmlns:ns52="http://www.bipro.net/namespace/kontext/betriebsart" 
xmlns:ns53="http://www.bipro.net/namespace/kontext/fahrzeug" 
xmlns:ns54="http://www.bipro.net/namespace/kontext/partner" 
xmlns:ns55="http://www.bipro.net/namespace/kontext/schaden" 
xmlns:ns56="http://www.bipro.net/namespace/kontext/unternehmen" 
xmlns:ns57="http://www.bipro.net/namespace/kontext/vertrag" 
xmlns:xmime="http://www.w3.org/2005/05/xmlmime">             <ns43:Response>
            <ns2:BiPROVersion>2.6.1.0.0</ns2:BiPROVersion>
            <ns2:Status>
                <ns2:ProzessID>1530635989611</ns2:ProzessID>
                <ns2:Zeitstempel>2018-07-03T18:41:12</ns2:Zeitstempel>
                <ns2:StatusID>OK</ns2:StatusID>
                <ns2:Schwebe>false</ns2:Schwebe>
                <ns2:Meldung>
                    <ns2:ArtID>Hinweis</ns2:ArtID>
                    <ns2:MeldungID>04000</ns2:MeldungID>
                </ns2:Meldung>
            </ns2:Status>
            <ns43:Lieferung>
                <ns43:ID>1530636072667</ns43:ID>
                <ns43:Einstellzeitpunkt>2016-12-05T00:00:00</ns43:Einstellzeitpunkt>
                <ns43:Kategorie>120000000</ns43:Kategorie>
                <ns43:VerfuegbarBis>2019-12-05</ns43:VerfuegbarBis>
                <ns43:Transfer xsi:type="ns45:CT_GeVoTransfer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2.6.1.0.0
1530635989611
2018-07-03T18:41:12
好啊
假的
辛维斯
04000
1530636072667
2016-12-05T00:00:00
120000000
2019-12-05
我已经弄明白了

问题不在于编组,而在于验证

您已将JAXB配置为根据指定的模式验证封送的XML:

    marshaller.setSchemas(
            new ClassPathResource("/xsd/bipro-nachrichten-2.6.0.xsd"),
            new ClassPathResource("/xsd/bipro-transfer-2.6.0.xsd"),
            new ClassPathResource("/xsd/bipro-transfer-gevo-2.6.0.xsd"),
            new ClassPathResource("/xsd/bipro-gevo-2.6.0.xsd"),
            new ClassPathResource("/xsd/bipro-prozesse-vertrag-2.6.0.xsd"),
            new ClassPathResource("/xsd/bipro-basis-2.6.0.xsd")
            );
问题出现在
CT\u Geschaeftsvorgang
类型的
ArtID
元素中。这是您在Java代码中设置此元素的方式:

    JAXBElement<String> value = new JAXBElement<String>(
            new QName("http://wwww.bipro.net/namespace/transfer/gevo","ArtID"), String.class, "value"
            );
    value.setValue("120000000");
    CTGeschaeftsvorgang ctVertragsauskunft = new CTVertragsauskunft();
    ctVertragsauskunft.setArtID(value);
JAXBElement值=新的JAXBElement(
新QName(“http://wwww.bipro.net/namespace/transfer/gevo“,“ArtID”),String.class,“value”
);
价值。设定价值(“120000000”);
CTGeschaeftsvorgang ctVertragsauskunft=新的ctVertragsauskunft();
ctVertragsauskunft.setArtID(值);
注意名称空间URI:
http://wwww.bipro.net/namespace/transfer/gevo
,在
gevo
之前有四个
w
s和
transfer

现在,如果仔细检查您的模式
bipro-gevo-2.6.0.xsd
,您将看到它有一个不同的名称空间:

正确的名称空间是
http://www.bipro.net/namespace/gevo


http://wwww.bipro.net/namespace/transfer/gevo
http://www.bipro.net/namespace/gevo
在Java代码中解决了这个问题。

请发布完整的XML和相关的XSD部分。啊,您正在编组。请发布相关的代码。您如何构造您的对象以及如何马歇尔。尤其是相关的
ArtID
part.以及完整的异常详细信息。嗨,Lexicore,我添加了所需的信息。只需转到github repo,就可以在那里将完整的maven项目安装到ide中。期待收到您的来信。JCB