<?xml version="1.0"?>
<typesystem>


  <namespace-type name="QPatternist"/>
  <namespace-type name="QPatternistSDK"/>

  <enum-type name="QXmlNodeModelIndex::NodeKind"/>
  <enum-type name="QXmlNodeModelIndex::DocumentOrder"/>
  <enum-type name="QAbstractXmlNodeModel::NodeCopySetting"/>
  <enum-type name="QAbstractXmlNodeModel::SimpleAxis"/>

  <object-type name="QAbstractMessageHandler">
    <modify-function signature="QAbstractMessageHandler(QObject*)" remove="all" />
  </object-type>
  <object-type name="QAbstractUriResolver"/>
  <object-type name="QAbstractXmlForwardIterator"/>

  <rejection class="QPatternist::NodeIndexStorage" />
  <rejection class="QAbstractXmlNodeModel" function-name="mapToItem" />
  <rejection class="QAbstractXmlNodeModel" function-name="mapToSequence" />
  <rejection class="QAbstractXmlNodeModel" function-name="sequencedTypedValue" />
  <rejection class="QAbstractXmlNodeModel" function-name="sendNamespaces" />
  <rejection class="QAbstractXmlNodeModel" function-name="iterate" />
  <rejection class="QAbstractXmlNodeModel" function-name="copyNodeTo" />
  <rejection class="QAbstractXmlNodeModel" function-name="type" />
  <value-type name="QAbstractXmlNodeModel">
    <modify-function signature="QAbstractXmlNodeModel()" remove="all" />
    <modify-function signature="namespaceForPrefix(QXmlNodeModelIndex,short) const"
             remove="all" />
    <modify-function signature="isDeepEqual(QXmlNodeModelIndex,QXmlNodeModelIndex) const"
             remove="all" />
  </value-type>

  <rejection class="QAbstractXmlReceiver" function-name="item" />
  <rejection class="QAbstractXmlReceiver" function-name="sendAsNode" />
  <value-type name="QAbstractXmlReceiver">
  </value-type>

  <value-type name="QSimpleXmlNodeModel" />

  <value-type name="QSourceLocation">
    <modify-function signature="operator=(QSourceLocation)" remove="all" />
  </value-type>

  <rejection class="QXmlFormatter" function-name="item" />
  <object-type name="QXmlFormatter">
    <modify-function signature="startFormattingContent()" remove="all" />
  </object-type>

  <value-type name="QXmlItem">
    <modify-function signature="operator=(QXmlItem)" remove="all" />
  </value-type>

  <value-type name="QXmlName">
    <modify-function signature="QXmlName(QXmlNamePool&amp;,QString,QString,QString)" access="private">
      <modify-argument index="3">
    <remove-default-expression />
      </modify-argument>
      <modify-argument index="4">
    <remove-default-expression />
      </modify-argument>
    </modify-function>

    <modify-function signature="operator=(QXmlName)" remove="all" />
    <modify-function signature="QXmlName(short,short,short)"
             remove="all" />
    <modify-function signature="localName()const" remove="all" />
    <modify-function signature="prefix()const" remove="all" />
    <modify-function signature="hasPrefix()const" remove="all" />
    <modify-function signature="hasNamespace()const" remove="all" />
    <modify-function signature="namespaceURI()const" remove="all" />
    <modify-function signature="isLexicallyEqual(const QXmlName)const" remove="all" />
    <modify-function signature="setPrefix(const short)" remove="all" />
    <modify-function signature="setNamespaceURI(const short)" remove="all" />
    <modify-function signature="setLocalName(const short)" remove="all" />
    <modify-function signature="code()const" remove="all" />
  </value-type>

  <value-type name="QXmlNamePool">
    <modify-function signature="operator=(QXmlNamePool)" remove="all" />
  </value-type>

  <rejection class="QXmlNodeModelIndex" function-name="sequencedTypedValue" />
  <rejection class="QXmlNodeModelIndex" function-name="sendNamespaces" />
  <rejection class="QXmlNodeModelIndex" function-name="iterate" />
  <rejection class="QXmlNodeModelIndex" function-name="type" />
  <rejection class="QXmlNodeModelIndex" enum-name="Axis" />
  <value-type name="QXmlNodeModelIndex">
    <modify-function signature="name() const" remove="all" />
    <modify-function signature="root() const" remove="all" />
    <modify-function signature="documentUri() const" remove="all" />
    <modify-function signature="baseUri() const" remove="all" />
    <modify-function signature="kind() const" remove="all" />
    <modify-function signature="isDeepEqual(QXmlNodeModelIndex) const" remove="all" />
    <modify-function signature="compareOrder(QXmlNodeModelIndex) const" remove="all" />
    <modify-function signature="namespaceBindings() const" remove="all" />
    <modify-function signature="namespaceForPrefix(short) const" remove="all" />
    <modify-function signature="stringValue() const" remove="all" />
    <modify-function signature="is(QXmlNodeModelIndex) const" remove="all" />
    <modify-function signature="reset()" remove="all" />
    <modify-function signature="internalPointer()const" remove="all" />

    <modify-function signature="model()const">
      <access modifier="private"/>
      <rename to="model_private" />
    </modify-function>
  </value-type>

  <value-type name="QXmlSerializerPointer"/>

  <object-type name="QXmlQuery">
    <modify-function signature="evaluateTo(QAbstractXmlReceiver *)const" remove="all" />
    <modify-function signature="evaluateTo(QStringList&lt;QString&gt;*)const" remove="all" />
    <modify-function signature="setMessageHandler(QAbstractMessageHandler*)">
      <modify-argument index="1">
    <reference-count action="set" variable-name="__rcMessageHandler" />
      </modify-argument>
    </modify-function>
    <modify-function signature="setQuery(QIODevice*, QUrl)">
      <modify-argument index="1">
    <reference-count action="ignore" /> <!-- Data from IODevice is readAll()'d immediately and the pointer is not stored -->
      </modify-argument>
    </modify-function>
    <modify-function signature="setUriResolver(const QAbstractUriResolver*)">
      <modify-argument index="1">
    <reference-count action="set" variable-name="__rcUriResolver" />
      </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QXmlResultItems"/>

  <rejection class="QXmlSerializer" function-name="item" />
  <object-type name="QXmlSerializer">
    <modify-function signature="atDocumentRoot()const" remove="all" />
    <modify-function signature="startContent()" remove="all" />
    <modify-function signature="writeEscaped(QString)" remove="all" />
    <modify-function signature="writeEscapedAttribute(QString)" remove="all" />
    <modify-function signature="write(QString)" remove="all" />
    <modify-function signature="write(QXmlName)" remove="all" />
    <modify-function signature="write(const char *)" remove="all" />
    <modify-function signature="isBindingInScope(QXmlName)const" remove="all" />
    <modify-function signature="setCodec(const QTextCodec *)">
      <modify-argument index="1">
    <reference-count action="set" variable-name="__rcCodec" />
      </modify-argument>
    </modify-function>
  </object-type>



  <suppress-warning text="WARNING(MetaJavaBuilder) :: horribly broken type ''"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: template baseclass 'QExplicitlySharedDataPointer&lt;QXmlSerializer&gt;' of 'QXmlSerializerPointer' is not known" />

  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QXmlItem::QXmlItem', unmatched parameter type 'QPatternist::Item const&amp;'" />
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QXmlNodeModelIndex::sequencedTypedValue', unmatched return type 'QExplicitlySharedDataPointer&lt;QAbstractXmlForwardIterator&lt;QPatternist::Item&gt;&gt;"/>

  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QXmlNodeModelIndex::QXmlNodeModelIndex', unmatched parameter type 'QPatternist::NodeIndexStorage const&amp;'" />

  <!-- To avoid warnings when running the generator on systems without XML patterns -->
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QSimpleXmlNodeModel' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlSerializerPointer' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QSourceLocation' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlFormatter' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QAbstractUriResolver' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QAbstractXmlReceiver' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.xmlpatterns.QXmlNodeModelIndex' for enum 'DocumentOrder' is not declared"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlQuery' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlName' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.xmlpatterns.QAbstractXmlNodeModel' for enum 'NodeCopySetting' is not declared"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlSerializer' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QAbstractXmlNodeModel' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlItem' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlNodeModelIndex' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlResultItems' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QAbstractMessageHandler' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.xmlpatterns.QXmlNodeModelIndex' for enum 'NodeKind' is not declared"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: namespace 'com.trolltech.qt.xmlpatterns.QAbstractXmlNodeModel' for enum 'SimpleAxis' is not declared"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: type 'QXmlNamePool' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>

</typesystem>
