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