public class ComplexSupportXSAnyTypeBinding extends XSAnyTypeBinding
XSAnyTypeBinding
that adds support for ComplexAttribute
and
related behaviours.
This binding that searches the substitution group of XSD element children to find properties of a complex attribute. This is necessary to support the GML property type pattern, in which a property (a property-type type) contains a property that is a member of a substitution group. gml:AttributeType is the canonical example of the property type pattern.
gml:FeaturePropertyType is an example of the property type pattern that has an explicit
binding FeaturePropertyTypeBinding
, but because an application schema may define more
property types whose names are not known at compile time, a binding like FeaturePropertyTypeBinding
cannot be written. This class exists to handle these
application-schema-defined property types.
This class supports the encoding of XML complexType with simpleContent through extraction of a simpleContent property, as well as encoding XML attributes stored in the UserData map.
Constructor and Description |
---|
ComplexSupportXSAnyTypeBinding(XSDIdRegistry idRegistry) |
Modifier and Type | Method and Description |
---|---|
Element |
encode(Object object,
Document document,
Element value)
Subclasses should override this method if need be, the default implementation returns
value.
|
List<Object[]> |
getProperties(Object object,
XSDElementDeclaration element)
Subclasses should override this method if need be, the default implementation returns
null . |
Object |
getProperty(Object object,
QName name)
Subclasses should override this method if need be, the default implementation returns
null . |
getExecutionMode, getTarget, getType, initialize, parse
initializeChildContext
public ComplexSupportXSAnyTypeBinding(XSDIdRegistry idRegistry)
public Object getProperty(Object object, QName name) throws Exception
AbstractComplexBinding
null
.getProperty
in interface ComplexBinding
getProperty
in class AbstractComplexBinding
object
- The object being encoded.name
- The name of the property to obtain.null
.Exception
AbstractComplexBinding.getProperty(java.lang.Object, javax.xml.namespace.QName)
public List<Object[]> getProperties(Object object, XSDElementDeclaration element) throws Exception
AbstractComplexBinding
null
.
Note that this method only needs to be implemented for schema types which are open-ended in which the contents are not specifically specified by the schema.
getProperties
in interface ComplexBinding
getProperties
in class AbstractComplexBinding
object
- the object being encoded.Exception
AbstractComplexBinding.getProperties(java.lang.Object,
org.eclipse.xsd.XSDElementDeclaration)
public Element encode(Object object, Document document, Element value) throws Exception
AbstractComplexBinding
encode
in interface ComplexBinding
encode
in class AbstractComplexBinding
object
- The object being encoded.document
- The document containing the encoded element.value
- The object as encoded by the parent binding.null
Exception
AbstractComplexBinding.encode(java.lang.Object, org.w3c.dom.Document,
org.w3c.dom.Element)
Copyright © 1996–2023 Geotools. All rights reserved.