Java 使用jaxb绑定xml和不匹配的类
我正在尝试解组一个xml,如下所示Java 使用jaxb绑定xml和不匹配的类,java,jaxb,Java,Jaxb,我正在尝试解组一个xml,如下所示 <findCustomerProfileRequest> <customer> <mobileNumber>9999999911</mobileNumber> </customer> <dataRecord> <totalRecords>10</totalRecords> <pagingS
<findCustomerProfileRequest>
<customer>
<mobileNumber>9999999911</mobileNumber>
</customer>
<dataRecord>
<totalRecords>10</totalRecords>
<pagingSize>10</pagingSize>
<offsetValue>0</offsetValue>
</dataRecord>
</findCustomerProfileRequest>
我怎样才能做到这一点。我是JAXB的新手。有什么建议吗
提前谢谢
更新
注释后
@XmlRootElement(name = "customer")
///@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
@XmlElement(name = "mobileNumber", required = true)
private String mobileNumber;
private String totalRecords;
private String pagingSize;
private String offsetValue;
使用适当的XSD,然后为实际的XML生成类怎么样。一旦生成,您就可以简单地将生成的类的属性复制到您的特定类中。您必须使用JAXB注释来注释您的客户类 e、 g 正如@Puneetsri所说的,如果您有一个xsd文件,您可以使用eclipse生成这些带注释的类。如果没有,可以从XML文件创建XSD文件,可以使用许多在线XSD生成器 如何绑定它们取决于目的。。。如果您使用的是webservices或restful服务,那么JAX-RS和JAX-WS可以自动绑定它 如果您正在执行“临时”解组,您可以将xml作为字符串传递给解组器,例如
JAXB.unmarshal(String xml, Class<T> type)
JAXB.unmarshal(字符串xml,类类型)
xml是第三方xml,这只是其中之一。是的,他们没有为他们提供xsd。如果有xml,为什么不生成自己的xsd呢?一旦你有了xsd,你就可以自己生成代码了。如果您也使用maven,那么有一个方便的插件可以执行此操作,提供一个错误com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:1个illegalannotationException计数。您可以粘贴带注释的类吗。。。似乎在使用注释时出现了一些错误。看到您对注释类的更新,我确认注释不正确。我强烈建议您获取XSD文件并自动生成JAXB实体(例如,从eclipse)。您可以使用在线XSD生成器(或任何其他方法)从XML文件获取XSD文件。。。以下是一种可能的解决方案:
@XmlRootElement(name = "Customer")
public class Customer {
@XmlElement(name = "mobileNo", required = true)
private String mobileNo;
....
}
JAXB.unmarshal(String xml, Class<T> type)