gareth      2003/03/31 07:41:56

  Modified:    c/src/xercesc/dom Makefile.in
               c/src/xercesc/dom/impl Makefile.in
  Added:       c/src/xercesc/dom DOMConfiguration.hpp
               c/src/xercesc/dom/impl DOMConfigurationImpl.cpp
                        DOMConfigurationImpl.hpp
  Log:
  Added DOMConfiguration class from DOM Level 3. Nothing uses this as yet and many 
required parameters will return false. Code by Caroline Rioux.
  
  Revision  Changes    Path
  1.13      +2 -1      xml-xerces/c/src/xercesc/dom/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/Makefile.in,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Makefile.in       29 Jan 2003 19:42:00 -0000      1.12
  +++ Makefile.in       31 Mar 2003 15:41:56 -0000      1.13
  @@ -85,6 +85,7 @@
        DOMCDATASection.hpp \
        DOMCharacterData.hpp \
        DOMComment.hpp \
  +        DOMConfiguration.hpp \
        DOMDocument.hpp \
        DOMDocumentRange.hpp \
        DOMDocumentTraversal.hpp \
  
  
  
  1.1                  xml-xerces/c/src/xercesc/dom/DOMConfiguration.hpp
  
  Index: DOMConfiguration.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation, and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.ibm.com .  For more information
   * on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  #if !defined(DOMCONFIGURATION_HPP)
  #define DOMCONFIGURATION_HPP
  
  
//------------------------------------------------------------------------------------
  //  Includes
  
//------------------------------------------------------------------------------------
  
  #include <xercesc/util/XMLString.hpp>
  
  XERCES_CPP_NAMESPACE_BEGIN
  
  /**
   *   The DOMConfiguration interface represents the configuration of
   *   a document  and  maintains  a  table of recognized parameters.
   *   using  the   configuration,   it   is   possible   to   change
   *   Document.normalizeDocument  behavior,  such  as replacing
   *   CDATASection   nodes   with   Text  nodes  or
   *   specifying  the  type  of the schema that must be used when the
   *   validation of the Document is requested. DOMConfiguration
   *   objects  are  also used in [DOM Level 3 Load and Save] in
   *   the DOMBuilder and DOMWriter interfaces.
   *
   *   The  DOMConfiguration  distinguish  two  types  of  parameters:
   *   boolean     (boolean    parameters)    and    DOMUserData
   *   (parameters). The names used by the DOMConfiguration object are
   *   defined  throughout  the  DOM Level 3 specifications. Names are
   *   case-insensitives.   To   avoid   possible   conflicts,   as  a
   *   convention,   names   referring   to   boolean  parameters  and
   *   parameters defined outside the DOM specification should be made
   *   unique.  Names  are  recommended  to  follow the XML name
   *   production   rule   but   it   is   not  enforced  by  the  DOM
   *   implementation.  DOM  Level 3 Core Implementations are required
   *   to  recognize  all boolean parameters and parameters defined in
   *   this  specification.  Each boolean parameter state or parameter
   *   value may then be supported or not by the implementation. Refer
   *   to  their  definition  to  know  if  a state or a value must be
   *   supported or not.
   *
   *   Note: Parameters are similar to features and properties used in
   *   SAX2 [SAX].
   *
   * Issue DOMConfiguration-1:
   *         Can we rename boolean parameters to "flags"?
   *
   * Issue DOMConfiguration-2:
   *         Are  boolean  parameters  and  parameters within the same
   *         scope for uniqueness? Which exception should be raised by
   *         setBooleanParameter("error-handler", true)?
   *
   *   The following list of parameters defined in the DOM:
   *
   * "error-handler"
   *         [required]
   *         A   DOMErrorHandler   object.   If   an   error  is
   *         encountered in the document, the implementation will call
   *         back  the  DOMErrorHandler  registered  using  this
   *         parameter.
   *         When  called, DOMError.relatedData will contain the
   *         closest   node   to  where  the  error  occured.  If  the
   *         implementation  is unable to determine the node where the
   *         error occurs, DOMError.relatedData will contain the
   *         Document  node.  Mutations  to  the  document  from
   *         within  an  error  handler  will result in implementation
   *         dependent behaviour.
   *
   *       Issue DOMConfiguration-4:
   *               Should   we   say  non  "readonly"  operations  are
   *               implementation dependent instead?
   *               Resolution:  Removed:  "or re-invoking a validation
   *               operation".
   *
   * "schema-type"
   *         [optional]
   *         A  DOMString  object containing an absolute URI and
   *         representing  the  type  of  the  schema language used to
   *         validate   a  document  against.  Note  that  no  lexical
   *         checking is done on the absolute URI.
   *         If  this  parameter  is  not  set, a default value may be
   *         provided  by  the  implementation,  based  on  the schema
   *         languages  supported  and  on the schema language used at
   *         load time.
   *
   *         Note:   For   XML   Schema  [XML  Schema  Part  1],
   *         applications must use the value
   *         "http://www.w3.org/2001/XMLSchema";.     For    XML    DTD
   *         [XML   1.0],   applications   must  use  the  value
   *         "http://www.w3.org/TR/REC-xml";.  Other  schema  languages
   *         are  outside  the  scope  of the W3C and therefore should
   *         recommend an absolute URI in order to use this method.
   *
   * "schema-location"
   *         [optional]
   *         A  DOMString  object  containing  a  list  of URIs,
   *         separated   by  white  spaces  (characters  matching  the
   *         nonterminal  production  S  defined  in section 2.3
   *         [XML  1.0]),  that  represents  the schemas against
   *         which  validation  should  occur.  The  types  of schemas
   *         referenced  in  this  list  must match the type specified
   *         with   schema-type,   otherwise   the   behaviour  of  an
   *         implementation  is  undefined.  If the schema type is XML
   *         Schema  [XML  Schema  Part  1], only one of the XML
   *         Schemas in the list can be with no namespace.
   *         If  validation  occurs  against a namespace aware schema,
   *         i.e.  XML  Schema,  and  the  targetNamespace of a schema
   *         (specified    using    this    property)    matches   the
   *         targetNamespace  of  a  schema  occurring in the instance
   *         document,  i.e  in  schemaLocation  attribute, the schema
   *         specified  by  the  user using this property will be used
   *         (i.e.,  in XML Schema the schemaLocation attribute in the
   *         instance  document  or  on  the  import  element  will be
   *         effectively ignored).
   *
   *         Note:  It is illegal to set the schema-location parameter
   *         if  the  schema-type  parameter  value  is not set. It is
   *         strongly  recommended that DOMInputSource.baseURI will be
   *         set,  so  that an implementation can successfully resolve
   *         any external entities referenced.
   *
   *   The  following list of boolean parameters (features) defined in
   *   the DOM:
   *
   * "canonical-form"
   *
   *       true
   *               [optional]
   *               Canonicalize  the  document  according to the rules
   *               specified  in [Canonical XML]. Note that this
   *               is  limited  to what can be represented in the DOM.
   *               In particular, there is no way to specify the order
   *               of the attributes in the DOM.
   *
   *             Issue normalizationFeature-14:
   *                     What  happen  to  other  features?  are  they
   *                     ignored? if yes, how do you know if a feature
   *                     is ignored?
   *
   *       false
   *               [required] (default)
   *               Do not canonicalize the document.
   *
   * "cdata-sections"
   *
   *       true
   *               [required] (default)
   *               Keep CDATASection nodes in the document.
   *
   *             Issue normalizationFeature-11:
   *                     Name  does not work really well in this case.
   *                     ALH     suggests     renaming     this     to
   *                     "cdata-sections".  It works for both load and
   *                     save.
   *                     Resolution:  Renamed as suggested. (Telcon 27
   *                     Jan 2002).
   *
   *       false
   *               [required]
   *               Transform  CDATASection nodes in the document
   *               into  Text  nodes. The new Text node is
   *               then combined with any adjacent Text node.
   *
   * "comments"
   *
   *       true
   *               [required] (default)
   *               Keep Comment nodes in the document.
   *
   *       false
   *               [required]
   *               Discard Comment nodes in the Document.
   *
   * "datatype-normalization"
   *
   *       true
   *               [required]
   *               Exposed normalized values in the tree.
   *
   *             Issue normalizationFeature-8:
   *                     We should define "datatype normalization".
   *                     Resolution:  DTD  normalization  always apply
   *                     because  it's  part  of  XML 1.0. Clarify the
   *                     spec. (Telcon 27 Jan 2002).
   *
   *       false
   *               [required] (default)
   *               Do not perform normalization on the tree.
   *
   * "discard-default-content"
   *
   *       true
   *               [required] (default)
   *               Use   whatever   information   available   to   the
   *               implementation (i.e. XML schema, DTD, the specified
   *               flag on Attr nodes, and so on) to decide what
   *               attributes  and content should be discarded or not.
   *               Note that the specified flag on Attr nodes in
   *               itself  is not always reliable, it is only reliable
   *               when  it  is set to false since the only case where
   *               it  can  be  set  to  false is if the attribute was
   *               created  by the implementation. The default content
   *               won't be removed if an implementation does not have
   *               any information available.
   *
   *             Issue normalizationFeature-2:
   *                     How  does  exactly  work?  What's the comment
   *                     about level 1 implementations?
   *                     Resolution:  Remove  "Level 1" (Telcon 16 Jan
   *                     2002).
   *
   *       false
   *               [required]
   *               Keep all attributes and all content.
   *
   * "entities"
   *
   *       true
   *               [required]
   *               Keep  EntityReference  and Entity nodes
   *               in the document.
   *
   *             Issue normalizationFeature-9:
   *                     How does that interact with
   *                     expand-entity-references?     ALH    suggests
   *                     consolidating  the  two  to  a single feature
   *                     called  "entity-references" that is used both
   *                     for load and save.
   *                     Resolution:  Consolidate both features into a
   *                     single  feature called 'entities'. (Telcon 27
   *                     Jan 2002).
   *
   *       false
   *               [required] (default)
   *               Remove  all  EntityReference and Entity
   *               nodes   from   the  document,  putting  the  entity
   *               expansions  directly  in  their  place.  Text
   *               nodes     are     into    "normal"    form.    Only
   *               EntityReference nodes to non-defined entities
   *               are kept in the document.
   *
   * "infoset"
   *
   *       true
   *               [required]
   *               Only  keep  in the document the information defined
   *               in  the  XML Information Set [XML Information
   *               set].
   *               This   forces  the  following  features  to  false:
   *               namespace-declarations,         validate-if-schema,
   *               entities, datatype-normalization, cdata-sections.
   *               This   forces   the  following  features  to  true:
   *               whitespace-in-element-content,            comments,
   *               namespaces.
   *               Other  features  are  not  changed unless explicity
   *               specified in the description of the features.
   *               Note  that  querying  this  feature with getFeature
   *               returns   true  only  if  the  individual  features
   *               specified above are appropriately set.
   *
   *             Issue normalizationFeature-12:
   *                     Name  doesn't  work  well  here. ALH suggests
   *                     renaming    this   to   limit-to-infoset   or
   *                     match-infoset, something like that.
   *                     Resolution:  Renamed 'infoset' (Telcon 27 Jan
   *                     2002).
   *
   *       false
   *               Setting infoset to false has no effect.
   *
   *             Issue normalizationFeature-13:
   *                     Shouldn't  we  change  this  to  setting  the
   *                     relevant options back to their default value?
   *                     Resolution:   No,   this   is   more  like  a
   *                     convenience  function, it's better to keep it
   *                     simple. (F2F 28 Feb 2002).
   *
   * "namespaces"
   *
   *       true
   *               [required] (default)
   *               Perform  the  namespace  processing  as  defined in
   *               [XML Namespaces].
   *
   *       false
   *               [optional]
   *               Do not perform the namespace processing.
   *
   * "namespace-declarations"
   *
   *       true
   *               [required] (default)
   *               Include namespace declaration attributes, specified
   *               or  defaulted  from  the  schema or the DTD, in the
   *               document.  See  also  the  section  Declaring
   *               Namespaces in [XML Namespaces].
   *
   *       false
   *               [required]
   *               Discard  all  namespace declaration attributes. The
   *               Namespace   prefixes  are  retained  even  if  this
   *               feature is set to false.
   *
   * "normalize-characters"
   *
   *       true
   *               [optional]
   *               Perform   the   W3C   Text   Normalization  of  the
   *               characters [CharModel] in the document.
   *
   *       false
   *               [required] (default)
   *               Do not perform character normalization.
   *
   * "split-cdata-sections"
   *
   *       true
   *               [required] (default)
   *               Split  CDATA  sections containing the CDATA section
   *               termination  marker  ']]>'. When a CDATA section is
   *               split a warning is issued.
   *
   *       false
   *               [required]
   *               Signal an error if a CDATASection contains an
   *               unrepresentable character.
   *
   * "validate"
   *
   *       true
   *               [optional]
   *               Require  the  validation against a schema (i.e. XML
   *               schema,  DTD,  any  other type or representation of
   *               schema)  of  the document as it is being normalized
   *               as defined by [XML 1.0]. If validation errors
   *               are  found,  or  no  schema  was  found,  the error
   *               handler  is  notified.  Note  also  that normalized
   *               values  will  not  be exposed to the schema in used
   *               unless the feature datatype-normalization is true.
   *
   *               Note:  validate-if-schema and validate are mutually
   *               exclusive, setting one of them to true will set the
   *               other one to false.
   *
   *       false
   *               [required] (default)
   *               Only  XML  1.0  non-validating  processing  must be
   *               done.  Note  that  validation might still happen if
   *               validate-if-schema is true.
   *
   * "validate-if-schema"
   *
   *       true
   *               [optional]
   *               Enable  validation  only  if  a declaration for the
   *               document  element  can  be  found (independently of
   *               where  it  is  found,  i.e. XML schema, DTD, or any
   *               other   type   or  representation  of  schema).  If
   *               validation  errors  are found, the error handler is
   *               notified. Note also that normalized values will not
   *               be exposed to the schema in used unless the feature
   *               datatype-normalization is true.
   *
   *               Note:  validate-if-schema and validate are mutually
   *               exclusive, setting one of them to true will set the
   *               other one to false.
   *
   *       false
   *               [required] (default)
   *               No  validation  should be performed if the document
   *               has  a  schema.  Note  that  validation  must still
   *               happen if validate is true.
   *
   * "whitespace-in-element-content"
   *
   *       true
   *               [required] (default)
   *               Keep all white spaces in the document.
   *
   *             Issue normalizationFeature-15:
   *                     How   does   this   feature   interact   with
   *                     "validate" and
   *                     Text.isWhitespaceInElementContent.
   *                     Resolution:  issue  no  longer  relevant (f2f
   *                     october 2002).
   *
   *       false
   *               [optional]
   *               Discard   white  space  in  element  content  while
   *               normalizing.  The implementation is expected to use
   *               the isWhitespaceInElementContent flag on Text
   *               nodes to determine if a text node should be written
   *               out or not.
   *
   *   The  resolutions  of  entities  is done using Document.baseURI.
   *   However,  when  the  features "LS-Load" or "LS-Save" defined in
   *   [DOM  Level  3  Load  and  Save] are supported by the DOM
   *   implementation,  the  parameter  "entity-resolver"  can also be
   *   used  on  DOMConfiguration  objects  attached to Document
   *   nodes. If this parameter is set,
   *   Document.normalizeDocument   will   invoke   the   entity
   *   resolver instead of using Document.baseURI.
   */
  class CDOM_EXPORT DOMConfiguration
  {
  protected:
      
//-----------------------------------------------------------------------------------
      //  Constructor
      
//-----------------------------------------------------------------------------------
      /** @name Hidden constructors */
      //@{
      DOMConfiguration() {};
      DOMConfiguration(const DOMConfiguration &) {};
      DOMConfiguration & operator = (const DOMConfiguration &) {return *this;};
      //@}
  
  public:
  
      // -----------------------------------------------------------------------
      //  Setter methods
      // -----------------------------------------------------------------------
      
      /** Set the value of a parameter. 
       * @param name The name of the parameter to set.
       * @param value The new value or null if the user wishes to unset the 
       * parameter. While the type of the value parameter is defined as 
       * <code>DOMUserData</code>, the object type must match the type defined
       * by the definition of the parameter. For example, if the parameter is 
       * "error-handler", the value must be of type <code>DOMErrorHandler</code>
       * @exception DOMException (NOT_SUPPORTED_ERR) Raised when the 
       * parameter name is recognized but the requested value cannot be set.
       * @exception DOMException (NOT_FOUND_ERR) Raised when the 
       * parameter name is not recognized.
       * @since DOM level 3
       **/
      virtual void setParameter(const XMLCh* name, const void* value) = 0;
  
      // -----------------------------------------------------------------------
      //  Getter methods
      // -----------------------------------------------------------------------
      /** Return the value of a parameter if known. 
       * @param name The name of the parameter.
       * @return The current object associated with the specified parameter or 
       * null if no object has been associated or if the parameter is not 
       * supported.
       * @exception DOMException (NOT_FOUND_ERR) Raised when the i
       * boolean parameter 
       * name is not recognized.
       * @since DOM level 3
       **/    
      virtual const void* getParameter(const XMLCh* name) const = 0;
  
                                          
      // -----------------------------------------------------------------------
      //  Query methods
      // -----------------------------------------------------------------------
  
      /** Check if setting a parameter to a specific value is supported. 
       * @param name The name of the parameter to check.
       * @param value An object. if null, the returned value is true.
       * @return true if the parameter could be successfully set to the specified 
       * value, or false if the parameter is not recognized or the requested value 
       * is not supported. This does not change the current value of the parameter 
       * itself.
       * @since DOM level 3
       **/
      virtual bool canSetParameter(const XMLCh* name, const void* value) const = 0;
  };
        
  XERCES_CPP_NAMESPACE_END
  
  #endif 
  
  /**
   * End of file DOMConfiguration.hpp
   */
  
  
  
  1.9       +3 -1      xml-xerces/c/src/xercesc/dom/impl/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/Makefile.in,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Makefile.in       29 Jan 2003 19:42:01 -0000      1.8
  +++ Makefile.in       31 Mar 2003 15:41:56 -0000      1.9
  @@ -90,6 +90,7 @@
        DOMCharacterDataImpl.hpp \
        DOMChildNode.hpp \
        DOMCommentImpl.hpp \
  +        DOMConfigurationImpl.hpp \
        DOMDeepNodeListImpl.hpp \
        DOMDeepNodeListPool.hpp \
        DOMDocumentFragmentImpl.hpp \
  @@ -131,6 +132,7 @@
        DOMCharacterDataImpl.$(TO) \
        DOMChildNode.$(TO) \
        DOMCommentImpl.$(TO) \
  +        DOMConfigurationImpl.$(TO) \
        DOMDeepNodeListImpl.$(TO) \
        DOMDocumentFragmentImpl.$(TO) \
        DOMDocumentImpl.$(TO) \
  
  
  
  1.1                  xml-xerces/c/src/xercesc/dom/impl/DOMConfigurationImpl.cpp
  
  Index: DOMConfigurationImpl.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  #include "DOMConfigurationImpl.hpp"
  #include <xercesc/dom/DOMErrorHandler.hpp>
  #include <xercesc/util/XMLString.hpp>
  #include <xercesc/util/XMLUniDefs.hpp>
  #include <xercesc/dom/DOMException.hpp>
  
  XERCES_CPP_NAMESPACE_BEGIN
  
  /* canonical-form */
  const XMLCh DOMConfigurationImpl::fgCANONICAL_FORM[] = { chLatin_c, chLatin_a, 
chLatin_n, chLatin_o, chLatin_n, chLatin_i, chLatin_c, chLatin_a, chLatin_l, chDash, 
chLatin_f, chLatin_o, chLatin_r, chLatin_m, chNull };
  
  /* cdata-sections */
  const XMLCh DOMConfigurationImpl::fgCDATA_SECTIONS[] = { chLatin_c, chLatin_d, 
chLatin_a, chLatin_t, chLatin_a, chDash, chLatin_s, chLatin_e, chLatin_c, chLatin_t, 
chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull };
  
  /* comments */
  const XMLCh DOMConfigurationImpl::fgCOMMENTS[] = { chLatin_c, chLatin_o, chLatin_m, 
chLatin_m, chLatin_e, chLatin_n, chLatin_t, chLatin_s, chNull };
  
  /* datatype-normalization */
  const XMLCh DOMConfigurationImpl::fgDATATYPE_NORMALIZATION[] = { chLatin_d, 
chLatin_a, chLatin_t, chLatin_a, chLatin_t, chLatin_y, chLatin_p, chLatin_e, chDash, 
chLatin_n, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_l, chLatin_i, 
chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull };
  
  /* discard-default-content */
  const XMLCh DOMConfigurationImpl::fgDISCARD_DEFAULT_CONTENT[] = { chLatin_d, 
chLatin_i, chLatin_s, chLatin_c, chLatin_a, chLatin_r, chLatin_d, chDash, chLatin_d, 
chLatin_e, chLatin_f, chLatin_a, chLatin_u, chLatin_l, chLatin_t, chDash, chLatin_c, 
chLatin_o, chLatin_n, chLatin_t, chLatin_e, chLatin_n, chLatin_t, chNull };
  
  /* entities */
  const XMLCh DOMConfigurationImpl::fgENTITIES[] = { chLatin_e, chLatin_n, chLatin_t, 
chLatin_i, chLatin_t, chLatin_i, chLatin_e, chLatin_s, chNull };
  
  /* infoset */
  const XMLCh DOMConfigurationImpl::fgINFOSET[] = { chLatin_i, chLatin_n, chLatin_f, 
chLatin_o, chLatin_s, chLatin_e, chLatin_t, chNull };
  
  /* namespaces */
  const XMLCh DOMConfigurationImpl::fgNAMESPACES[] = { chLatin_n, chLatin_a, 
chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, 
chLatin_s, chNull };
  
  /* namespace-declarations */
  const XMLCh DOMConfigurationImpl::fgNAMESPACE_DECLARATIONS[] = { chLatin_n, 
chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, 
chLatin_e, chDash, chLatin_d, chLatin_e, chLatin_c, chLatin_l, chLatin_a, chLatin_r, 
chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull };
  
  /* normalize-characters */
  const XMLCh DOMConfigurationImpl::fgNORMALIZE_CHARACTERS[] = { chLatin_n, chLatin_o, 
chLatin_r, chLatin_m, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, 
chLatin_c, chLatin_h, chLatin_a, chLatin_r, chLatin_a, chLatin_c, chLatin_t, 
chLatin_e, chLatin_r, chLatin_s, chNull };
  
  /* split-cdata-sections */
  const XMLCh DOMConfigurationImpl::fgSPLIT_CDATA_SECTIONS[] = { chLatin_s, chLatin_p, 
chLatin_l, chLatin_i, chLatin_t, chDash, chLatin_c, chLatin_d, chLatin_a, chLatin_t, 
chLatin_a, chDash, chLatin_s, chLatin_e, chLatin_c, chLatin_t, chLatin_i, chLatin_o, 
chLatin_n, chLatin_s, chNull };
  
  /* validate */
  const XMLCh DOMConfigurationImpl::fgVALIDATE[] = { chLatin_v, chLatin_a, chLatin_l, 
chLatin_i, chLatin_d, chLatin_a, chLatin_t, chLatin_e, chNull };
  
  /* validate-if-schema */
  const XMLCh DOMConfigurationImpl::fgVALIDATE_IF_SCHEMA[] = { chLatin_v, chLatin_a, 
chLatin_l, chLatin_i, chLatin_d, chLatin_a, chLatin_t, chLatin_e, chDash, chLatin_i, 
chLatin_f, chDash, chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, 
chNull };
  
  /* whitespace-in-element-content */
  const XMLCh DOMConfigurationImpl::fgWHITESPACE_IN_ELEMENT_CONTENT[] = { chLatin_w, 
chLatin_h, chLatin_i, chLatin_t, chLatin_e, chLatin_s, chLatin_p, chLatin_a, 
chLatin_c, chLatin_e, chDash, chLatin_i, chLatin_n, chDash, chLatin_e, chLatin_l, 
chLatin_e, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chDash, chLatin_c, chLatin_o, 
chLatin_n, chLatin_t, chLatin_e, chLatin_n, chLatin_t, chNull };
  
  /* error-handler */
  const XMLCh DOMConfigurationImpl::fgERROR_HANDLER[] = { chLatin_e, chLatin_r, 
chLatin_r, chLatin_o, chLatin_r, chDash, chLatin_h, chLatin_a, chLatin_n, chLatin_d, 
chLatin_l, chLatin_e, chLatin_r, chNull };
  
  /* schema-type */
  const XMLCh DOMConfigurationImpl::fgSCHEMA_TYPE[] = { chLatin_s, chLatin_c, 
chLatin_h, chLatin_e, chLatin_m, chLatin_a, chDash, chLatin_t, chLatin_y, chLatin_p, 
chLatin_e, chNull };
  
  /* schema-location */
  const XMLCh DOMConfigurationImpl::fgSCHEMA_LOCATION[] = { chLatin_s, chLatin_c, 
chLatin_h, chLatin_e, chLatin_m, chLatin_a, chDash, chLatin_l, chLatin_o, chLatin_c, 
chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull };
  
  
  DOMConfigurationImpl::DOMConfigurationImpl(): featureValues(0x0000), fTrue(new 
bool(true)), 
                                                fFalse(new bool(false)),
                                                fErrorHandler(0), fSchemaType(0), 
fSchemaLocation(0) {
  }
  
  DOMConfigurationImpl::~DOMConfigurationImpl() {
      delete (bool*)fTrue;
      delete (bool*)fFalse;
  }
                                          
  void DOMConfigurationImpl::setParameter(const XMLCh* name, const void* value) {
  
      if(!canSetParameter(name, value)) {
          throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0);
      }
  
      bool isBooleanParameter = true;
      DOMConfigurationFeature whichFlag;
      try {
          whichFlag = getFeatureFlag(name);
      } catch(DOMException e) {
          // must not be a boolean parameter
          isBooleanParameter = false;
      }
  
      if(isBooleanParameter) {
          if(*((bool*)value)) {
              featureValues |= whichFlag;
          } else {
              featureValues &= ~whichFlag;
          }
      } else {
          if(XMLString::equals(name, fgERROR_HANDLER)) {
              fErrorHandler = (DOMErrorHandler*)value;
          } else if (XMLString::equals(name, fgSCHEMA_TYPE)) {
              fSchemaType = (XMLCh*)value;
          } else if (XMLString::equals(name, fgSCHEMA_LOCATION)) {
              fSchemaLocation = (XMLCh*)value;
          } else {  // canSetParameter above should take care of this case
              throw DOMException(DOMException::NOT_FOUND_ERR, 0);
          }
      }
  
  }
  
  // --------------------------------------
  // Getter Methods
  // --------------------------------------
  
  const void* DOMConfigurationImpl::getParameter(const XMLCh* name) const {
      bool isBooleanParameter = true;
      DOMConfigurationFeature whichFlag;
      try {
          whichFlag = getFeatureFlag(name);
      } catch (DOMException e) {
          // must not be a boolean parameter
          isBooleanParameter = false;
      }
  
      if(isBooleanParameter){
          if(featureValues & whichFlag) {
              return fTrue;
          } else {
              return fFalse;
          }
      } else {
          if(XMLString::equals(name, fgERROR_HANDLER)) {
              return fErrorHandler;
          } else if (XMLString::equals(name, fgSCHEMA_TYPE)) {
              return fSchemaType;
          } else if (XMLString::equals(name, fgSCHEMA_LOCATION)) {
              return fSchemaLocation;
          } else {
              throw DOMException(DOMException::NOT_FOUND_ERR, 0);
          }
      }
  
  }
  
  // -----------------------------------------
  // Query Methods
  // -----------------------------------------
  
  bool DOMConfigurationImpl::canSetParameter(const XMLCh* name, const void* value) 
const {
  
      /**
       * canSetParameter(name, value) returns false in two conditions:
       *  1) if a [required] feature has no supporting code, then return false in 
       *     both the true and false outcomes (This is in order to be either fully 
       *     spec compliant, or not at all)
       *  2) if an [optional] feature has no supporting code, then return false
       **/ 
      
      // if value is null, return true
      if(value == 0) return true;
  
      bool isBooleanParameter = true;
      bool booleanValue = false;
      DOMConfigurationFeature whichFlag;
      try {
          whichFlag = getFeatureFlag(name);
          booleanValue = *((bool*)value);
      } catch (DOMException e) {
          // must not be a boolean parameter
          isBooleanParameter = false;
      }
      
      if(isBooleanParameter) {
          switch (whichFlag) {
              case FEATURE_CANONICAL_FORM: 
                  if(booleanValue) return false;      // optional //
                  else             return true;       // required // 
                
              case FEATURE_CDATA_SECTIONS: 
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_COMMENTS:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_DATATYPE_NORMALIZATION:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_DISCARD_DEFAULT_CONTENT:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_ENTITIES:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_INFOSET:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return false;      // no effect//
                   */
              case FEATURE_NAMESPACES:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
               
                  /* if(booleanValue) return true;       // required //
                   * else             return false;      // optional //
                   */
              case FEATURE_NAMESPACE_DECLARATIONS:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_NORMALIZE_CHARACTERS:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return false;      // optional //
                   * else             return true;       // required //
                   */
              case FEATURE_SPLIT_CDATA_SECTIONS:  
                  // code that supports this feature is not yet implemented. 
                  // Return false regardless. Revisit: uncomment code below 
                  // when this feature is supported
                  return false;
                
                  /* if(booleanValue) return true;       // required //
                   * else             return true;       // required //
                   */
              case FEATURE_VALIDATE:  
                  if(booleanValue) return false;      // optional //
                  else             return true;       // required //
                
              case FEATURE_VALIDATE_IF_SCHEMA:  
                  if(booleanValue) return false;      // optional //
                  else             return true;       // required //
                
              case FEATURE_WHITESPACE_IN_ELEMENT_CONTENT:  
                  if(booleanValue) return true;       // required //
                  else             return false;      // optional //
                
              default: return false; // should never be here
          }
      } else {
          if(XMLString::equals(name, fgERROR_HANDLER)) {
              return true;                               // required //
          } else if (XMLString::equals(name, fgSCHEMA_TYPE)) {
              return false;                            // optional //
          } else if (XMLString::equals(name, fgSCHEMA_LOCATION)) {
              return false;                            // optional //
          } 
      }
      return false;
  }
  
  // -------------------------------------------
  // Impl methods
  // -------------------------------------------
  
  DOMConfigurationImpl::DOMConfigurationFeature 
DOMConfigurationImpl::getFeatureFlag(const XMLCh* name) const {
      if(XMLString::equals(name, fgCANONICAL_FORM)) {
          return FEATURE_CANONICAL_FORM;
      } else if (XMLString::equals(name, fgCDATA_SECTIONS )) {
          return FEATURE_CDATA_SECTIONS;
      } else if (XMLString::equals(name, fgCOMMENTS)) {
          return FEATURE_COMMENTS;
      } else if (XMLString::equals(name, fgDATATYPE_NORMALIZATION))  {
          return FEATURE_DATATYPE_NORMALIZATION;
      } else if (XMLString::equals(name, fgDISCARD_DEFAULT_CONTENT)) {
          return FEATURE_DISCARD_DEFAULT_CONTENT;
      } else if (XMLString::equals(name, fgENTITIES)) {
          return FEATURE_ENTITIES;
      } else if (XMLString::equals(name, fgINFOSET))  {
          return FEATURE_INFOSET;
      } else if (XMLString::equals(name, fgNAMESPACES)) {
          return FEATURE_NAMESPACES;
      } else if (XMLString::equals(name, fgNAMESPACE_DECLARATIONS)) {
          return FEATURE_NAMESPACE_DECLARATIONS;
      } else if (XMLString::equals(name, fgNORMALIZE_CHARACTERS)) {
          return FEATURE_NORMALIZE_CHARACTERS;
      } else if (XMLString::equals(name, fgSPLIT_CDATA_SECTIONS)) {
          return FEATURE_SPLIT_CDATA_SECTIONS;
      } else if (XMLString::equals(name, fgVALIDATE)) {
          return FEATURE_VALIDATE;
      } else if (XMLString::equals(name, fgVALIDATE_IF_SCHEMA)) {
          return FEATURE_VALIDATE_IF_SCHEMA;
      } else if (XMLString::equals(name, fgWHITESPACE_IN_ELEMENT_CONTENT)) {
          return FEATURE_WHITESPACE_IN_ELEMENT_CONTENT;
      } else {
          throw DOMException(DOMException::NOT_FOUND_ERR, 0);
      }
          
  }
  
  const DOMErrorHandler* DOMConfigurationImpl::getErrorHandler() const {
      return fErrorHandler;
  }
  
  const XMLCh* DOMConfigurationImpl::getSchemaType() const {
      return fSchemaType;
  }
  
  const XMLCh* DOMConfigurationImpl::getSchemaLocation() const {
      return fSchemaLocation;
  }
  
  void DOMConfigurationImpl::setErrorHandler(const DOMErrorHandler *erHandler) {
      fErrorHandler = erHandler;
  }
  
  void DOMConfigurationImpl::setSchemaType(const XMLCh* st) {
      fSchemaType = st;
  }
  
  void DOMConfigurationImpl::setSchemaLocation(const XMLCh* sl) {
      fSchemaLocation = sl;
  }
  
  
  XERCES_CPP_NAMESPACE_END
  
  
  /**
   * End of file DOMConfigurationImpl.cpp
   */
  
  
  
  1.1                  xml-xerces/c/src/xercesc/dom/impl/DOMConfigurationImpl.hpp
  
  Index: DOMConfigurationImpl.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation, and was
   * originally based on software copyright (c) 2001, International
   * Business Machines, Inc., http://www.ibm.com .  For more information
   * on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  //
  //  This file is part of the internal implementation of the C++ XML DOM.
  //  It should NOT be included or used directly by application programs.
  //
  //  Applications should include the file <xercesc/dom/DOM.hpp> for the entire
  //  DOM API, or xercesc/dom/DOM*.hpp for individual DOM classes, where the class
  //  name is substituded for the *.
  //
  
  
  
  #if !defined(DOMCONFIGURATIONIMPL_HPP)
  #define DOMCONFIGURATIONIMPL_HPP
  
  
//------------------------------------------------------------------------------------
  //  Includes
  
//------------------------------------------------------------------------------------
  #include <xercesc/dom/DOMConfiguration.hpp>
  #include <xercesc/dom/DOMErrorHandler.hpp>
  #include <xercesc/util/XMLString.hpp>
  
  XERCES_CPP_NAMESPACE_BEGIN
  
  class DOMDocumentImpl;
  
  class CDOM_EXPORT DOMConfigurationImpl : public DOMConfiguration
  {
  protected:
      //unimplemented
      DOMConfigurationImpl(const DOMConfiguration &) {};
      DOMConfigurationImpl & operator = (const DOMConfiguration &) {return *this;};
  
  
  public:
  
      
//-----------------------------------------------------------------------------------
      //  Constructor
      
//-----------------------------------------------------------------------------------
      DOMConfigurationImpl();
      ~DOMConfigurationImpl();
      
      enum DOMConfigurationFeature {
          FEATURE_CANONICAL_FORM                = 0x0001,
          FEATURE_CDATA_SECTIONS                = 0x0002,
          FEATURE_COMMENTS                      = 0x0004,
          FEATURE_DATATYPE_NORMALIZATION        = 0x0008,
          FEATURE_DISCARD_DEFAULT_CONTENT       = 0x0010, 
          FEATURE_ENTITIES                      = 0x0020,  
          FEATURE_INFOSET                       = 0x0040, 
          FEATURE_NAMESPACES                    = 0x0080, 
          FEATURE_NAMESPACE_DECLARATIONS        = 0x0100, 
          FEATURE_NORMALIZE_CHARACTERS          = 0x0200, 
          FEATURE_SPLIT_CDATA_SECTIONS          = 0x0400, 
          FEATURE_VALIDATE                      = 0x0800, 
          FEATURE_VALIDATE_IF_SCHEMA            = 0x1000, 
          FEATURE_WHITESPACE_IN_ELEMENT_CONTENT = 0x2000
      };
  
      unsigned short featureValues;
  
      // -----------------------------------------------------------------------
      //  Setter methods
      // -----------------------------------------------------------------------
  
      void setParameter(const XMLCh* name, const void* value);
  
      // -----------------------------------------------------------------------
      //  Getter methods
      // -----------------------------------------------------------------------
      
      const void* getParameter(const XMLCh* name) const;
  
                                          
      // -----------------------------------------------------------------------
      //  Query methods
      // -----------------------------------------------------------------------
  
      bool canSetParameter(const XMLCh* name, const void* value) const;
  
  
      // ---------------------------------------------------------------------------
      // Impl specific methods
      // ---------------------------------------------------------------------------
      
      /* specific get and set methods for non-boolean parameters
       * */
  
      const DOMErrorHandler* getErrorHandler() const;
  
      const XMLCh* getSchemaType() const;
  
      const XMLCh* getSchemaLocation() const;
  
      void setErrorHandler(const DOMErrorHandler *erHandler);
  
      void setSchemaType(const XMLCh* st);
  
      void setSchemaLocation(const XMLCh* sl);
      
      // --------------------------------------
      // static consts names 
      // --------------------------------------
      static const XMLCh fgCANONICAL_FORM[];
      static const XMLCh fgCDATA_SECTIONS[];
      static const XMLCh fgCOMMENTS[];
      static const XMLCh fgDATATYPE_NORMALIZATION[];
      static const XMLCh fgDISCARD_DEFAULT_CONTENT[];
      static const XMLCh fgENTITIES[];
      static const XMLCh fgINFOSET[];
      static const XMLCh fgNAMESPACES[];
      static const XMLCh fgNAMESPACE_DECLARATIONS[];
      static const XMLCh fgNORMALIZE_CHARACTERS[];
      static const XMLCh fgSPLIT_CDATA_SECTIONS[];
      static const XMLCh fgVALIDATE[];
      static const XMLCh fgVALIDATE_IF_SCHEMA[];
      static const XMLCh fgWHITESPACE_IN_ELEMENT_CONTENT[];
  
      static const XMLCh fgERROR_HANDLER[];
      static const XMLCh fgSCHEMA_TYPE[];
      static const XMLCh fgSCHEMA_LOCATION[];
  
  private:
      // implements a simple map between the name and its enum value
      DOMConfigurationFeature getFeatureFlag(const XMLCh* name) const;
  
      // the error handler
      const DOMErrorHandler* fErrorHandler;
      
      // the schema type
      const XMLCh* fSchemaType;
      
      // the schema location
      const XMLCh* fSchemaLocation;
  
      const bool* fFalse;
      const bool* fTrue;
  };
  
  XERCES_CPP_NAMESPACE_END
  
  #endif
  
  /**
   * End of file DOMConfigurationImpl.hpp
   */
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to