You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2005/02/23 20:07:59 UTC

cvs commit: xml-xerces/c/samples/PSVIWriter PSVIUni.cpp PSVIUni.hpp PSVIWriter.cpp PSVIWriterHandlers.cpp PSVIWriterHandlers.hpp

cargilld    2005/02/23 11:07:59

  Modified:    c/src/xercesc/validators/datatype
                        DatatypeValidatorFactory.cpp
               c/samples/PSVIWriter PSVIUni.cpp PSVIUni.hpp PSVIWriter.cpp
                        PSVIWriterHandlers.cpp PSVIWriterHandlers.hpp
  Log:
  Various PSVI fixes from Mike Boos.
  
  Revision  Changes    Path
  1.31      +12 -2     xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
  
  Index: DatatypeValidatorFactory.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- DatatypeValidatorFactory.cpp	20 Oct 2004 15:19:07 -0000	1.30
  +++ DatatypeValidatorFactory.cpp	23 Feb 2005 19:07:59 -0000	1.31
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.31  2005/02/23 19:07:59  cargilld
  + * Various PSVI fixes from Mike Boos.
  + *
    * Revision 1.30  2004/10/20 15:19:07  knoaman
    * Allow option of initializing static data in XMLPlatformUtils::Initialize
    *
  @@ -879,9 +882,16 @@
           // Set PSVI information for Ordered, Numeric, Bounded & Finite
           datatypeValidator->setOrdered(baseValidator->getOrdered());
           datatypeValidator->setNumeric(baseValidator->getNumeric());
  +        RefHashTableOf<KVStringPair>* baseFacets = baseValidator->getFacets();
           if (facets  && 
  -            ((facets->get(SchemaSymbols::fgELT_MININCLUSIVE) || facets->get(SchemaSymbols::fgELT_MINEXCLUSIVE)) &&
  -             (facets->get(SchemaSymbols::fgELT_MAXINCLUSIVE) || facets->get(SchemaSymbols::fgELT_MAXEXCLUSIVE))))
  +            ((facets->get(SchemaSymbols::fgELT_MININCLUSIVE) || 
  +              facets->get(SchemaSymbols::fgELT_MINEXCLUSIVE) ||
  +              (baseFacets && (baseFacets->get(SchemaSymbols::fgELT_MININCLUSIVE) || 
  +                              baseFacets->get(SchemaSymbols::fgELT_MINEXCLUSIVE))))) &&
  +             (facets->get(SchemaSymbols::fgELT_MAXINCLUSIVE) || 
  +              facets->get(SchemaSymbols::fgELT_MAXEXCLUSIVE) || 
  +              (baseFacets && ((baseFacets->get(SchemaSymbols::fgELT_MAXINCLUSIVE) || 
  +                               baseFacets->get(SchemaSymbols::fgELT_MAXEXCLUSIVE))))))
           {
               datatypeValidator->setBounded(true);
           }
  
  
  
  1.4       +10 -5     xml-xerces/c/samples/PSVIWriter/PSVIUni.cpp
  
  Index: PSVIUni.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIUni.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PSVIUni.cpp	23 Sep 2004 21:24:02 -0000	1.3
  +++ PSVIUni.cpp	23 Feb 2005 19:07:59 -0000	1.4
  @@ -285,6 +285,11 @@
   	chLatin_p, chLatin_s, chLatin_v, chColon, chLatin_e, chLatin_l, chLatin_e, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chLatin_D, chLatin_e, chLatin_c, chLatin_l, chLatin_a, chLatin_r, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
   };
   
  +const XMLCh PSVIUni::fgFacetFixed[] =
  +{
  +	chLatin_p, chLatin_s, chLatin_v, chColon, chLatin_f, chLatin_i, chLatin_x, chLatin_e, chLatin_d, chNull
  +};
  +
   const XMLCh PSVIUni::fgFacets[] =
   {
   	chLatin_p, chLatin_s, chLatin_v, chColon, chLatin_f, chLatin_a, chLatin_c, chLatin_e, chLatin_t, chLatin_s, chNull
  @@ -300,11 +305,6 @@
   	chLatin_p, chLatin_s, chLatin_v, chColon, chLatin_f, chLatin_i, chLatin_n, chLatin_a, chLatin_l, chNull
   };
   
  -const XMLCh PSVIUni::fgFixed[] =
  -{
  -	chLatin_p, chLatin_s, chLatin_v, chColon, chLatin_f, chLatin_i, chLatin_x, chLatin_e, chLatin_d, chNull
  -};
  -
   const XMLCh PSVIUni::fgFundamentalFacets[] =
   {
   	chLatin_p, chLatin_s, chLatin_v, chColon, chLatin_f, chLatin_u, chLatin_n, chLatin_d, chLatin_a, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chLatin_a, chLatin_l, chLatin_F, chLatin_a, chLatin_c, chLatin_e, chLatin_t, chLatin_s, chNull
  @@ -795,6 +795,11 @@
   	chLatin_v, chLatin_a, chLatin_l, chLatin_i, chLatin_d, chNull
   };
   
  +const XMLCh PSVIUni::fgVCFixed[] =
  +{
  +	chLatin_f, chLatin_i, chLatin_x, chLatin_e, chLatin_d, chNull
  +};
  +
   const XMLCh PSVIUni::fgXMLChNull[] =
   {
   	chNull
  
  
  
  1.4       +3 -2      xml-xerces/c/samples/PSVIWriter/PSVIUni.hpp
  
  Index: PSVIUni.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIUni.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PSVIUni.hpp	23 Sep 2004 21:24:02 -0000	1.3
  +++ PSVIUni.hpp	23 Feb 2005 19:07:59 -0000	1.4
  @@ -83,9 +83,9 @@
       static const XMLCh fgDocumentLocation[];
       static const XMLCh fgElementDeclaration[];
       static const XMLCh fgFacets[];
  +    static const XMLCh fgFacetFixed[];
       static const XMLCh fgFields[];
  -    static const XMLCh fgFinal[];
  -    static const XMLCh fgFixed[];
  +    static const XMLCh fgFinal[];    
       static const XMLCh fgFundamentalFacets[];
       static const XMLCh fgIdentityConstraintCategory[];
       static const XMLCh fgIdentityConstraintDefinition[];
  @@ -186,6 +186,7 @@
       static const XMLCh fgUnique[];
       static const XMLCh fgUnknown[];
       static const XMLCh fgValid[];
  +    static const XMLCh fgVCFixed[];
       static const XMLCh fgXMLChNull[];
   
   	//PSVI Element Types (Shortened)
  
  
  
  1.7       +6 -0      xml-xerces/c/samples/PSVIWriter/PSVIWriter.cpp
  
  Index: PSVIWriter.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIWriter.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- PSVIWriter.cpp	12 Jan 2005 20:43:21 -0000	1.6
  +++ PSVIWriter.cpp	23 Feb 2005 19:07:59 -0000	1.7
  @@ -17,6 +17,9 @@
   //REVISIT
   /*
    * $Log$
  + * Revision 1.7  2005/02/23 19:07:59  cargilld
  + * Various PSVI fixes from Mike Boos.
  + *
    * Revision 1.6  2005/01/12 20:43:21  cargilld
    * Remove warning messages.
    *
  @@ -234,6 +237,9 @@
      	else
      		handler = new PSVIWriterHandlers(psviFormatter, errorFormatter);
   
  +    PSVIAdvancedHandler* advancedHandler = new PSVIAdvancedHandler(handler);
  +    parser->installAdvDocHandler(advancedHandler);
  +
   	parser->setPSVIHandler(handler);
       parser->setContentHandler(handler);
       parser->setLexicalHandler(handler);
  
  
  
  1.14      +17 -8     xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.cpp
  
  Index: PSVIWriterHandlers.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- PSVIWriterHandlers.cpp	12 Jan 2005 20:43:21 -0000	1.13
  +++ PSVIWriterHandlers.cpp	23 Feb 2005 19:07:59 -0000	1.14
  @@ -213,10 +213,6 @@
   	
   	writeOpen(PSVIUni::fgDocument, fAttrList);	
   	incIndent();
  -	sendElementValue(PSVIUni::fgCharacterEncodingScheme, fFormatter->getEncodingName());
  -	sendElementEmpty(PSVIUni::fgStandalone);
  -	sendElementValue(PSVIUni::fgVersion, PSVIUni::fgOnePointZero);
  -	
   	fElementChildren->push(false);
   }
   
  @@ -822,7 +818,7 @@
   				XSFacet* facet = facets->elementAt(facetCount);
   				sendIndentedElement(translateFacet(facet->getFacetKind()));
   				sendElementValue(PSVIUni::fgValue, facet->getLexicalFacetValue());
  -				sendElementValue(PSVIUni::fgFixed, translateBool(facet->isFixed()));
  +				sendElementValue(PSVIUni::fgFacetFixed, translateBool(facet->isFixed()));
   				processAnnotation(facet->getAnnotation());
   				sendUnindentedElement(translateFacet(facet->getFacetKind()));
   			}	
  @@ -835,7 +831,7 @@
   				for (unsigned int i=0; i < values->size(); i++) {
   					sendElementValue(PSVIUni::fgValue, values->elementAt(i));
   				}
  -				sendElementValue(PSVIUni::fgFixed, translateBool(multiFacet->isFixed()));
  +				sendElementValue(PSVIUni::fgFacetFixed, translateBool(multiFacet->isFixed()));
   				processAnnotations(multiFacet->getAnnotations());
   				sendUnindentedElement(translateFacet(multiFacet->getFacetKind()));
   			}	
  @@ -1356,7 +1352,7 @@
   		case XSConstants::VALUE_CONSTRAINT_DEFAULT :
   			return PSVIUni::fgDefault;
   		case XSConstants::VALUE_CONSTRAINT_FIXED :
  -			return PSVIUni::fgFixed;
  +			return PSVIUni::fgVCFixed;
   		default :
   			return PSVIUni::fgUnknown;
   	}
  @@ -1938,4 +1934,17 @@
   
       delete obj;
   
  -}
  \ No newline at end of file
  +}
  +
  +void PSVIAdvancedHandler::XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const autoEncodingStr)
  +{    
  +    if (encodingStr && *encodingStr)
  +        fWriterHandler->sendElementValue(PSVIUni::fgCharacterEncodingScheme, encodingStr);
  +    else
  +        fWriterHandler->sendElementValue(PSVIUni::fgCharacterEncodingScheme, autoEncodingStr);
  +    if (standaloneStr && *standaloneStr)
  +        fWriterHandler->sendElementValue(PSVIUni::fgStandalone, standaloneStr);
  +	else
  +        fWriterHandler->sendElementEmpty(PSVIUni::fgStandalone);
  +	fWriterHandler->sendElementValue(PSVIUni::fgVersion, versionStr);        
  +}
  
  
  
  1.10      +25 -0     xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.hpp
  
  Index: PSVIWriterHandlers.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- PSVIWriterHandlers.hpp	6 Dec 2004 11:55:37 -0000	1.9
  +++ PSVIWriterHandlers.hpp	23 Feb 2005 19:07:59 -0000	1.10
  @@ -48,6 +48,7 @@
   #include <xercesc/framework/psvi/XSTypeDefinition.hpp>
   #include <xercesc/framework/psvi/XSWildcard.hpp>
   #include <xercesc/framework/XMLFormatter.hpp>
  +#include <xercesc/framework/XMLDocumentHandler.hpp>
   #include <xercesc/dom/DOMElement.hpp>
   #include <xercesc/dom/DOMNamedNodeMap.hpp>
   #include <xercesc/util/ValueStackOf.hpp>
  @@ -107,6 +108,7 @@
       PSVIWriterHandlers(XMLFormatter* outputFormatter, XMLFormatter* errorFormatter = NULL);
       ~PSVIWriterHandlers();
       
  +    friend class PSVIAdvancedHandler;
       // -----------------------------------------------------------------------
       //  Convenience Utility
       // -----------------------------------------------------------------------
  @@ -278,6 +280,29 @@
   	RefVectorOf<AttrInfo>* fAttributesInfo;
   };
   
  +class PSVIAdvancedHandler: public XMLDocumentHandler {
  +public:
  +    PSVIAdvancedHandler(PSVIWriterHandlers* writerHandler) : XMLDocumentHandler(), fWriterHandler(writerHandler) {}
  +    ~PSVIAdvancedHandler() {}
  +    void docCharacters(const XMLCh* const, const unsigned int, const bool) {}
  +    void docComment(const XMLCh* const) {}
  +    void docPI(const XMLCh* const, const XMLCh* const) {}
  +    void endDocument() {}
  +    void endElement(const XMLElementDecl&, const unsigned int, const bool, const XMLCh* const) {}
  +    void endEntityReference(const   XMLEntityDecl&) {}
  +   
  +    void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {}
  +
  +    void resetDocument() {}
  +    void startDocument() {}
  +    void startElement(const XMLElementDecl&, const unsigned int, const XMLCh* const, const RefVectorOf<XMLAttr>&
  +                     ,const unsigned int, const bool, const bool) {}
  +    void startEntityReference(const XMLEntityDecl&) {};
  +
  +    void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const autoEncodingStr);    
  +private:
  +    PSVIWriterHandlers* fWriterHandler;
  +};
   
   #endif
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org