org.apache.ws.jaxme.xs.xml

Interface XsTComplexType

public interface XsTComplexType extends XsTAnnotated, XsGTypeDefParticle, XsGAttrDecls, XsRedefinable

Interface of a complex type, to be shared by {@link org.apache.ws.jaxme.xs.xml.XsTLocalComplexType} and {@link 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

Method Summary
XsEComplexContentcreateComplexContent()
XsESimpleContentcreateSimpleContent()
XsEComplexContentgetComplexContent()
XsNCNamegetName()
XsESimpleContentgetSimpleContent()
booleanisAbstract()
booleanisMixed()
voidsetAbstract(boolean pAbstract)
voidsetMixed(boolean pMixed)
voidsetName(XsNCName pName)

Method Detail

createComplexContent

public XsEComplexContent createComplexContent()

createSimpleContent

public XsESimpleContent createSimpleContent()

getComplexContent

public XsEComplexContent getComplexContent()

getName

public XsNCName getName()

getSimpleContent

public XsESimpleContent getSimpleContent()

isAbstract

public boolean isAbstract()

isMixed

public boolean isMixed()

setAbstract

public void setAbstract(boolean pAbstract)

setMixed

public void setMixed(boolean pMixed)

setName

public void setName(XsNCName pName)