I am receiving a stack overflow when trying to generate classes for the
schema below.  The problem occurs when processing the recursive RecordType
element. This schema was generated by a program which converted a DTD. Is
there any way to deal with recursive schemas in Castor.

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
  <xs:element name="Package">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="TypeDeclarations" minOccurs="0" />
      </xs:sequence>
      <xs:attribute name="xmlns:xpdl" type="xs:string"
fixed="http://www.wfmc.org/standards/docs/xpdl"; />
      <xs:attribute name="Id" type="xs:NMTOKEN" use="required" />
      <xs:attribute name="Name" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="TypeDeclarations">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="TypeDeclaration" minOccurs="0"
maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="TypeDeclaration">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:element ref="RecordType" />
          <xs:element ref="BasicType" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="Id" type="xs:NMTOKEN" use="required" />
      <xs:attribute name="Name" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="BasicType">
    <xs:complexType>
      <xs:attribute name="Type" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="STRING" />
            <xs:enumeration value="FLOAT" />
            <xs:enumeration value="INTEGER" />
            <xs:enumeration value="REFERENCE" />
            <xs:enumeration value="DATETIME" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="RecordType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Member" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Member">
    <xs:complexType>
      <xs:choice>
        <!-- Comment out this line to fix the recursion problem
--><xs:element ref="RecordType" />
        <xs:element ref="BasicType" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to