org.apache.ws.jaxme.xs.xml.impl

Class XsTComplexTypeImpl

Implemented Interfaces:
XsGAttrDecls, XsGTypeDefParticle, XsObject, XsRedefinable, XsTAnnotated, XsTComplexType, XsTOpenAttrs
Known Direct Subclasses:
XsTLocalComplexTypeImpl, XsTTopLevelComplexTypeImpl

public class XsTComplexTypeImpl
extends XsTAnnotatedImpl
implements XsTComplexType

Base implementation of a complex type, to be shared by XsTLocalComplexType and XsTComplexType. Follows this specification:
  <xs:complexType name="complexType" abstract="true">
    <xs:complexContent>
      <xs:extension base="xs:annotated">
        <xs:group ref="xs:complexTypeModel"/>
        <xs:attribute name="name" type="xs:NCName">
          <xs:annotation>
            <xs:documentation>
              Will be restricted to required or forbidden
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mixed" type="xs:boolean" use="optional" default="false">
          <xs:annotation>
            <xs:documentation>
              Not allowed if simpleContent child is chosen.
              May be overriden by setting on complexContent child.
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
        <xs:attribute name="final" type="xs:derivationSet"/>
        <xs:attribute name="block" type="xs:derivationSet"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:group name="complexTypeModel">
    <xs:choice>
      <xs:element ref="xs:simpleContent"/>
      <xs:element ref="xs:complexContent"/>
      <xs:sequence>
        <xs:annotation>
          <xs:documentation>
            This branch is short for &lt;complexContent&gt;
            &lt;restriction base="xs:anyType"&gt;
            ...
            &lt;/restriction&gt;
            &lt;/complexContent&gt;
          </xs:documentation>
        </xs:annotation>
        <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
        <xs:group ref="xs:attrDecls"/>
      </xs:sequence>
    </xs:choice>
  </xs:group>

  <xs:group name="typeDefParticle">
    <xs:annotation>
      <xs:documentation>
        'complexType' uses this
      </xs:documentation>
    </xs:annotation>
    <xs:choice>
      <xs:element name="group" type="xs:groupRef"/>
      <xs:element ref="xs:all"/>
      <xs:element ref="xs:choice"/>
      <xs:element ref="xs:sequence"/>
    </xs:choice>
  </xs:group>
 
Author:
Jochen Wiedmann

Constructor Summary

XsTComplexTypeImpl(XsObject pParent)

Method Summary

XsTAll
createAll()
XsTWildcard
createAnyAttribute()
XsTAttribute
createAttribute()
XsTAttributeGroupRef
createAttributeGroup()
XsEChoice
createChoice()
XsEComplexContent
createComplexContent()
XsTGroupRef
createGroup()
XsESequence
createSequence()
XsESimpleContent
createSimpleContent()
Object[]
getAllAttributes()
XsTWildcard
getAnyAttribute()
XsTAttributeGroupRef[]
getAttributeGroups()
XsTAttribute[]
getAttributes()
XsEComplexContent
getComplexContent()
XsDerivationSet
getFinal()
XsNCName
getName()
XsESimpleContent
getSimpleContent()
XsTTypeDefParticle
getTypeDefParticle()
boolean
isAbstract()
boolean
isMixed()
void
setAbstract(boolean pAbstract)
void
setFinal(XsDerivationSet pFinal)
void
setMixed(boolean pMixed)
void
setName(XsNCName pName)

Methods inherited from class org.apache.ws.jaxme.xs.xml.impl.XsTAnnotatedImpl

createAnnotation, getAnnotation, getId, setId

Methods inherited from class org.apache.ws.jaxme.xs.xml.impl.XsTOpenAttrsImpl

getOpenAttributes, setAttribute

Methods inherited from class org.apache.ws.jaxme.xs.xml.impl.XsObjectImpl

asXsQName, asXsQName, getContext, getLocator, getNamespaceSupport, getObjectFactory, getParentObject, getXsESchema, isTopLevelObject, isValidated, validate

Constructor Details

XsTComplexTypeImpl

protected XsTComplexTypeImpl(XsObject pParent)

Method Details

createAll

public XsTAll createAll()
Specified by:
createAll in interface XsGTypeDefParticle

createAnyAttribute

public XsTWildcard createAnyAttribute()
Specified by:
createAnyAttribute in interface XsGAttrDecls

createAttribute

public XsTAttribute createAttribute()
Specified by:
createAttribute in interface XsGAttrDecls

createAttributeGroup

public XsTAttributeGroupRef createAttributeGroup()
Specified by:
createAttributeGroup in interface XsGAttrDecls

createChoice

public XsEChoice createChoice()
Specified by:
createChoice in interface XsGTypeDefParticle

createComplexContent

public XsEComplexContent createComplexContent()
Specified by:
createComplexContent in interface XsTComplexType

createGroup

public XsTGroupRef createGroup()
Specified by:
createGroup in interface XsGTypeDefParticle

createSequence

public XsESequence createSequence()
Specified by:
createSequence in interface XsGTypeDefParticle

createSimpleContent

public XsESimpleContent createSimpleContent()
Specified by:
createSimpleContent in interface XsTComplexType

getAllAttributes

public Object[] getAllAttributes()
Specified by:
getAllAttributes in interface XsGAttrDecls

getAnyAttribute

public XsTWildcard getAnyAttribute()
Specified by:
getAnyAttribute in interface XsGAttrDecls

getAttributeGroups

public XsTAttributeGroupRef[] getAttributeGroups()
Specified by:
getAttributeGroups in interface XsGAttrDecls

getAttributes

public XsTAttribute[] getAttributes()
Specified by:
getAttributes in interface XsGAttrDecls

getComplexContent

public XsEComplexContent getComplexContent()
Specified by:
getComplexContent in interface XsTComplexType

getFinal

public XsDerivationSet getFinal()

getName

public XsNCName getName()
Specified by:
getName in interface XsTComplexType

getSimpleContent

public XsESimpleContent getSimpleContent()
Specified by:
getSimpleContent in interface XsTComplexType

getTypeDefParticle

public XsTTypeDefParticle getTypeDefParticle()
Specified by:
getTypeDefParticle in interface XsGTypeDefParticle

isAbstract

public boolean isAbstract()
Specified by:
isAbstract in interface XsTComplexType

isMixed

public boolean isMixed()
Specified by:
isMixed in interface XsTComplexType

setAbstract

public void setAbstract(boolean pAbstract)
Specified by:
setAbstract in interface XsTComplexType

setFinal

public void setFinal(XsDerivationSet pFinal)

setMixed

public void setMixed(boolean pMixed)
Specified by:
setMixed in interface XsTComplexType

setName

public void setName(XsNCName pName)
Specified by:
setName in interface XsTComplexType