Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] @XmlValue and @XmlJoinNode usage

Hi again,

There https://bugs.eclipse.org/bugs/show_bug.cgi?id=367803

p.s.: This is my first bug report, if there's anything else I need to
do, do tell me...

El mar, 03-01-2012 a las 16:42 -0500, Blaise Doughan escribió:
> Hi Jorge,
> 
> I have been able to re-create the exception that you are seeing.
> Would you mind entering a bug for this issue (against the MOXy
> component)?
>       * https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EclipseLink
> -Blaise
> 
> On 03/01/2012 12:52 PM, Jorge Arrieta wrote: 
> > Hey,
> > 
> > I'm trying to enable xml validation using moxy, which works alright.
> > Except that displaying a bunch of inter-referenced objects on the
> > same document means using the @XmlKey and @XmlJoinNode annotations
> > (since ids can and definitely will collide, so xs:id is out of
> > question).
> > And came across this: 
> > Exception Description: The property or field key must be an attribute because another field or property is annotated with XmlValue.
> >  - with linked exception:
> > [Exception [EclipseLink-50010] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.JAXBException
> > Exception Description: The property or field key must be an attribute because another field or property is annotated with XmlValue.]
> > 	at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:832)
> > 	at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:143)
> > 	at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:142)
> > 	at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:129)
> > 	at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:93)
> > 	at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:83)
> > 	...
> > Caused by: Exception [EclipseLink-50010] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.JAXBException
> > Exception Description: The property or field key must be an attribute because another field or property is annotated with XmlValue.
> > 	at org.eclipse.persistence.exceptions.JAXBException.propertyOrFieldShouldBeAnAttribute(JAXBException.java:233)
> > 	at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.finalizeProperties(AnnotationsProcessor.java:763)
> > 	at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processClassesAndProperties(AnnotationsProcessor.java:237)
> > 	at org.eclipse.persistence.jaxb.compiler.Generator.<init>(Generator.java:147)
> > 	at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:829)
> > 	... 17 more
> > 
> > but, it IS an attribute:
> > public class VOEntryType { 
> >     @XmlJoinNode(referencedXmlPath = "@id", xmlPath = "@id")
> >     public Opcion key; 
> > 
> >     @XmlValue
> >     public Integer value;
> > }
> > 
> > (Yep, entrytype, because this is being used in an Adapter from map
> > to list)
> > 
> > Now, trying annotating it like this (which looks weird):
> > 
> >    @XmlAttribute
> >    @XmlJoinNode(referencedXmlPath = "@id", xmlPath = "@id")
> >     public Opcion key; 
> > 
> > Gets me a different exception (which without looking much into the
> > code I guess is because there's a two/n-pass process going on, in
> > which the xmlpath kind of annotations come last):
> > 
> > java.lang.NullPointerException
> > 	at org.eclipse.persistence.jaxb.compiler.SchemaGenerator.buildSchemaComponentsForXPath(SchemaGenerator.java:1018)
> > 	at org.eclipse.persistence.jaxb.compiler.SchemaGenerator.addXmlJoinNodesToSchema(SchemaGenerator.java:2036)
> > 	at org.eclipse.persistence.jaxb.compiler.SchemaGenerator.addToSchemaType(SchemaGenerator.java:434)
> > 	at org.eclipse.persistence.jaxb.compiler.SchemaGenerator.populateSchemaTypes(SchemaGenerator.java:549)
> > 	at org.eclipse.persistence.jaxb.compiler.SchemaGenerator.generateSchema(SchemaGenerator.java:146)
> > 	at org.eclipse.persistence.jaxb.compiler.SchemaGenerator.generateSchema(SchemaGenerator.java:132)
> > 	at org.eclipse.persistence.jaxb.compiler.Generator.generateSchemaFiles(Generator.java:209)
> > 	at org.eclipse.persistence.jaxb.JAXBContext.generateSchema(JAXBContext.java:242)
> > 	at org.eclipse.persistence.jaxb.JAXBContext.generateSchema(JAXBContext.java:215)
> > 	...
> > 
> > So, the question is, is using an @XmlValue in conjunction with a
> > @XmlJoinNode annotation possible / are there any workarounds?
> > 
> > p.s.: eclipselink-2.3.2.v20111125-r10461
> > 
> > 
> > 
> > _______________________________________________
> > eclipselink-users mailing list
> > eclipselink-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/eclipselink-users




Back to the top