<class name="QDomImplementation" doc="/**
&lt;p&gt;The &lt;a href=&quot;QDomImplementation.html#QDomImplementation(com.trolltech.qt.xml.QDomImplementation)&quot;&gt;&lt;tt&gt;QDomImplementation&lt;/tt&gt;&lt;/a&gt; class provides information about the features of the DOM implementation.&lt;/p&gt;
&lt;p&gt;This class describes the features that are supported by the DOM implementation. Currently the XML subset of DOM Level 1 and DOM Level 2 Core are supported.&lt;/p&gt;
&lt;p&gt;Normally you will use the function QDomDocument::implementation() to get the implementation object.&lt;/p&gt;
&lt;p&gt;You can create a new document type with &lt;a href=&quot;QDomImplementation.html#createDocumentType(java.lang.String, java.lang.String, java.lang.String)&quot;&gt;&lt;tt&gt;createDocumentType&lt;/tt&gt;&lt;/a&gt; and a new document with &lt;a href=&quot;QDomImplementation.html#createDocument(java.lang.String, java.lang.String, com.trolltech.qt.xml.QDomDocumentType)&quot;&gt;&lt;tt&gt;createDocument&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For further information about the Document Object Model see &lt;a href=&quot;http://www.w3.org/TR/REC-DOM-Level-1/&quot;&gt;Level 1&lt;/tt&gt;&lt;/a&gt; and &lt;a href=&quot;http://www.w3.org/TR/DOM-Level-2-Core/&quot;&gt;Level 2 Core&lt;/tt&gt;&lt;/a&gt;. For a more general introduction of the DOM implementation see the &lt;a href=&quot;QDomDocument.html&quot;&gt;&lt;tt&gt;QDomDocument&lt;/tt&gt;&lt;/a&gt; documentation.&lt;/p&gt;

@see &lt;a href=&quot;QDomImplementation.html#hasFeature(java.lang.String, java.lang.String)&quot;&gt;&lt;tt&gt;hasFeature&lt;/tt&gt;&lt;/a&gt; */">
    <method name="public QDomImplementation()" doc="/**
&lt;p&gt;Constructs a &lt;a href=&quot;QDomImplementation.html#QDomImplementation(com.trolltech.qt.xml.QDomImplementation)&quot;&gt;&lt;tt&gt;QDomImplementation&lt;/tt&gt;&lt;/a&gt; object.&lt;/p&gt;
 */"/>
    <method name="public QDomImplementation(com.trolltech.qt.xml.QDomImplementation arg__1)" doc="/**
&lt;p&gt;Constructs a copy of &lt;tt&gt;arg__1&lt;/tt&gt;.&lt;/p&gt;
 */"/>
    <method name="public final com.trolltech.qt.xml.QDomDocument createDocument(java.lang.String nsURI, java.lang.String qName, com.trolltech.qt.xml.QDomDocumentType doctype)" doc="/**
&lt;p&gt;Creates a DOM document with the document type &lt;tt&gt;doctype&lt;/tt&gt;. This function also adds a root element node with the qualified name &lt;tt&gt;qName&lt;/tt&gt; and the namespace URI &lt;tt&gt;nsURI&lt;/tt&gt;.&lt;/p&gt;
 */"/>
    <method name="public final com.trolltech.qt.xml.QDomDocumentType createDocumentType(java.lang.String qName, java.lang.String publicId, java.lang.String systemId)" doc="/**
&lt;p&gt;Creates a document type node for the name &lt;tt&gt;qName&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;&lt;tt&gt;publicId&lt;/tt&gt; specifies the public identifier of the external subset. If you specify an empty string (&lt;a href=&quot;%2E%2E/porting4.html#qstring&quot;&gt;&lt;tt&gt;QString&lt;/tt&gt;&lt;/a&gt;) as the &lt;tt&gt;publicId&lt;/tt&gt;, this means that the document type has no public identifier.&lt;/p&gt;
&lt;p&gt;&lt;tt&gt;systemId&lt;/tt&gt; specifies the system identifier of the external subset. If you specify an empty string as the &lt;tt&gt;systemId&lt;/tt&gt;, this means that the document type has no system identifier.&lt;/p&gt;
&lt;p&gt;Since you cannot have a public identifier without a system identifier, the public identifier is set to an empty string if there is no system identifier.&lt;/p&gt;
&lt;p&gt;DOM level 2 does not support any other document type declaration features.&lt;/p&gt;
&lt;p&gt;The only way you can use a document type that was created this way, is in combination with the &lt;a href=&quot;QDomImplementation.html#createDocument(java.lang.String, java.lang.String, com.trolltech.qt.xml.QDomDocumentType)&quot;&gt;&lt;tt&gt;createDocument&lt;/tt&gt;&lt;/a&gt; function to create a &lt;a href=&quot;QDomDocument.html&quot;&gt;&lt;tt&gt;QDomDocument&lt;/tt&gt;&lt;/a&gt; with this document type.&lt;/p&gt;
&lt;p&gt;In the DOM specification, this is the only way to create a non-null document. For historical reasons, Qt also allows to create the document using the default empty constructor. The resulting document is null, but becomes non-null when a factory function, for example QDomDocument::createElement(), is called. The document also becomes non-null when setContent() is called.&lt;/p&gt;

@see &lt;a href=&quot;QDomImplementation.html#createDocument(java.lang.String, java.lang.String, com.trolltech.qt.xml.QDomDocumentType)&quot;&gt;&lt;tt&gt;createDocument&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final boolean hasFeature(java.lang.String feature, java.lang.String version)" doc="/**
&lt;p&gt;The function returns true if QDom implements the requested &lt;tt&gt;version&lt;/tt&gt; of a &lt;tt&gt;feature&lt;/tt&gt;; otherwise returns false.&lt;/p&gt;
&lt;p&gt;The currently supported features and their versions:&lt;/p&gt;
&lt;p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;2&quot; cellspacing=&quot;1&quot; border=&quot;0&quot;&gt;
&lt;thead&gt;&lt;tr valign=&quot;top&quot; class=&quot;qt-style&quot;&gt;&lt;th&gt;Feature&lt;/th&gt;&lt;th&gt;Version&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tr valign=&quot;top&quot; class=&quot;odd&quot;&gt;&lt;td&gt;XML&lt;/td&gt;&lt;td&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;/p&gt;
 */"/>
    <method name="public final boolean isNull()" doc="/**
&lt;p&gt;Returns false if the object was created by QDomDocument::implementation(); otherwise returns true.&lt;/p&gt;
 */"/>
    <method name="public static com.trolltech.qt.xml.QDomImplementation.InvalidDataPolicy invalidDataPolicy()" doc="/**
&lt;p&gt;Returns the invalid data policy, which specifies what should be done when a factory function in &lt;a href=&quot;QDomDocument.html&quot;&gt;&lt;tt&gt;QDomDocument&lt;/tt&gt;&lt;/a&gt; is passed invalid data.&lt;/p&gt;

@see &lt;a href=&quot;QDomImplementation.html#setInvalidDataPolicy(com.trolltech.qt.xml.QDomImplementation.InvalidDataPolicy)&quot;&gt;&lt;tt&gt;setInvalidDataPolicy&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QDomImplementation.html#InvalidDataPolicy-enum&quot;&gt;&lt;tt&gt;InvalidDataPolicy&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public static void setInvalidDataPolicy(com.trolltech.qt.xml.QDomImplementation.InvalidDataPolicy policy)" doc="/**
&lt;p&gt;Sets the invalid data policy, which specifies what should be done when a factory function in &lt;a href=&quot;QDomDocument.html&quot;&gt;&lt;tt&gt;QDomDocument&lt;/tt&gt;&lt;/a&gt; is passed invalid data.&lt;/p&gt;
&lt;p&gt;The &lt;tt&gt;policy&lt;/tt&gt; is set for all instances of &lt;a href=&quot;QDomDocument.html&quot;&gt;&lt;tt&gt;QDomDocument&lt;/tt&gt;&lt;/a&gt; which already exist and which will be created in the future.&lt;/p&gt;
&lt;pre&gt;    QDomDocument doc;
    QDomImplementation impl;

&lt;span class=&quot;comment&quot;&gt;    //&lt;/span&gt; This will create the element, but the resulting XML document will
&lt;span class=&quot;comment&quot;&gt;    //&lt;/span&gt; be invalid, because '~' is not a valid character in a tag name.
    impl.setInvalidDataPolicy(QDomImplementation::AcceptInvalidData);
    QDomElement elt1 = doc.createElement(&amp;quot;foo~bar&amp;quot;);

&lt;span class=&quot;comment&quot;&gt;    //&lt;/span&gt; This will create an element with the tag name &amp;quot;foobar&amp;quot;.
    impl.setInvalidDataPolicy(QDomImplementation::DropInvalidData);
    QDomElement elt2 = doc.createElement(&amp;quot;foo~bar&amp;quot;);

&lt;span class=&quot;comment&quot;&gt;    //&lt;/span&gt; This will create a null element.
    impl.setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
    QDomElement elt3 = doc.createElement(&amp;quot;foo~bar&amp;quot;);&lt;/pre&gt;

@see &lt;a href=&quot;QDomImplementation.html#invalidDataPolicy()&quot;&gt;&lt;tt&gt;invalidDataPolicy&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QDomImplementation.html#InvalidDataPolicy-enum&quot;&gt;&lt;tt&gt;InvalidDataPolicy&lt;/tt&gt;&lt;/a&gt; */"/>
    <enum name="InvalidDataPolicy" doc="/**
&lt;p&gt;This enum specifies what should be done when a factory function in &lt;a href=&quot;QDomDocument.html&quot;&gt;&lt;tt&gt;QDomDocument&lt;/tt&gt;&lt;/a&gt; is called with invalid data.&lt;/p&gt;

@see &lt;a href=&quot;QDomImplementation.html#setInvalidDataPolicy(com.trolltech.qt.xml.QDomImplementation.InvalidDataPolicy)&quot;&gt;&lt;tt&gt;setInvalidDataPolicy&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QDomImplementation.html#invalidDataPolicy()&quot;&gt;&lt;tt&gt;invalidDataPolicy&lt;/tt&gt;&lt;/a&gt; */">
        <enum-value name="AcceptInvalidChars" doc="/**
&lt;p&gt;The data should be stored in the DOM object anyway. In this case the resulting XML document might not be well-formed. This is the default value and QDom's behavior in Qt &amp;lt; 4.1&amp;#x2e;&lt;/p&gt;
 */"/>
        <enum-value name="DropInvalidChars" doc="/**
&lt;p&gt;The invalid characters should be removed from the data.&lt;/p&gt;
 */"/>
        <enum-value name="ReturnNullNode" doc="/**
&lt;p&gt;The factory function should return a null node.&lt;/p&gt;
 */"/>
</enum>
</class>
