xsd文件包含以下内容:
<xsd:attribute name="month" type="xsd:gMonth" use="optional"/>
我尝试编组一个有效的XML:
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setSchema(schema);
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE);
marshaller.marshal(cv, outWriter);
StringBuffer sb = ((StringWriter) outWriter).getBuffer();
xml = sb.toString();
生成的String(xml)包含:month="--03--"
而不是month="--03"
。
我对jaxb的pom.xml依赖是:
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.8-b01</version>
<scope>provided</scope>
</dependency>
这与此问题有关吗? https://java.net/jira/browse/JAXB-643它本应在2.2.8中得到解决。我怎样才能获得适当的gmonth值?
答案 0 :(得分:0)
我建议您将FINE日志记录设置为jaxb-impl并尝试设置
jaxb.ri.useOldGmonthMapping
environement变量。 您应该让日志行描述here,因为对于特定的运行时部署,您实际上可能正在使用2.2.8-b01 jaxb版本。