estoy tratando de reunir un archivo utilizando el Visio XML Schema, que consta de 3 archivos de esquema y produce tres paquetes cuando se genera fuente de Java con XJC:¿JAXB está confundido acerca de los elementos raíz?
- com.microsoft.schemas.visio._2003.core
- com.microsoft.schemas.visio._2006.extension
- com.microsoft.schemas.office.visio._2010.extension
El elemento raíz es VisioDocument
, y todas las clases estoy usando están en el 2003
paquete.
Aquí es mi enfoque que permita reunir mi archivo XML:
VisioDocumentType visioDoc = new VisioDocumentType();
... manipulated here ...
JAXBContext jc = JAXBContext.newInstance("com.microsoft.schemas.visio._2003.core");
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(new JAXBElement<VisioDocumentType>(new QName("uri","local"), VisioDocumentType.class, visioDoc), bw);
Cuando se ejecuta, recibo este error:
javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.internal.SAXException2: unable to marshal type "com.microsoft.schemas.visio._2003.core.PagePropsType" as an element because it is missing an @XmlRootElement annotation]
estoy usando PagePropsType
, pero no es un elemento raíz. ¿Por qué JAXB piensa que es?
¿Cómo es la propiedad que está configurando la instancia de 'com.microsoft.schemas.visio._2003.core.PagePropsType' en anotado ? –
'@XmlAccessorType (XmlAccessType.CAMPO) @XmlType (name = "PageProps_Type", propOrder = { "pageWidthOrPageHeightOrShdwOffsetX" }) '¿Es eso lo que está buscando? – Chris
Quise decir la propiedad en la que está configurando la instancia y no el 'PagePropsType' en sí. –