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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to