<!-- Qt# parser/generator API XML DTD -->

<!ELEMENT API (Namespace)+ >

<!ELEMENT Namespace (Namespace | Class | Enum)+ >
<!ATTLIST Namespace Name CDATA #REQUIRED >

<!ELEMENT Class (Ancestor | Field | Property | Constructor | Destructor | Method | Enum)+ >
<!ATTLIST Class Name CDATA #REQUIRED >

<!ELEMENT Ancestor EMPTY >
<!ATTLIST Ancestor Name CDATA #REQUIRED >

<!ELEMENT Field EMPTY >
<!ATTLIST Field
        Name CDATA #REQUIRED
        Type CDATA #REQUIRED
        Access CDATA #REQUIRED
        Static CDATA #IMPLIED
        ReadOnly CDATA #IMPLIED
>

<!ELEMENT Property (Parameter) >
<!ATTLIST Property
        Type CDATA #REQUIRED
        Name CDATA #REQUIRED
        Read CDATA #IMPLIED
        Write CDATA #IMPLIED
        Override CDATA #IMPLIED
>

<!ELEMENT Parameter (ATTRIBUTE) >
<!ATTLIST Parameter
        Name CDATA #REQUIRED
        Type CDATA #REQUIRED
        TemplateParameters CDATA #IMPLIED
        Mode CDATA #IMPLIED
        Const CDATA #IMPLIED
        Unsigned CDATA #IMPLIED
        Default CDATA #IMPLIED  
>

<!ELEMENT Constructor (Parameter)* >
<!ATTLIST Constructor
        Name CDATA #IMPLIED
        Access CDATA #REQUIRED
        Id CDATA #IMPLIED
>

<!ELEMENT Destructor EMPTY >
<!ATTLIST Destructor
        Name CDATA #REQUIRED
        Virtual CDATA #IMPLIED
>

<!ELEMENT Method (ReturnType, Parameter*) >
<!ATTLIST Method
        Name CDATA #REQUIRED
        Access CDATA #REQUIRED
        Const CDATA #IMPLIED
        Static CDATA #IMPLIED
        Virtual CDATA #IMPLIED
        MethodType CDATA #IMPLIED
        Id CDATA #IMPLIED
>

<!ELEMENT ReturnType EMPTY >
<!ATTLIST ReturnType
        Type CDATA #ACCESS
        Mode CDATA #IMPLIED
        Const CDATA #IMPLIED
        Unsigned CDATA #IMPLIED
>

<!ELEMENT Enum (EnumItem)+ >
<!ATTLIST Enum
        Name CDATA #REQUIRED
        Unsigned CDATA #IMPLIED
>

<!ELEMENT EnumItem EMPTY >
<!ATTLIST EnumItem
        Name CDATA #REQUIRED
        Value CDATA #REQUIRED
>