java xjc_java – XJC不会生成带命名空间的@XmlElement...

我想使用JAXB为以下XSD架构http://www.uniprot.org/support/docs/uniprot.xsd解析数据.

我的类是使用以下方法生成的:

xjc http://www.uniprot.org/support/docs/uniprot.xsd

我无法获得一个JAXB unmarshaller来解析这些数据.

xmlInputFactory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, Boolean.TRUE);

XMLEventReader rx=xmlInputFactory.createXMLEventReader(in);

final QName uEntry=new QName("http://uniprot.org/uniprot","entry");

while(rx.hasNext())

{

XMLEvent evt=rx.peek();

if(!(evt.isStartElement() && evt.asStartElement().getName().equals(uEntry)))

{

rx.next();

continue;

}

JAXBElement jaxbElement=uniprotUnmarshaller.unmarshal(rx, Entry.class);

Entry entry= jaxbElement.getValue();

(...)

}

每个“条目”实例都保持为空.当一个条目被封送到stderr时,我得到类似的东西:

我认为这是因为xjc忽略了命名空间.它产生:

@XmlRootElement(name = "entry")

public class Entry {

代替 (?)

@XmlRootElement(name = "entry",namespace="http://uniprot.org/uniprot")

public class Entry {

我怎样才能解决这个问题 ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值