草庐IT

java - 列表的自动 XmlRootElement 包装器

我有一个简单的类需要整理。该类声明为:@XmlRootElementpublicclassXMLUser...这是我得到的:myLoginmyPass现在我想在一个文件中有多个用户,但不需要自己创建包装器类,有点像使用@XmlElementWrapper但用于类而不是字段。我不知道这是否可能。这样我就可以编码一个列表(或jaxb提供的某些对象)并且我可以得到一个像这样的xml(自动生成的标记):login1pass2login2pass2感谢任何帮助。 最佳答案 不创建新类是不可能的。单一的方式是@XmlRootElement@Xm

java - JAXB 注释 - Marshall List<String[]>

我有这个简单的对象:@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)publicclassSimilarityInfoResult{privateStringname;privateListparameters;publicSimilarityInfoResult(){}publicSimilarityInfoResult(Stringname,Listparameters){this.name=name;this.parameters=parameters;}...}它是这样映射的:SubstructureSimilarityt

java - JaxB 自动从 XML 解析为 Java 类

我是jaxb的新手。我的问题如下:使用jaxb,是否可以从xml文件自动映射到java对象?从xml文件开始,是否有生成带有注释jaxbrelaitve的Java类的东西? 最佳答案 确实可以。但是,您需要XSD而不是XML文件。有一些工具(例如Trang)可以从一个或多个示例XML文件推断出XSD。请注意,如果XML示例不完整,或者如果架构无法在单个XML文件(独占元素等)中完全表示,则使用工具生成此XSD可能会得到不准确的结果。获得XSD后,使用xjc为了生成编码器/解码器类。xjcmyxsd.xsd这将生成JAXB将用于编码/

java - 不同 xmls/root 中 JAXB 中子元素的共享类

在JAXB中,当使用xsd方案中的xjc自动生成类时。alpha.xsdbeta.xml如您所见,这两个方案共享Person元素。我想做的是:以ObjectFactory类为两个模式类共享的方式使用xjc生成类(输出类将在一个包中)不使用嵌套静态类(带有属性localScoping="toplevel")使用Person类与/alpha/persons/person绑定(bind),就像与/country/class/person绑定(bind)一样,所以没有两个Person创建的类(class)这样做的目的是解码一个xml,应用业务逻辑并创建另一个作为输出,其中某些元素(如Perso

javax.xml.bind.UnmarshalException : unexpected element (uri :"", 本地 :"TestSubject")。预期元素是 <{}Test>

关于这个问题有几个帮助主题但我还没有找到解决我的问题的解决方案。我感谢解决问题的指导。我尝试通过Marshal生成xml,下面的xml是从代码生成的。我必须使用下面的xml结构:test1`entercodehere`lastname123456代码@XmlRootElement(name="Test")publicclassTest{publicTest(){testSubject=newArrayList();}ListtestSubject;@XmlElement(name="testSubject",type=TestSubject.class)publicListgetTes

java - 删除使用 xjc 命令生成的 java 文件中的分数

我的xsd架构中有以下几行在生成的java文件中,我有以下代码@XmlEnumValue("SIP2")SIP_2("SIP2"),@XmlEnumValue("CUSIP3")SIP_3("SIP3"),我想删除生成的java文件中的下划线,以便上面的代码看起来像这样@XmlEnumValue("SIP2")SIP2("SIP2"),@XmlEnumValue("CUSIP3")SIP3("SIP3"),有什么方法可以调整xjc命令,使其以上述方式生成java文件?我的架构使用elementFormDefault="qualified" 最佳答案

java - JAXB 如何推进 XMLStreamReader?

我使用JAXB通过XMLStreamReader从非常大的XML文件中解码对象。如果我要解码的XML元素是分开的(用换行符或什至一个空格),这就可以正常工作。如果我正在解码的XML元素之间没有空格,我会丢失所有其他项目-XML阅读器似乎会在解码的元素之后吞下该元素。演示这一点的简化可运行示例的源代码位于https://gist.github.com/dalelane/88df784c3cb74b214d5c。有趣的部分是:XMLStreamReaderreader=XMLInputFactory.newInstance().createXMLStreamReader(inputStre

java - JAXB - xsd :all 内具有无限 maxOccurs 的元素

假设我有以下java类映射到我的REST服务的请求主体以搜索用户。@XmlRootElement(name="SearchParams")@XmlType(propOrder={})publicclassSearchParams{privateStringfirstname;privateStringlastname;privateListrole;...}请注意@XmlType注释的propOrder参数-它声明表示各个属性在XML文件中出现的顺序无关紧要,因此xsd:all而不是xsd:sequence。但是,如您所见,其中一个属性(role属性)是一个列表,因此对应于具有unbo

java - 如何使用 JAXB 使类字段成为标签名称?

我正在使用Java和JAXB进行XML处理。我有以下类(class):publicclassCharacteristic{privateStringcharacteristic;privateStringvalue;@XmlAttributepublicStringgetCharacteristic(){returncharacteristic;}publicvoidsetCharacteristic(Stringcharacteristic){this.characteristic=characteristic;}@XmlValuepublicStringgetValue(){ret

java - JAXB - 将动态生成的 namespace 移动到文档根目录

我有这个POJO,它封装了Atom条目的一个动态的、非嵌套的元素:publicclassSimpleElement{privateNamespacenamespace;privateStringtagName;privateStringvalue;privateCollectionattributes;/*getters/setters/...*/为了完整性,属性publicclassAttribute{privateStringname;privateStringvalue;privateNamespacenamespace;/*getters/setters/...*/和命名空间: