org.exolab.castor.builder.binding
Class ExtendedBinding

java.lang.Object
  extended by org.exolab.castor.builder.binding.Binding
      extended by org.exolab.castor.builder.binding.ExtendedBinding
All Implemented Interfaces:
java.io.Serializable

public class ExtendedBinding
extends Binding

This class adds the necessary logic to a Binding Object to bring the gap between the XML Schema Object Model and the Binding File. It queries the Binding Object to retrieve the the associated ComponentBinding.

An "XPath like" representation of an XML Schema structure is built to lookup the component bindings in their storage structure. The algorithm used to build the "XPath like" representation is summarized in the following example: Given the XML schema declaration:

        <xsd:element name="foo">
            <xsd:complextype>
                <xsd:attribute name="bar" type="xsd:string"/>
            </xsd:complextype>
        </xsd:element>>
    
The path to identify the attribute 'bar' will be:
        /foo/@bar
    
The keywords complexType and group are used to identify respectively an XML Schema ComplexType and a Model Group definition.

Version:
$Revision: 1.4 $ $Date: 2005/03/05 13:41:43 $
Author:
Arnaud Blandin
See Also:
Serialized Form

Field Summary
protected static java.lang.String ATTRIBUTE_PREFIX
           
protected static java.lang.String COMPLEXTYPE_ID
           
protected static java.lang.String GROUP_ID
           
protected static java.lang.String PATH_SEPARATOR
          Constants needed to create the XPath
 
Constructor Summary
ExtendedBinding()
          Default constructor.
 
Method Summary
 ComponentBindingType getComponentBindingType(Annotated annotated)
          Returns the ComponentBinding that corresponds to the given Annotated XML Schema structure An Schema location will be built for the given Annotated XML schema structure.
static java.lang.String getSchemaLocation(Structure structure)
          Returns a string representation of an XML Schema Component.
 
Methods inherited from class org.exolab.castor.builder.binding.Binding
addAttributeBinding, addAttributeBinding, addComplexTypeBinding, addComplexTypeBinding, addElementBinding, addElementBinding, addGroupBinding, addGroupBinding, addInclude, addInclude, addPackage, addPackage, enumerateAttributeBinding, enumerateComplexTypeBinding, enumerateElementBinding, enumerateGroupBinding, enumerateInclude, enumeratePackage, getAttributeBinding, getAttributeBinding, getAttributeBindingCount, getComplexTypeBinding, getComplexTypeBinding, getComplexTypeBindingCount, getDefaultBindingType, getElementBinding, getElementBinding, getElementBindingCount, getGroupBinding, getGroupBinding, getGroupBindingCount, getInclude, getInclude, getIncludeCount, getNamingXML, getPackage, getPackage, getPackageCount, isValid, marshal, marshal, removeAllAttributeBinding, removeAllComplexTypeBinding, removeAllElementBinding, removeAllGroupBinding, removeAllInclude, removeAllPackage, removeAttributeBinding, removeComplexTypeBinding, removeElementBinding, removeGroupBinding, removeInclude, removePackage, setAttributeBinding, setAttributeBinding, setComplexTypeBinding, setComplexTypeBinding, setDefaultBindingType, setElementBinding, setElementBinding, setGroupBinding, setGroupBinding, setInclude, setInclude, setNamingXML, setPackage, setPackage, unmarshalBinding, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PATH_SEPARATOR

protected static final java.lang.String PATH_SEPARATOR
Constants needed to create the XPath

See Also:
Constant Field Values

ATTRIBUTE_PREFIX

protected static final java.lang.String ATTRIBUTE_PREFIX
See Also:
Constant Field Values

COMPLEXTYPE_ID

protected static final java.lang.String COMPLEXTYPE_ID
See Also:
Constant Field Values

GROUP_ID

protected static final java.lang.String GROUP_ID
See Also:
Constant Field Values
Constructor Detail

ExtendedBinding

public ExtendedBinding()
Default constructor.

See Also:
Object.Object()
Method Detail

getComponentBindingType

public ComponentBindingType getComponentBindingType(Annotated annotated)

Returns the ComponentBinding that corresponds to the given Annotated XML Schema structure An Schema location will be built for the given Annotated XML schema structure. .

Parameters:
annotated - the XML Schema annotated structure for which to query the Binding object for a ComponentBinding.
Returns:
the ComponentBinding that corresponds to the given Annotated XML Schema structure.

getSchemaLocation

public static java.lang.String getSchemaLocation(Structure structure)

Returns a string representation of an XML Schema Component. This representation is directly adapted from XPath and will used as a key to store the component bindings.

The location of a structure is composed of two parts:

  1. the location of the parent structure
  2. the local location of the structure itself

The local location is defined by:

Note that only top-level groups and complexTypes are named and thus will

Parameters:
structure - the structure for which to return a representation.


Intalio Inc. (C) 1999-2004. All rights reserved http://www.intalio.com