如有任何线索将不胜感激。谢谢,约翰
JAXBContext jc = JAXBContext.newInstance(Xmeml.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Xmeml xmeml = (Xmeml) unmarshaller.unmarshal(inFile);
@XmlRootElement(name = "sequence")
public class Sequence {
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected BigInteger duration;
@XmlElement(required = true)
protected Rate rate;
@XmlElement(required = true)
protected Timecode timecode;
@XmlElement(required = true)
protected BigInteger in;
@XmlElement(required = true)
protected BigInteger out;
@XmlElement(required = true)
protected Media media;
@XmlRootElement(name = "clipitem")
public class Clipitem {
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected BigInteger duration;
@XmlElement(required = true)
protected Rate rate;
protected boolean enabled;
@XmlElement(required = true)
protected BigInteger in;
@XmlElement(required = true)
protected BigInteger out;
@XmlElement(required = true)
protected BigInteger start;
@XmlElement(required = true)
protected BigInteger end;
@XmlElement(required = true)
protected String masterclipid;
protected boolean ismasterclip;
@XmlElement(required = true)
protected Labels labels;
@XmlElement(required = true)
protected Comments comments;
@XmlElement(required = true)
protected Sequence sequence;
XML是巨大的,但这里有一个片段,序列中的媒体是空的,而它不应该是空的。
<track>
<clipitem id="Nested Sequence">
<name>Nested Sequence</name>
<duration>815</duration>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<in>0</in>
<out>815</out>
<start>815</start>
<end>1630</end>
<sequence id="Nested Sequence1">
<name>Nested Sequence</name>
<duration>815</duration>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<timecode>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<string>01:00:00:00</string>
<frame>90000</frame>
<source>source</source>
<displayformat>NDF</displayformat>
</timecode>
<in>-1</in>
<out>-1</out>
<media>
<video>
<format>
<samplecharacteristics>
<width>1920</width>
<height>1080</height>
<anamorphic>FALSE</anamorphic>
<pixelaspectratio>NTSC-601</pixelaspectratio>
<fielddominance>lower</fielddominance>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
您的dom对象与XML不匹配。例如,序列的第一个元素是uuid,而bean的最后一个元素是uuid,“updateBehavior”将完全丢失。其他豆子也有类似的问题。附加的xml文档根本无法根据jaxb模型进行验证,这可能是无法正确读取它的原因。
从模型中获取架构:
JAXBContext con = JAXBContext.newInstance(Xmeml.class);
File dir = new File("D:\\Temp\\schema");
con.generateSchema(new MySchemaOutputResolver(dir));
class MySchemaOutputResolver extends SchemaOutputResolver {
protected File baseDir;
public MySchemaOutputResolver(File dir)
{
super();
baseDir = dir;
}
@Override
public Result createOutput( String namespaceUri, String suggestedFileName ) throws IOException {
return new StreamResult(new File(baseDir,suggestedFileName));
}
}
在反编组时根据架构进行验证:
JAXBContext con = JAXBContext.newInstance(Xmeml.class);
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("D:\\Temp\\schema\\schema1.xsd"));
Unmarshaller umar = con.createUnmarshaller();
umar.setSchema(schema);
Xmeml mem = (Xmeml)umar.unmarshal(new File("D:\\Temp\\testcase\\Surround Test.xml"));
在不使用getter和setter的情况下,JAXB可以正确地解组所提供的JSON。 null和“null”是完全不同的东西,但是我不想在POJO中包含这个字段,并且我必须忽略这些null值。 编辑
问题内容: 我有两节课: 我想将类B编组为xml元素,并添加类A的属性fieldOfClassB和fieldOfClassA,但在编组期间会显示以下警告消息: 请注意,这两个类来自两个不同的程序包,我无法更改此对象模型。 先感谢您! 编辑: 我正在使用外部绑定文件。 问题答案: 从您发布的日志消息中,我可以看到您正在使用MOXy的外部映射文档(请参阅http://blog.bdoughan.com
现在我有了这堂课: 并且我有: 如果运行此代码,将得到: 我该怎么解决这个? 我搜索了SO和Google,这些答案都不起作用: 使用Eclipselink.media-type值设置封送器属性时的PropertyException:Application/JSON JAXB javax.xml.bind.PropertyException
我有以下类型,在架构中定义为: 生成的JAXB类: 使用此类型的一些JAXB类: 当我将此XML解组为JAXB对象时: 这份名单从何而来?info_analytics映射到没有任何集合/数组的类型。 如果我得到这个JSON,umarshall将其转换为JAXB对象,marshall转换为XML,它将生成: 为什么元素作为属性重复? XML:
抱歉长帖,提前感谢! 在我的JAXB中(代码如下),我有一组值集,其中内部集被包装成一个容器类。所以,我有一组值容器,其中一个值是一个泛型类。问题:除非选择的泛型类是硬编码的,否则值不会得到解析。 关于XML的说明: >
我在我的Jersey(2.7)项目中使用Moxy,基本上只是为了在服务发出响应时将我的对象整理为JSON。它工作得很好,但现在我也在使用ContainerResponseFilter对发出的每个响应进行一些更改,我不确定如何将请求体的内容解组到一个对象中,这是我需要的。 但我不确定是否有可能将它自动转换为一个对象。我需要的信息比较简单,所以我想我可以用另一种方式解析JSON,但我很好奇。 我试过找