Tag: xml

JAXB编译器将xs:boolean绑定到Java布尔包装类,而不是布尔基元类型

我正在将项目从JAXB 1.0迁移到JAXB 2.1,我遇到了数据类型映射问题。 我正在使用Ant xjc绑定编译器,并且我已经成功配置了全局绑定,例如xs:date映射到java.util.Calendar 。 但是我得到的生成方法返回Boolean ,而我想要boolean 。 这是复杂的类型: 生成的类看起来像这样: public class UsageAuthRateCharge { …….. public Boolean isPricepointCustomFieldsRequired() { return pricepointCustomFieldsRequired; } 问题是虽然装箱会起作用,但如果提供的XML不包含pricepoint_custom_fields_required的值,则类的布尔字段为空,而不是false。 这样做的时候我得到NullPointerExceptions : methodWhichTakesPrimitiveBooleanArg(myUsageAuthRateChargeInstance.isPricepointCustomFieldsRequired()); 因为它试图取消传入的布尔值 – 除了它为空。 我无法更改架构,我无法调整所有客户端代码来进行空检查。 我在binding.xml中设置了optionalProperty属性,如下所示: 在规范中,它说:“如果属性的值是”原始的“,它会像在JAXB 1.0中那样绑定” 然而,这显然没有发生。 我怎么解决这个问题? 更新: 这现在在jaxb 2.2.9中修复: https ://java.net/jira/browse/JAXB/fixforversion/16850

如何在使用JAXB进行编组时添加DOCTYPE和xml处理指令?

我正在将JAXB bean编组(序列化)为输出流。 如何添加DOCTYPE声明和xml处理指令以进行输出? 我正在做这样的编组: JAXBContext jaxbContext = JAXBContext.newInstance(“com.example.package”); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); SchemaFactory schemaFactory = SchemaFactory.newInstance(“http://www.w3.org/2001/XMLSchema”); Schema schema = schemaFactory.newSchema(schemaSource); marshaller.setSchema(schema); marshaller.marshal(object, output); 我想要输出看起来像这样: JAXB bean是生成的代码,所以我不想更改它们。 有一些hacks和无证技巧(请参阅使JAXB生成XML处理指令 )来添加xml处理指令和doctype 。 但是这样做的首选或正确方法是什么?

没有命名空间的xml的Java xsdvalidation

我想针对XSD架构validationXML文件。 XML文件根元素没有任何名称空间或xsi详细信息。 它没有属性,只有 。 我已经尝试了以下代码来自http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi.html而没有运气,因为我收到cvc-elt.1: Cannot find the declaration of element ‘root’ SchemaFactory factory = SchemaFactory.newInstance(“http://www.w3.org/2001/XMLSchema”); File schemaFile = new File(“schema.xsd”); Schema xsdScheme = factory.newSchema(schemaFile); Validator validator = xsdScheme.newValidator(); Source source = new StreamSource(xmlfile); validator.validate(source); xml使用包含的命名空间头文件(通过xmlspy添加)validation正常,但我认为可以声明xml命名空间而无需手动编辑源文件? 编辑和解决方案: public static void validateAgainstXSD(File file) { try { SchemaFactory factory = SchemaFactory.newInstance(“http://www.w3.org/2001/XMLSchema”); File schemaFile = new File(“path/to/xsd”); Schema […]

如何使用XStream将对象列表转换为XML文档

如何使用XStream将对象列表转换为XML文档? 以及如何将其反序列化? 这是我的xml Guilherme 10 address,address,address,address, Guilherme 10 address,address,address,address, Person bean包含3个字段如何使用自定义转换器将其转换回Bean List?

List根元素的XStream别名

我希望能够根据列表中包含的对象类型对根列表元素进行别名。 例如,这是我目前的输出: Gold Silver Bronze 这就是我想要的样子: Gold Silver Bronze 我可以在全球范围内这样说,所有列表都应该别名为硬币,但我有很多不同的列表,这是行不通的。 关于如何做到这一点的任何想法? 似乎应该很简单,但当然,事实并非如此。 编辑:我应该指定,我正在尝试将对象序列化为xml。 我使用Spring 3 MVC作为我的Web框架。

XStream:具有属性和文本节点的节点?

我想使用XStream将对象序列化为此表单的XML。 text 节点( 文本 )的值是序列化对象上的字段,以及att属性。 如果没有为这个对象编写转换器,这可能吗? 谢谢!

IllegalAnnotationsException:Class有两个同名的属性

我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS Web服务。 由于我是初学者,因此我遵循Java级第一种方法,即我首先创建Java类,然后生成WSDL文件。 当我尝试创建wsdl文件时,我得到一个例外: java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationsException的1个计数Class有两个同名的属性“planId” 我的class级在这里看起来像这样: public class MemberDetails{ @XMLElement(required=true) private String planId; //public getters and setters for the planId; } 我不知道为什么会发生这种exception。 通过谷歌搜索,我尝试了一些替代方案来解决它,但没有一个为我工作:( 注意: 这是我在整个工作区中使用的唯一注释。 我不确定这是否依赖于其他一些注释。 但我尝试了一些诸如@XMLElement(name =“Plan”,required = true),@ XMLType等,但每次我都得到这个例外。 这个例外是在wsgen期间发生的。 ( java.lang.reflect.InvocationTargetException ) 编辑 基本上,当我们从java服务方法创建一个wsdl并在SOAP UI中打开该WSDL时,我们在每个元素的顶部都得到 。 我想删除这个选项标签标签,因此我尝试使用@XMLElement(required = true)方法,这样当我在SOAP UI中打开WSDL时, 不会似乎是强迫因素。 根据我的概念,@ XMLElement(required = true)将minOccurs设置为1,即大于零,因此当我在SOAP UI中打开它时,可选的注释将从WSDL中删除。 但不幸的是它不起作用因此我的概念不正确。 生成WSDL之后,我可以看到minOccurs仍为0。 请解释在SOAP […]

使用Java将xml转换为json

有没有办法将xml文件转换为json? XML可以是任何结构,因此没有用于实例化的POJO类。 我需要将xml转换为json或转换为没有根节点的Map。 例如: Emil Example Example Blvd. Example Ave. 预期的JSON { “firstName”: “Emil”, “lastName”: “Example”, “addresses”: [ { “street” : “Example Blvd.” }, { “street” : “Example Ave.” } ] }

JAXB注释

我需要一些JAXB Annotations的帮助,我找不到好的doc帮助我解决这个问题。 我有一个我想编组成XML的类。 我的class级看起来像这样: @XmlRootElement(name=”car”) @XmlAccessorType(XmlAccessType.FIELD) @XmlType(propOrder = { “vid”, “make”, “model”, “recalls”, “engSpec” }) public class Car { @XmlElement(name=”vid”, required=true) private String vid; @XmlElement(name=”make”, required=true) private String make; @XmlElement(name=”model”, required=true) private String model; @XmlElement(name=”recalls”, required=true) private ArrayList recalls; @XmlElement(name=”engSpec”, required=true) private EngSpec engSpec; … 召回课看起来像这样: @XmlRootElement(name = “recall”) @XmlAccessorType(XmlAccessType.FIELD) @XmlType(propOrder = { “type”, “date” […]

Java属性:.properties文件vs xml?

在涉及属性时,我是新手,我读到XML是存储这些的首选方式。 然而,我注意到,编写一个常规.properties文件的风格 foo=bar fu=baz 也有效。 这意味着更少的打字(也许更容易阅读和更高效)。 那么使用XML文件有什么好处?