Author: amassari
Date: Thu Aug 4 04:56:47 2005
New Revision: 227349
URL: http://svn.apache.org/viewcvs?rev=227349&view=rev
Log:
DOM L3 Core: DOMDocument
Modified:
xerces/c/trunk/src/xercesc/dom/DOMDocument.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMNormalizer.cpp
xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp
xerces/c/trunk/tests/src/DOM/Normalizer/Normalizer.cpp
Modified: xerces/c/trunk/src/xercesc/dom/DOMDocument.hpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/DOMDocument.hpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/DOMDocument.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/DOMDocument.hpp Thu Aug 4 04:56:47 2005
@@ -516,92 +516,56 @@
//@{
/**
- * An attribute specifying the actual encoding of this document. This is
- * <code>null</code> otherwise.
- * <br> This attribute represents the property [character encoding scheme]
- * defined in.
- *
- * <p><b>"Experimental - subject to change"</b></p>
- *
- * @since DOM Level 3
- */
- virtual const XMLCh* getActualEncoding() const = 0;
-
- /**
- * An attribute specifying the actual encoding of this document. This is
- * <code>null</code> otherwise.
- * <br> This attribute represents the property [character encoding scheme]
- * defined in .
- *
- * <p><b>"Experimental - subject to change"</b></p>
+ * An attribute specifying the encoding used for this document at the time
of the parsing.
+ * This is <code>null</code> when it is not known, such as when the
DOMDocument was created in memory.
*
* @since DOM Level 3
*/
- virtual void setActualEncoding(const XMLCh*
actualEncoding) = 0;
+ virtual const XMLCh* getInputEncoding() const = 0;
/**
- * An attribute specifying, as part of the XML declaration, the encoding
- * of this document. This is <code>null</code> when unspecified.
- *
- * <p><b>"Experimental - subject to change"</b></p>
- *
- * @since DOM Level 3
- */
- virtual const XMLCh* getEncoding() const = 0;
-
- /**
- * An attribute specifying, as part of the XML declaration, the encoding
- * of this document. This is <code>null</code> when unspecified.
- *
- * <p><b>"Experimental - subject to change"</b></p>
+ * An attribute specifying, as part of the XML declaration, the encoding
of this document.
+ * This is <code>null</code> when unspecified or when it is not known,
such as when the
+ * DOMDocument was created in memory.
*
* @since DOM Level 3
*/
- virtual void setEncoding(const XMLCh* encoding) = 0;
+ virtual const XMLCh* getXmlEncoding() const = 0;
/**
- * An attribute specifying, as part of the XML declaration, whether this
- * document is standalone.
- * <br> This attribute represents the property [standalone] defined in .
- *
- * <p><b>"Experimental - subject to change"</b></p>
+ * An attribute specifying, as part of the XML declaration, whether this
document is standalone.
+ * This is <code>false</code> when unspecified.
*
* @since DOM Level 3
*/
- virtual bool getStandalone() const = 0;
+ virtual bool getXmlStandalone() const = 0;
/**
* An attribute specifying, as part of the XML declaration, whether this
* document is standalone.
* <br> This attribute represents the property [standalone] defined in .
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
- virtual void setStandalone(bool standalone) = 0;
+ virtual void setXmlStandalone(bool standalone) = 0;
/**
* An attribute specifying, as part of the XML declaration, the version
* number of this document. This is <code>null</code> when unspecified.
* <br> This attribute represents the property [version] defined in .
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
- virtual const XMLCh* getVersion() const = 0;
+ virtual const XMLCh* getXmlVersion() const = 0;
/**
* An attribute specifying, as part of the XML declaration, the version
* number of this document. This is <code>null</code> when unspecified.
* <br> This attribute represents the property [version] defined in .
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
- virtual void setVersion(const XMLCh* version) = 0;
+ virtual void setXmlVersion(const XMLCh* version) = 0;
/**
* The location of the document or <code>null</code> if undefined.
@@ -609,8 +573,6 @@
* "HTML" , the href attribute of the HTML BASE element takes precedence
* over this attribute.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
virtual const XMLCh* getDocumentURI() const = 0;
@@ -620,8 +582,6 @@
* "HTML" , the href attribute of the HTML BASE element takes precedence
* over this attribute.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
virtual void setDocumentURI(const XMLCh* documentURI) =
0;
@@ -634,8 +594,6 @@
* behavior is undefined. This attribute is <code>true</code> by
* defaults.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
virtual bool getStrictErrorChecking() const = 0;
@@ -647,8 +605,6 @@
* behavior is undefined. This attribute is <code>true</code> by
* defaults.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @since DOM Level 3
*/
virtual void setStrictErrorChecking(bool
strictErrorChecking) = 0;
@@ -675,11 +631,9 @@
* by modifying the existing node or creating a new one as described
* above, it is put back.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @param n The node to rename.
* @param namespaceURI The new namespaceURI.
- * @param name The new qualified name.
+ * @param qualifiedName The new qualified name.
* @return The renamed node. This is either the specified node or the new
* node that was created to replace the specified node.
* @exception DOMException
@@ -699,7 +653,7 @@
* different from "http://www.w3.org/2000/xmlns/".
* @since DOM Level 3
*/
- virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const
XMLCh* name) = 0;
+ virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const
XMLCh* qualifiedName) = 0;
/**
@@ -709,8 +663,6 @@
* effectively allows moving a subtree from one document to another. The
* following list describes the specifics for each type of node.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* <dl>
* <dt>
* ATTRIBUTE_NODE</dt>
@@ -771,8 +723,6 @@
* depends on the features being set. See <code>DOMConfiguration</code>
for
* details.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* <br>Noticeably this method normalizes <code>DOMText</code> nodes, makes
* the document "namespace wellformed", according to the algorithm
* described below in pseudo code, by adding missing namespace
@@ -793,7 +743,7 @@
/**
- * The configuration used when Document.normalizeDocument is invoked.
+ * The configuration used when DOMDocument::normalizeDocument is invoked.
*
* @return The <code>DOMConfiguration</code> from this
<code>DOMDocument</code>
*
@@ -804,10 +754,9 @@
* The feature to normalize namespaces is implemented. This feature is
called
* "namespaces" and is incorectly documented in the current WD.
*
- * <p><b>"Experimental - subject to change"</b></p>
* @since DOM Level 3
*/
- virtual DOMConfiguration* getDOMConfiguration() const = 0;
+ virtual DOMConfiguration* getDOMConfig() const = 0;
//@}
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.cpp Thu Aug 4 04:56:47
2005
@@ -63,10 +63,10 @@
: fNode(this),
fParent(this),
fNodeIDMap(0),
- fActualEncoding(0),
- fEncoding(0),
- fStandalone(false),
- fVersion(0),
+ fInputEncoding(0),
+ fXmlEncoding(0),
+ fXmlStandalone(false),
+ fXmlVersion(0),
fDocumentURI(0),
fDOMConfiguration(0),
fUserDataTableKeys(17, manager),
@@ -99,10 +99,10 @@
: fNode(this),
fParent(this),
fNodeIDMap(0),
- fActualEncoding(0),
- fEncoding(0),
- fStandalone(false),
- fVersion(0),
+ fInputEncoding(0),
+ fXmlEncoding(0),
+ fXmlStandalone(false),
+ fXmlVersion(0),
fDocumentURI(0),
fDOMConfiguration(0),
fUserDataTableKeys(17, manager),
@@ -201,11 +201,11 @@
// Note: the cloned document node goes on the same heap we live in.
DOMDocumentImpl *newdoc = new (fMemoryManager)
DOMDocumentImpl(fMemoryManager);
- if(fEncoding && *fEncoding)
- newdoc->setEncoding(fEncoding);
- if(fVersion && *fVersion)
- newdoc->setVersion(fVersion);
- newdoc->setStandalone(fStandalone);
+ if(fXmlEncoding && *fXmlEncoding)
+ newdoc->setXmlEncoding(fXmlEncoding);
+ if(fXmlVersion && *fXmlVersion)
+ newdoc->setXmlVersion(fXmlVersion);
+ newdoc->setXmlStandalone(fXmlStandalone);
// then the children by _importing_ them
if (deep)
@@ -463,6 +463,7 @@
DOMImplementation *DOMDocumentImpl::getImplementation() const {
+ // REVISIT: we should return the implementation that created us
return DOMImplementation::getImplementation();
}
@@ -525,7 +526,7 @@
bool DOMDocumentImpl::isXMLName(const XMLCh *s)
{
- if (XMLString::equals(fVersion, XMLUni::fgVersion1_1))
+ if (XMLString::equals(fXmlVersion, XMLUni::fgVersion1_1))
return XMLChar1_1::isValidName(s, XMLString::stringLen(s));
else
return XMLChar1_0::isValidName(s, XMLString::stringLen(s));
@@ -911,41 +912,41 @@
//Introduced in DOM Level 3
-const XMLCh* DOMDocumentImpl::getActualEncoding() const {
- return fActualEncoding;
+const XMLCh* DOMDocumentImpl::getInputEncoding() const {
+ return fInputEncoding;
}
-void DOMDocumentImpl::setActualEncoding(const XMLCh* actualEncoding){
- fActualEncoding = cloneString(actualEncoding);
+void DOMDocumentImpl::setInputEncoding(const XMLCh* actualEncoding){
+ fInputEncoding = cloneString(actualEncoding);
}
-const XMLCh* DOMDocumentImpl::getEncoding() const {
- return fEncoding;
+const XMLCh* DOMDocumentImpl::getXmlEncoding() const {
+ return fXmlEncoding;
}
-void DOMDocumentImpl::setEncoding(const XMLCh* encoding){
- fEncoding = cloneString(encoding);
+void DOMDocumentImpl::setXmlEncoding(const XMLCh* encoding){
+ fXmlEncoding = cloneString(encoding);
}
-bool DOMDocumentImpl::getStandalone() const{
- return fStandalone;
+bool DOMDocumentImpl::getXmlStandalone() const{
+ return fXmlStandalone;
}
-void DOMDocumentImpl::setStandalone(bool standalone){
- fStandalone = standalone;
+void DOMDocumentImpl::setXmlStandalone(bool standalone){
+ fXmlStandalone = standalone;
}
-const XMLCh* DOMDocumentImpl::getVersion() const {
- return fVersion;
+const XMLCh* DOMDocumentImpl::getXmlVersion() const {
+ return fXmlVersion;
}
-void DOMDocumentImpl::setVersion(const XMLCh* version){
+void DOMDocumentImpl::setXmlVersion(const XMLCh* version){
if ((version && *version) &&
!XMLString::equals(version, XMLUni::fgVersion1_0) &&
!XMLString::equals(version, XMLUni::fgVersion1_1))
throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0,
getMemoryManager());
- fVersion = cloneString(version);
+ fXmlVersion = cloneString(version);
}
const XMLCh* DOMDocumentImpl::getDocumentURI() const
@@ -984,15 +985,11 @@
fNormalizer->normalizeDocument(this);
}
-DOMConfiguration* DOMDocumentImpl::getDOMConfiguration() const {
+DOMConfiguration* DOMDocumentImpl::getDOMConfig() const {
if(!fDOMConfiguration)
((DOMDocumentImpl*)this)->fDOMConfiguration = new
((DOMDocumentImpl*)this) DOMConfigurationImpl(fMemoryManager);
return fDOMConfiguration;
-}
-
-void DOMDocumentImpl::setDOMConfiguration(DOMConfiguration *config) {
- fDOMConfiguration = config;
}
DOMNode *DOMDocumentImpl::importNode(const DOMNode *source, bool deep, bool
cloningDoc)
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMDocumentImpl.hpp Thu Aug 4 04:56:47
2005
@@ -216,23 +216,22 @@
virtual DOMElement* getElementById(const XMLCh *elementId) const;
//Introduced in DOM Level 3
- virtual const XMLCh* getActualEncoding() const;
- virtual void setActualEncoding(const XMLCh*
actualEncoding);
- virtual const XMLCh* getEncoding() const;
- virtual void setEncoding(const XMLCh* encoding);
- virtual bool getStandalone() const;
- virtual void setStandalone(bool standalone);
- virtual const XMLCh* getVersion() const;
- virtual void setVersion(const XMLCh* version);
+ virtual const XMLCh* getInputEncoding() const;
+ virtual const XMLCh* getXmlEncoding() const;
+ virtual bool getXmlStandalone() const;
+ virtual void setXmlStandalone(bool standalone);
+ virtual const XMLCh* getXmlVersion() const;
+ virtual void setXmlVersion(const XMLCh* version);
virtual const XMLCh* getDocumentURI() const;
virtual void setDocumentURI(const XMLCh* documentURI);
virtual bool getStrictErrorChecking() const;
virtual void setStrictErrorChecking(bool
strictErrorChecking);
virtual DOMNode* adoptNode(DOMNode* source);
virtual void normalizeDocument();
- virtual DOMConfiguration* getDOMConfiguration() const;
- virtual void setDOMConfiguration(DOMConfiguration *config);
+ virtual DOMConfiguration* getDOMConfig() const;
+ void setInputEncoding(const XMLCh* actualEncoding);
+ void setXmlEncoding(const XMLCh* encoding);
// helper functions to prevent storing userdata pointers on every node.
void* setUserData(DOMNodeImpl* n,
const XMLCh* key,
@@ -298,10 +297,10 @@
// data
// -----------------------------------------------------------------------
// New data introduced in DOM Level 3
- const XMLCh* fActualEncoding;
- const XMLCh* fEncoding;
- bool fStandalone;
- const XMLCh* fVersion;
+ const XMLCh* fInputEncoding;
+ const XMLCh* fXmlEncoding;
+ bool fXmlStandalone;
+ const XMLCh* fXmlVersion;
const XMLCh* fDocumentURI;
DOMConfiguration* fDOMConfiguration;
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp Thu Aug 4
04:56:47 2005
@@ -585,14 +585,15 @@
{
/**
- * The encoding to use when writing is determined as follows:
- * If the encoding attribute has been set, that value will be used.
- * If the encoding attribute is null or empty,
- * but the item to be written, or
- * the owner document specified encoding (ie. the "actualEncoding"
- * from the document) that value will be used.
- * If neither of the above provides an encoding name, a default encoding of
- * "UTF-8" will be used.
+ * When writing to a LSOutput, the encoding is found by looking at the
encoding information
+ * that is reachable through the LSOutput and the item to be written (or its
owner document) in this order:
+ *
+ * 1. LSOutput.encoding,
+ * 2. Document.inputEncoding,
+ * 3. Document.xmlEncoding.
+ *
+ * If no encoding is reachable through the above properties, a default
encoding of "UTF-8" will be used.
+ * If the specified encoding is not supported an "unsupported-encoding" fatal
error is raised.
*/
fEncodingUsed = gUTF8;
@@ -606,7 +607,7 @@
(const DOMDocument*)nodeToWrite :
nodeToWrite->getOwnerDocument();
if (docu)
{
- const XMLCh* tmpEncoding = docu->getEncoding();
+ const XMLCh* tmpEncoding = docu->getInputEncoding();
if ( tmpEncoding && *tmpEncoding)
{
@@ -614,7 +615,7 @@
}
else
{
- tmpEncoding = docu->getActualEncoding();
+ tmpEncoding = docu->getXmlEncoding();
if ( tmpEncoding && *tmpEncoding)
{
@@ -650,7 +651,7 @@
(const DOMDocument*)nodeToWrite :
nodeToWrite->getOwnerDocument();
if (docu)
{
- fDocumentVersion = docu->getVersion();
+ fDocumentVersion = docu->getXmlVersion();
}
fErrorCount = 0;
@@ -793,13 +794,11 @@
//
if (getFeature(XML_DECLARATION)) {
- const XMLCh* versionNo = (docu->getVersion()) ?
docu->getVersion() : gXMLDecl_ver10;
- *fFormatter << gXMLDecl_VersionInfo << versionNo <<
gXMLDecl_separator;
-
- // use the encoding resolved in initSession()
+ // use the version and encoding resolved in initSession()
+ *fFormatter << gXMLDecl_VersionInfo << fDocumentVersion <<
gXMLDecl_separator;
*fFormatter << gXMLDecl_EncodingDecl << fEncodingUsed <<
gXMLDecl_separator;
- const XMLCh* st = (docu->getStandalone())? XMLUni::fgYesString
: XMLUni::fgNoString;
+ const XMLCh* st = (docu->getXmlStandalone())?
XMLUni::fgYesString : XMLUni::fgNoString;
*fFormatter << gXMLDecl_SDDecl << st << gXMLDecl_separator;
*fFormatter << gXMLDecl_endtag;
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMNormalizer.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMNormalizer.cpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMNormalizer.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMNormalizer.cpp Thu Aug 4 04:56:47
2005
@@ -143,8 +143,8 @@
void DOMNormalizer::normalizeDocument(DOMDocumentImpl *doc) {
fDocument = doc;
- fConfiguration = (DOMConfigurationImpl*)doc->getDOMConfiguration();
- DOMConfigurationImpl *dci =
(DOMConfigurationImpl*)fDocument->getDOMConfiguration();
+ fConfiguration = (DOMConfigurationImpl*)doc->getDOMConfig();
+ DOMConfigurationImpl *dci =
(DOMConfigurationImpl*)fDocument->getDOMConfig();
if(dci)
fErrorHandler = dci->getErrorHandler();
else
Modified: xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp (original)
+++ xerces/c/trunk/src/xercesc/parsers/AbstractDOMParser.cpp Thu Aug 4
04:56:47 2005
@@ -888,7 +888,7 @@
// set DOM error checking off
fDocument->setErrorChecking(false);
fDocument->setDocumentURI(fScanner->getLocator()->getSystemId());
-
fDocument->setActualEncoding(fScanner->getReaderMgr()->getCurrentEncodingStr());
+
fDocument->setInputEncoding(fScanner->getReaderMgr()->getCurrentEncodingStr());
}
@@ -1148,11 +1148,10 @@
, const XMLCh* const standalone
, const XMLCh* const actualEncStr)
{
- fDocument->setStandalone(XMLString::equals(XMLUni::fgYesString,
standalone));
-
- fDocument->setVersion(version);
- fDocument->setEncoding(encoding);
- fDocument->setActualEncoding(actualEncStr);
+ fDocument->setXmlStandalone(XMLString::equals(XMLUni::fgYesString,
standalone));
+ fDocument->setXmlVersion(version);
+ fDocument->setXmlEncoding(encoding);
+ fDocument->setInputEncoding(actualEncStr);
}
// ---------------------------------------------------------------------------
Modified: xerces/c/trunk/tests/src/DOM/Normalizer/Normalizer.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/tests/src/DOM/Normalizer/Normalizer.cpp?rev=227349&r1=227348&r2=227349&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/DOM/Normalizer/Normalizer.cpp (original)
+++ xerces/c/trunk/tests/src/DOM/Normalizer/Normalizer.cpp Thu Aug 4 04:56:47
2005
@@ -370,10 +370,9 @@
//check error conditions
XERCES_STD_QUALIFIER cout << "error conditions" << XERCES_STD_QUALIFIER
endl;
- DOMConfigurationImpl *cImpl = new ((DOMDocumentImpl*)doc)
DOMConfigurationImpl();
- ((DOMDocumentImpl*)doc)->setDOMConfiguration(cImpl);
- cImpl->setErrorHandler(normalizer);
- cImpl->setParameter(X("namespaces"), true);
+ DOMConfiguration *conf = doc->getDOMConfig();
+ conf->setParameter(XMLUni::fgDOMErrorHandler, normalizer);
+ conf->setParameter(XMLUni::fgDOMNamespaces, true);
DOMElement *level1Node = doc->createElement(X("level1Node"));
docFirstElement->appendChild(level1Node);
@@ -396,7 +395,7 @@
doc->normalizeDocument();
normalizer->serializeNode(doc);
- cImpl->setParameter(X("comments"), false);
+ conf->setParameter(XMLUni::fgDOMComments, false);
docFirstElement->appendChild(comment);
doc->normalizeDocument();
normalizer->serializeNode(doc);
@@ -408,7 +407,7 @@
doc->normalizeDocument();
normalizer->serializeNode(doc);
- cImpl->setParameter(X("cdata-sections"), false);
+ conf->setParameter(XMLUni::fgDOMCDATASections, false);
docFirstElement->appendChild(cData);
doc->normalizeDocument();
normalizer->serializeNode(doc);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]