- 来自那里的 XSD:http://www.loc.gov/ead/ead.xsd
- JAXB 命令:xjc ead.xsd -b ead.xjb
- ead.xjb :
< bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.1" > < bindings schemaLocation="ead.xsd" version="1.0"> < bindings node="//xs:complexType[@name='title']"> < bindings node=".//xs:attribute[@name='type']"> < property name="TAttribute"/> < /bindings> < /bindings> < /bindings> < /bindings>
- 异常
parsing a schema... Exception in thread "main" java.lang.AssertionError: javax.xml.bind.JAXBException
with linked exception: [com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions com.sun.xml.bind.api.impl.NameConverter is an interface, and JAXB can't handle interfaces. this problem is related to the following location: at com.sun.xml.bind.api.impl.NameConverter at public com.sun.xml.bind.api.impl.NameConverter com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding.nameConverter at com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding ] at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationContext(BindInfo.java:356) at com.sun.tools.xjc.reader.xmlschema.bindinfo.BindInfo.getCustomizationUnmarshaller(BindInfo.java:362)
有什么问题吗?
最佳答案
你用的是哪个xjc? 我建议使用 jdk1.6 内置的 xjc 来生成所需的绑定(bind)。
关于java - EAD xsd 生成的 JAXBException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17173280/