<!-- GCC_XML 0.7-cvs DTD  Version 0.3  -->
<!-- Written by Paul Ross 2003-07-13 -->
<!-- Updated by Martin Piskernig 2004-11-14
     * Some bugfixes (MP; 2004-11-18):
	- added OffsetType attribute list
	- Base cannot be child element of GCC_XML
	- fixed Field::mutable to be of boolean type
    	- added "attributes" to destructor attlist
-->

<!ATTLIST Argument attributes CDATA #IMPLIED>
<!ATTLIST Argument default CDATA #IMPLIED>
<!ATTLIST Argument name CDATA #IMPLIED>
<!-- type can not be an IDREF as it might be "_4c" etc. which will be 
an invalid id -->
<!ATTLIST Argument type CDATA #REQUIRED>

<!ATTLIST ArrayType align CDATA #IMPLIED>
<!ATTLIST ArrayType attributes CDATA #IMPLIED>
<!ATTLIST ArrayType id ID #REQUIRED>
<!ATTLIST ArrayType max CDATA #REQUIRED>
<!ATTLIST ArrayType min CDATA #FIXED "0">
<!ATTLIST ArrayType size CDATA #IMPLIED>
<!ATTLIST ArrayType type IDREF #REQUIRED>

<!ATTLIST Base access (public | private | protected) "public">
<!ATTLIST Base type IDREF #REQUIRED>
<!ATTLIST Base virtual (0 | 1) "0">

<!ATTLIST Class abstract (0 | 1) "0">
<!ATTLIST Class access (public | private | protected) "public">
<!ATTLIST Class align CDATA #IMPLIED>
<!ATTLIST Class artificial CDATA #IMPLIED>
<!ATTLIST Class attributes CDATA #IMPLIED>
<!ATTLIST Class bases CDATA #IMPLIED>
<!ATTLIST Class context IDREF #REQUIRED>
<!ATTLIST Class file CDATA #REQUIRED>
<!ATTLIST Class id ID #REQUIRED>
<!ATTLIST Class incomplete (0 | 1) "0">
<!ATTLIST Class line CDATA #REQUIRED>
<!ATTLIST Class location CDATA #REQUIRED>
<!ATTLIST Class mangled CDATA #REQUIRED>
<!ATTLIST Class members CDATA #IMPLIED>
<!ATTLIST Class name CDATA #REQUIRED>
<!ATTLIST Class size CDATA #IMPLIED>

<!ATTLIST Constructor access (public | private | protected) "public">
<!ATTLIST Constructor artificial CDATA #IMPLIED>
<!ATTLIST Constructor attributes CDATA #IMPLIED>
<!ATTLIST Constructor context CDATA #REQUIRED>
<!ATTLIST Constructor endline CDATA #IMPLIED>
<!ATTLIST Constructor extern (0 | 1) "0">
<!ATTLIST Constructor file CDATA #REQUIRED>
<!ATTLIST Constructor id ID #REQUIRED>
<!ATTLIST Constructor line CDATA #REQUIRED>
<!ATTLIST Constructor location CDATA #REQUIRED>
<!ATTLIST Constructor mangled CDATA #REQUIRED>
<!ATTLIST Constructor name CDATA #REQUIRED>
<!ATTLIST Constructor throw CDATA #IMPLIED>

<!ATTLIST Converter access (public | private | protected) "public">
<!ATTLIST Converter attributes CDATA #IMPLIED>
<!ATTLIST Converter const (0 | 1) "0">
<!ATTLIST Converter context IDREF #REQUIRED>
<!ATTLIST Converter endline CDATA #IMPLIED>
<!ATTLIST Converter extern (0 | 1) "0">
<!ATTLIST Converter file CDATA #REQUIRED>
<!ATTLIST Converter id ID #REQUIRED>
<!ATTLIST Converter line CDATA #REQUIRED>
<!ATTLIST Converter location CDATA #REQUIRED>
<!ATTLIST Converter mangled CDATA #REQUIRED>
<!ATTLIST Converter name CDATA #REQUIRED>
<!ATTLIST Converter returns IDREF #REQUIRED>
<!ATTLIST Converter throw CDATA #IMPLIED>
<!ATTLIST Converter virtual (0 | 1) "0">

<!ATTLIST CvQualifiedType align CDATA #IMPLIED>
<!ATTLIST CvQualifiedType attributes CDATA #IMPLIED>
<!ATTLIST CvQualifiedType const CDATA #IMPLIED>
<!ATTLIST CvQualifiedType id ID #REQUIRED>
<!ATTLIST CvQualifiedType restrict CDATA #IMPLIED>
<!ATTLIST CvQualifiedType size CDATA #IMPLIED>
<!ATTLIST CvQualifiedType type IDREF #REQUIRED>
<!ATTLIST CvQualifiedType volatile CDATA #IMPLIED>

<!ATTLIST Destructor access (public | private | protected) "public">
<!ATTLIST Destructor artificial CDATA #IMPLIED>
<!ATTLIST Destructor attributes CDATA #IMPLIED>
<!ATTLIST Destructor context IDREF #REQUIRED>
<!ATTLIST Destructor endline CDATA #IMPLIED>
<!ATTLIST Destructor extern (0 | 1) "0">
<!ATTLIST Destructor file CDATA #REQUIRED>
<!ATTLIST Destructor id ID #REQUIRED>
<!ATTLIST Destructor line CDATA #REQUIRED>
<!ATTLIST Destructor location CDATA #REQUIRED>
<!ATTLIST Destructor mangled CDATA #REQUIRED>
<!ATTLIST Destructor name CDATA #REQUIRED>
<!ATTLIST Destructor throw CDATA #IMPLIED>
<!ATTLIST Destructor virtual (0 | 1) "0">

<!ATTLIST EnumValue init CDATA #REQUIRED>
<!ATTLIST EnumValue name CDATA #REQUIRED>

<!ATTLIST Enumeration access (public | private | protected) "public">
<!ATTLIST Enumeration align CDATA #IMPLIED>
<!ATTLIST Enumeration artificial CDATA #IMPLIED>
<!ATTLIST Enumeration attributes CDATA #IMPLIED>
<!ATTLIST Enumeration context CDATA #REQUIRED>
<!ATTLIST Enumeration file CDATA #REQUIRED>
<!ATTLIST Enumeration id ID #REQUIRED>
<!ATTLIST Enumeration line CDATA #REQUIRED>
<!ATTLIST Enumeration location CDATA #REQUIRED>
<!ATTLIST Enumeration name CDATA #REQUIRED>
<!ATTLIST Enumeration size CDATA #IMPLIED>

<!ATTLIST Field access (public | private | protected) "public">
<!ATTLIST Field attributes CDATA #IMPLIED>
<!ATTLIST Field bits CDATA #IMPLIED>
<!ATTLIST Field context IDREF #REQUIRED>
<!ATTLIST Field file CDATA #REQUIRED>
<!ATTLIST Field id ID #REQUIRED>
<!ATTLIST Field line CDATA #REQUIRED>
<!ATTLIST Field location CDATA #REQUIRED>
<!ATTLIST Field mangled CDATA #IMPLIED>
<!ATTLIST Field mutable (0 | 1) "0">
<!ATTLIST Field name CDATA #REQUIRED>
<!ATTLIST Field offset CDATA #IMPLIED>
<!ATTLIST Field type CDATA #REQUIRED>

<!ATTLIST File id ID #REQUIRED>
<!ATTLIST File name CDATA #REQUIRED>

<!ATTLIST Function attributes CDATA #IMPLIED>
<!ATTLIST Function context IDREF #REQUIRED>
<!ATTLIST Function endline CDATA #IMPLIED>
<!ATTLIST Function extern (0 | 1) "0">
<!ATTLIST Function file CDATA #REQUIRED>
<!ATTLIST Function id ID #REQUIRED>
<!ATTLIST Function line CDATA #REQUIRED>
<!ATTLIST Function location CDATA #REQUIRED>
<!ATTLIST Function mangled CDATA #IMPLIED>
<!ATTLIST Function name CDATA #REQUIRED>
<!ATTLIST Function returns CDATA #REQUIRED>
<!ATTLIST Function throw CDATA #IMPLIED>

<!ATTLIST FunctionType attributes CDATA #IMPLIED>
<!ATTLIST FunctionType id ID #REQUIRED>
<!ATTLIST FunctionType returns IDREF #REQUIRED>

<!ATTLIST FundamentalType align CDATA #IMPLIED>
<!ATTLIST FundamentalType attributes CDATA #IMPLIED>
<!ATTLIST FundamentalType id ID #REQUIRED>
<!ATTLIST FundamentalType name CDATA #REQUIRED>
<!ATTLIST FundamentalType size CDATA #IMPLIED>

<!ATTLIST Method access (public | private | protected) "public">
<!ATTLIST Method attributes CDATA #IMPLIED>
<!ATTLIST Method const (0 | 1) "0">
<!ATTLIST Method context IDREF #REQUIRED>
<!ATTLIST Method endline CDATA #IMPLIED>
<!ATTLIST Method extern (0 | 1) "0">
<!ATTLIST Method file CDATA #REQUIRED>
<!ATTLIST Method id ID #REQUIRED>
<!ATTLIST Method line CDATA #REQUIRED>
<!ATTLIST Method location CDATA #REQUIRED>
<!ATTLIST Method mangled CDATA #REQUIRED>
<!ATTLIST Method name CDATA #REQUIRED>
<!ATTLIST Method pure_virtual (0 | 1) "0">
<!ATTLIST Method returns CDATA #REQUIRED>
<!ATTLIST Method static (0 | 1) "0">
<!ATTLIST Method throw CDATA #IMPLIED>
<!ATTLIST Method virtual (0 | 1) "0">

<!ATTLIST MethodType attributes CDATA #IMPLIED>
<!ATTLIST MethodType basetype IDREF #REQUIRED>
<!ATTLIST MethodType id ID #REQUIRED>
<!ATTLIST MethodType returns CDATA #REQUIRED>

<!ATTLIST Namespace attributes CDATA #IMPLIED>
<!ATTLIST Namespace context IDREF #IMPLIED>
<!ATTLIST Namespace id ID #REQUIRED>
<!ATTLIST Namespace mangled CDATA #IMPLIED>
<!ATTLIST Namespace members CDATA #IMPLIED>
<!ATTLIST Namespace name CDATA #REQUIRED>

<!ATTLIST NamespaceAlias context IDREF #IMPLIED>
<!ATTLIST NamespaceAlias id ID #REQUIRED>
<!ATTLIST NamespaceAlias mangled CDATA #IMPLIED>
<!ATTLIST NamespaceAlias name CDATA #REQUIRED>
<!ATTLIST NamespaceAlias namespace CDATA #REQUIRED>

<!ATTLIST OffsetType align CDATA #IMPLIED>
<!ATTLIST OffsetType attributes CDATA #IMPLIED>
<!ATTLIST OffsetType id ID #REQUIRED>
<!ATTLIST OffsetType basetype IDREF #REQUIRED>
<!ATTLIST OffsetType size CDATA #IMPLIED>
<!ATTLIST OffsetType type CDATA #REQUIRED>

<!ATTLIST OperatorFunction attributes CDATA #IMPLIED>
<!ATTLIST OperatorFunction context IDREF #REQUIRED>
<!ATTLIST OperatorFunction endline CDATA #IMPLIED>
<!ATTLIST OperatorFunction extern (0 | 1) "0">
<!ATTLIST OperatorFunction file CDATA #REQUIRED>
<!ATTLIST OperatorFunction id ID #REQUIRED>
<!ATTLIST OperatorFunction line CDATA #REQUIRED>
<!ATTLIST OperatorFunction location CDATA #REQUIRED>
<!ATTLIST OperatorFunction mangled CDATA #REQUIRED>
<!ATTLIST OperatorFunction name CDATA #REQUIRED>
<!ATTLIST OperatorFunction returns IDREF #REQUIRED>
<!ATTLIST OperatorFunction throw CDATA #IMPLIED>

<!ATTLIST OperatorMethod access (public | private | protected) "public">
<!ATTLIST OperatorMethod attributes CDATA #IMPLIED>
<!ATTLIST OperatorMethod const (0 | 1) "0">
<!ATTLIST OperatorMethod context IDREF #REQUIRED>
<!ATTLIST OperatorMethod endline CDATA #IMPLIED>
<!ATTLIST OperatorMethod extern (0 | 1) "0">
<!ATTLIST OperatorMethod file CDATA #REQUIRED>
<!ATTLIST OperatorMethod id ID #REQUIRED>
<!ATTLIST OperatorMethod line CDATA #REQUIRED>
<!ATTLIST OperatorMethod location CDATA #REQUIRED>
<!ATTLIST OperatorMethod mangled CDATA #REQUIRED>
<!ATTLIST OperatorMethod name CDATA #REQUIRED>
<!ATTLIST OperatorMethod pure_virtual (0 | 1) "0">
<!ATTLIST OperatorMethod returns IDREF #REQUIRED>
<!ATTLIST OperatorMethod static (0 | 1) "0">
<!ATTLIST OperatorMethod throw CDATA #IMPLIED>
<!ATTLIST OperatorMethod virtual (0 | 1) "0">

<!ATTLIST PointerType align CDATA #IMPLIED>
<!ATTLIST PointerType attributes CDATA #IMPLIED>
<!ATTLIST PointerType id ID #REQUIRED>
<!ATTLIST PointerType size CDATA #IMPLIED>
<!ATTLIST PointerType type CDATA #REQUIRED>

<!ATTLIST ReferenceType align CDATA #IMPLIED>
<!ATTLIST ReferenceType attributes CDATA #IMPLIED>
<!ATTLIST ReferenceType id ID #REQUIRED>
<!ATTLIST ReferenceType size CDATA #IMPLIED>
<!ATTLIST ReferenceType type CDATA #REQUIRED>

<!ATTLIST Struct abstract (0 | 1) "0">
<!ATTLIST Struct access (public | private | protected) "public">
<!ATTLIST Struct align CDATA #IMPLIED>
<!ATTLIST Struct artificial (0 | 1) "0">
<!ATTLIST Struct attributes CDATA #IMPLIED>
<!ATTLIST Struct bases CDATA #IMPLIED>
<!ATTLIST Struct context IDREF #REQUIRED>
<!ATTLIST Struct file CDATA #REQUIRED>
<!ATTLIST Struct id ID #REQUIRED>
<!ATTLIST Struct incomplete (0 | 1) "0">
<!ATTLIST Struct line CDATA #REQUIRED>
<!ATTLIST Struct location CDATA #REQUIRED>
<!ATTLIST Struct mangled CDATA #REQUIRED>
<!ATTLIST Struct members CDATA #IMPLIED>
<!ATTLIST Struct name CDATA #IMPLIED>
<!ATTLIST Struct size CDATA #IMPLIED>

<!ATTLIST Typedef attributes CDATA #IMPLIED>
<!ATTLIST Typedef context IDREF #REQUIRED>
<!ATTLIST Typedef file CDATA #REQUIRED>
<!ATTLIST Typedef id ID #REQUIRED>
<!ATTLIST Typedef line CDATA #REQUIRED>
<!ATTLIST Typedef location CDATA #REQUIRED>
<!ATTLIST Typedef name CDATA #REQUIRED>
<!ATTLIST Typedef type CDATA #REQUIRED>

<!ATTLIST Unimplemented function CDATA #IMPLIED>
<!ATTLIST Unimplemented id ID #REQUIRED>
<!ATTLIST Unimplemented node CDATA #REQUIRED>
<!ATTLIST Unimplemented tree_code (187 | 190 | 193) #REQUIRED>
<!ATTLIST Unimplemented tree_code_name (template_type_parm | 
	typename_type | using_decl) #REQUIRED>

<!ATTLIST Union abstract (0 | 1) "0">
<!ATTLIST Union access (public | private | protected) "public">
<!ATTLIST Union align CDATA #IMPLIED>
<!ATTLIST Union artificial (0 | 1) "0">
<!ATTLIST Union attributes CDATA #IMPLIED>
<!ATTLIST Union bases CDATA #IMPLIED>
<!ATTLIST Union context IDREF #REQUIRED>
<!ATTLIST Union file CDATA #REQUIRED>
<!ATTLIST Union id ID #REQUIRED>
<!ATTLIST Union incomplete (0 | 1) "0">
<!ATTLIST Union line CDATA #REQUIRED>
<!ATTLIST Union location CDATA #REQUIRED>
<!ATTLIST Union mangled CDATA #REQUIRED>
<!ATTLIST Union members CDATA #IMPLIED>
<!ATTLIST Union name CDATA #IMPLIED>
<!ATTLIST Union size CDATA #IMPLIED>

<!ATTLIST Variable access (public | private | protected) "public">
<!ATTLIST Variable artificial CDATA #IMPLIED>
<!ATTLIST Variable attributes CDATA #IMPLIED>
<!ATTLIST Variable context IDREF #REQUIRED>
<!ATTLIST Variable extern (0 | 1) "0">
<!ATTLIST Variable file CDATA #REQUIRED>
<!ATTLIST Variable id ID #REQUIRED>
<!ATTLIST Variable init CDATA #IMPLIED>
<!ATTLIST Variable line CDATA #REQUIRED>
<!ATTLIST Variable location CDATA #REQUIRED>
<!ATTLIST Variable mangled CDATA #IMPLIED>
<!ATTLIST Variable name CDATA #REQUIRED>
<!ATTLIST Variable type CDATA #REQUIRED>

<!ATTLIST GCC_XML cvs_revision CDATA #IMPLIED>

<!ELEMENT Argument EMPTY>
<!ELEMENT Ellipsis EMPTY>
<!ELEMENT ArrayType EMPTY>
<!ELEMENT Base EMPTY>
<!ELEMENT Class (Base)*>
<!ELEMENT Constructor (Argument | Ellipsis)*>
<!ELEMENT Converter EMPTY>
<!ELEMENT CvQualifiedType EMPTY>
<!ELEMENT Destructor (Argument)*> <!-- FIXME -->
<!ELEMENT EnumValue EMPTY>
<!ELEMENT Enumeration (EnumValue)+>
<!ELEMENT Field EMPTY>
<!ELEMENT File EMPTY>
<!ELEMENT Function (Argument | Ellipsis)*>
<!ELEMENT FunctionType (Argument | Ellipsis)*>
<!ELEMENT FundamentalType EMPTY>
<!ELEMENT Method (Argument | Ellipsis)*>
<!ELEMENT MethodType (Argument | Ellipsis)*>
<!ELEMENT Namespace EMPTY>
<!ELEMENT NamespaceAlias EMPTY>
<!ELEMENT OffsetType EMPTY>
<!ELEMENT OperatorFunction (Argument | Ellipsis)*>
<!ELEMENT OperatorMethod (Argument | Ellipsis)*>
<!ELEMENT PointerType EMPTY>
<!ELEMENT ReferenceType EMPTY>
<!ELEMENT Struct (Base)*>
<!ELEMENT Typedef EMPTY>
<!ELEMENT Unimplemented EMPTY>
<!ELEMENT Union (Base)*>
<!ELEMENT Variable EMPTY>
<!ELEMENT GCC_XML (ArrayType | Class | Constructor | Converter | CvQualifiedType |
	Destructor | Enumeration | Field | File | Function | FunctionType | 
	FundamentalType | Method | MethodType | Namespace | NamespaceAlias | OperatorFunction 
	| OperatorMethod | OffsetType | PointerType | ReferenceType | Struct | Typedef | 
	Unimplemented | Union | Variable)+>

