草庐IT

jaxb2-basics

全部标签

java - 生成实现接口(interface)的 JAXB 类

我目前正在使用JAXB生成Java类以解码XML。现在我想创建一个与第一个非常相似的新模式,并让生成的类实现相同的接口(interface)。例如,我有两个模式文件,它们用相似的标签定义XML:成人.xsdchild.xsd我想使用JAXB和XJC生成两个类文件:publicclassAdultimplementsPerson{...publicStringgetName(){...}publicintgetAge(){...}publicStringgetJob{...}}publicclassKidimplementsPerson{...publicStringgetName(){

java - JAXB for lists 为 JSON 或 XML 自然返回

我将MOXy与Jersey一起使用来实现RESTfulAPI,并希望自然地为JSON和XML返回列表,我的意思是XML包含用于整个集合以及集合项的元素标记,而JSON仅包含集合的标签。例如,我想返回一个包含设施和位置嵌套列表的“组织”资源。作为XML:1XYZ1Telephone3Whiteboard1REGIONLondon2REGIONManchester作为JSON:{"id":1,"name":"XYZ","facilities":[{"id":1,"text":"Telephone"},{"id":3,"text":"Whiteboard"}],"locations":[{"

java - 使用 org.springframework.oxm jaxb2marshaller 追加 CDATA

我在使用jaxb2marshaller使用CDATA将少数元素编码为XML时遇到了大麻烦。我已经完成了以下解决方案:JAXBMarshallingUnmarshallingwithCDATAHowtogenerateCDATAblockusingJAXB?等等,但找不到合适的解决方案。他们要么告诉切换到旧的JAXB实现,要么使用MOXY。但是,这不是我的要求。我使用OXM库实现了以下两个类,并希望生成一个XML,其中很少有元素需要附加CDATA。importjava.util.HashMap;importjava.util.Map;importorg.springframework.c

java - Chameleon XSD 导入的 JAXB 解决方法?

这是我的第一个问题,所以请保持温和;)我遇到了一个奇怪的问题。基本上我得到了如下三个XSD定义:PartA.xsdtargetNameSpace="PartA"include="PartB.xsd"PartB.xsdPartC.xsdtargetNameSpace="PartC"inlude="PartB.xsd"import="PartA.xsd"当通过JAXB将PartC绑定(bind)到Java类时,弹出错误:同名“b.exampleType”的类/接口(interface)已被使用。使用类自定义来解决此冲突。发生这种令人困惑的错误很可能是因为该模式使用了一种称为“变色龙模式”的

java - 使用 JAXB 生成的 XML 中的重复字段

这是我的场景。我有一个通用类:publicclassTupleextendsArrayList{//...publicTuple(T...members){this(Arrays.asList(members));}@XmlElementWrapper(name="tuple")@XmlElement(name="value")publicListgetList(){returnthis;}}还有一个子类:publicclassStringTupleextendsTuple{publicStringTuple(String...members){super(members);}//ex

java - JAXB + Spring WS : "No adapter for endpoint" while using JAXBElement

我有一个Web服务,我正尝试使用Spring和Jaxb来实现。我已经有一些使用这两种服务的工作服务——但由于响应的格式,这个特定的服务给我带来了困难。在我的XSD中,响应定义如下(注意它是单个元素):我有一个如下所示的服务方法:@PayloadRoot(localPart=SERVICE_REQUEST,namespace=NAMESPACE)publicOutcomeprocessFileRequest(ServiceRequestrequestObject)我最终得到一个看起来像这样的异常:java.lang.IllegalStateException:端点没有适配器[public

java - JAXB 混合版本?未定义 'required' 属性

我使用wsimportmaven插件从WSDL文件生成一些类@MuleAnypointStudio3.5withJDK1.7_55我正在使用jaxb2.2.7并从mule库中删除版本2.1.9并替换为2.2.7。当我编译时,sometines工作正常但其他人多次出现此错误:TheattributerequiredisundefinedfortheannotationtypeXmlElementRef我尝试在JDK中创建一个endorsed文件夹并包含所需的.jars,您知道如何避免此错误或正确替换此库吗?我在pom.xml中包含了这个依赖com.sun.xml.wsjaxws-tool

java - 从 xsd 生成 jaxb 对象时如何使用类自定义来解决冲突

当我在以下xsd上运行xjc-dsrc/-pcom.testIFC2X3.xsd命令时,出现了冲突。........错误:parsingaschema...compilingaschema...[ERROR]Aclass/interfacewiththesamename"com.test.IfcCondenserTypeEnum"isalreadyinuse.Useaclasscustomizationtoresolvethisconflict.line14912offile:/media/isuru/Projects/mitrai/bim_exchange/ifc_classes_v

java - Jaxb:global binding Double 类型转换使用 XMLAdapter

我有一个定义为xsd:double的元素。如果我尝试将一个值say285放入元素然后我将其编码,我得到285.0的输出......这很好。但是,如果我将一个值放入285292746,我得到2.85292746E8的输出当我编码(marshal)我喜欢这样的东西,使双输出不会转换为带十进制的科学记数法?基本上我想要285292746或2852292746.0000000java.lang.Double.toString()对某些值使用“计算机科学记数法”,这会产生xml问题。我知道给定值的双重表示很好。但事实上值是指数格式,我正在处理的系统接受我的XML但不知道如何处理指数值,这导致我的

java - JAXB @XmlAdapter : Map -> List adapter?(仅限编码)

我有一个Map.每个人的第一个想法是将其转换为List>(Pair是自定义类)。我试过@XmlAdapter像这样:publicclassMapPropertiesAdapterextendsXmlAdapter,Map>{...}但是EclipseMOXy,我使用的JAXBimpl,以ClassCastException结束。-“无法将HashMap转换为Collection”。JAXB支持这种转换吗?还是我忽略了一些解释为什么不是这样的文档部分?附言:我想得到这样的XML:...我明白了,只需要使用中级类(class)。也描述于HandleNPEinXMLCompositeObje