}
}
protected void initBindingMetadata()
{
final XmlListBinding annotation = property().definition().getAnnotation( XmlListBinding.class );
final XmlNamespaceResolver xmlNamespaceResolver = ( (XmlResource) property().element().resource() ).getXmlNamespaceResolver();
final SortedSet<ElementType> possible = this.possibleTypesService.types();
this.modelElementTypes = possible.toArray( new ElementType[ possible.size() ] );
if( annotation == null )
{
this.path = new XmlPath( property().name(), xmlNamespaceResolver );
this.xmlElementNames = new QName[ this.modelElementTypes.length ];
for( int i = 0; i < this.modelElementTypes.length; i++ )
{
this.xmlElementNames[ i ] = createDefaultElementName( this.modelElementTypes[ i ], xmlNamespaceResolver );
}
}
else
{
if( annotation.path().length() > 0 )
{
this.path = new XmlPath( annotation.path(), xmlNamespaceResolver );
}
final XmlListBinding.Mapping[] mappings = annotation.mappings();
this.xmlElementNames = new QName[ this.modelElementTypes.length ];
for( int i = 0; i < this.modelElementTypes.length; i++ )
{
final ElementType type = this.modelElementTypes[ i ];