<xsd:complexType name="tableAttribute"> <xsd:sequence minOccurs="1" maxOccurs="unbounded"> <xsd:element name="numberDimensions"> <xsd:element name="lengthDimensions"> </xsd:sequence> </xsd:complexType> <xsd:complexType name="variableType"> <xsd:sequence> <xsd:element name="name" /> <xsd:element name="type" type="variableType" /> <xsd:element name="shared" minOccurs="0" maxOccurs="1" /> <xsd:element name="dynamic" minOccurs="0" maxOccurs="1" /> <xsd:element name="isTable" type="tableAttribute" minOccurs="0" maxOccurs="1" /> </xsd:choice> </xsd:sequence> </xsd:complexType>
<xsd:complexType name="tableAttribute"> <xsd:sequence> <xsd:element name="numberDimensions" /> <xsd:sequence name="dimension" minOccurs="1" maxOccurs="unbounded"> <xsd:element name="lowerBound" /> <xsd:element name="upperBound" /> </xsd:sequence> </xsd:sequence> </xsd:complexType> <xsd:complexType name="variableType"> <xsd:sequence> <xsd:element name="name" /> <xsd:element name="type" type="variableType" /> <xsd:choice minOccurs="0" maxOccurs="1" > <xsd:element name="shared" /> <xsd:element name="dynamic" /> </xsd:choice> <xsd:element name="table" type="tableAttribute" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="1" > <xsd:element name="static" /> <xsd:element name="dynamic" /> </xsd:choice> <xsd:element name="shared" minOccurs="0"= maxOccurs="1" /> <xsd:element name="common" minOccurs="0"= maxOccurs="1" />