Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Xpath eclipselink moxy xml路径绑定文件跳过元素_Xpath_Eclipselink_Moxy - Fatal编程技术网

Xpath eclipselink moxy xml路径绑定文件跳过元素

Xpath eclipselink moxy xml路径绑定文件跳过元素,xpath,eclipselink,moxy,Xpath,Eclipselink,Moxy,我希望通过使用xml路径,它可以跳过需要忽略的元素,但它似乎没有这样做。我错过什么了吗 它应该忽略嵌套元素“responseHeader” 错误: Caused by: org.xml.sax.SAXParseException: unexpected element (uri:"", local:"responseHeader"). Expected elements are <{}response> at org.eclipse.persistence.internal.

我希望通过使用xml路径,它可以跳过需要忽略的元素,但它似乎没有这样做。我错过什么了吗

它应该忽略嵌套元素“responseHeader”

错误:

Caused by: org.xml.sax.SAXParseException: unexpected element (uri:"", local:"responseHeader"). Expected elements are <{}response>
    at org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.startUnmappedElement(UnmarshalRecordImpl.java:957)
    at org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.startElement(UnmarshalRecordImpl.java:814)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
由以下原因引起:org.xml.sax.SAXParseException:意外元素(uri:,local:“responseHeader”)。预期的要素是
位于org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.startunmapedElement(UnmarshalRecordImpl.java:957)
位于org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.startElement(UnmarshalRecordImpl.java:814)
位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement上(XMLNSDocumentScannerImpl.java:400)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
这是xml输入

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/admin/tabular.xsl"?>
<response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://atomics.aol.com/cnet-search/response.xsd">
<responseHeader>
<status>0</status>
<sql>select * from csource_WEEKBOX LIMIT 0,20</sql>
<numFields>15</numFields>
<numRecords>10</numRecords>
<QTime>0</QTime>
</responseHeader>
<responseBody>
<record>
<field type="integer">
<name>rank</name>
<value>1</value>
</field>
<field type="integer">
<name>movieid</name>
<value>143966</value>
</field>
<field type="integer">
<name>mf_mid</name>
<value>58759</value>
</field>
<field type="string">
<name>movietitle</name>
<value>Prisoners</value>
</field>
<field type="integer">
<name>previous</name>
<value>0</value>
</field>
<field type="integer">
<name>gross</name>
<value>21430000</value>
</field>
<field type="integer">
<name>grosschange</name>
<value>0</value>
</field>
<field type="integer">
<name>number</name>
<value>3260</value>
</field>
<field type="integer">
<name>numberchange</name>
<value>0</value>
</field>
<field type="integer">
<name>average</name>
<value>6574</value>
</field>
<field type="integer">
<name>cume</name>
<value>21430000</value>
</field>
<field type="integer">
<name>weeks</name>
<value>1</value>
</field>
<field type="integer">
<name>batchNumber</name>
<value>104323</value>
</field>
<field type="string">
<name>rowStatus</name>
<value>I</value>
</field>
<field type="date">
<name>updateDateTime</name>
<value>2013-09-24 11:08:34</value>
</field>
</record>
<record>
...

0
从csource\u WEEKBOX LIMIT 0,20中选择*
15
10
0
等级
1.
电影ID
143966
梅德韦杰夫酒店
58759
电影
囚犯
以前的
0
总的
21430000
格罗桑奇
0
数
3260
数字变化
0
平均的
6574
库姆
21430000
周
1.
批次号
104323
rowStatus
我
更新时间
2013-09-24 11:08:34
...
绑定文件:

<?xml version="1.0"?>
<xml-bindings 
        xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
        version="2.1" package-name="com.dao">
    <java-types>
        <java-type name="DaoResult">
            <xml-root-element name="response"/>
            <xml-type prop-order="results"/>
            <java-attributes>
                <xml-element java-attribute="results" xml-path="responseBody/record" type="com.aol.pxy.movies.model.WeekBox" container-type="java.util.List"/>
                <xml-transient java-attribute="totalCount"/>
                <xml-transient java-attribute="cachedTime"/>
                <xml-transient java-attribute="firstResult"/>
                <xml-transient java-attribute="inputQuery"/>
                <xml-transient java-attribute="paginationHandle"/>
            </java-attributes>
        </java-type>
    </java-types>
</xml-bindings>

模型类:

public class DaoResult<T>  extends AbstractModel implements Serializable {

    private static final long serialVersionUID = -6369563906973225250L;

    @XmlTransient
    private String inputQuery;

    @Deprecated
    private Integer count = -1;

    private Integer totalCount;

    private List<T> results;

    private String paginationHandle;

    private Date cachedTime = new Date();
公共类DaoResult扩展了AbstractModel实现了可序列化{
私有静态最终长SerialVersionId=-636956390697322550L;
@XmlTransient
私有字符串输入查询;
@不赞成
私有整数计数=-1;
私有整数totalCount;
私人名单结果;
私有字符串分页句柄;
private Date cachedTime=新日期();

注意:我是专家组的负责人和成员

当我意外地将输入文档作为外部映射文档指向时,我遇到了一个与您类似的错误。当我执行下面的小示例时,一切都按预期工作

演示代码

在下面的示例中,
oxm.xml
是外部映射文档,
input.xml
是输入数据文档

导入java.io.File;
导入java.util.*;
导入javax.xml.bind.*;
导入org.eclipse.persistence.jaxb.JAXBContextProperties;
公开课演示{
公共静态void main(字符串[]args)引发异常{
映射属性=新的HashMap(1);
put(JAXBContextProperties.OXM_元数据_源代码,“src/com/dao/OXM.xml”);
JAXBContext jc=JAXBContext.newInstance(新类[]{DaoResult.Class},属性);
Unmarshaller Unmarshaller=jc.createUnmarshaller();
File xml=新文件(“src/com/dao/input.xml”);
DaoResult=(DaoResult)unmarshaller.unmarshal(xml);
Marshaller=jc.createMarshaller();
setProperty(marshaller.JAXB_格式化的_输出,true);
marshaller.marshall(结果、系统、输出);
}
}