You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2009/08/14 15:18:10 UTC
svn commit: r804211 - in /xerces/c/trunk/tests/src/XSTSHarness:
XSTSHarness.cpp XSTSHarness.hpp XSTSHarnessHandlers.cpp
XSTSHarnessHandlers.hpp
Author: amassari
Date: Fri Aug 14 13:18:09 2009
New Revision: 804211
URL: http://svn.apache.org/viewvc?rev=804211&view=rev
Log:
Use an entity resolver to feed the grammar for the XML namespace
Modified:
xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.cpp
xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.hpp
xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.cpp
xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.hpp
Modified: xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.cpp?rev=804211&r1=804210&r2=804211&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.cpp (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.cpp Fri Aug 14 13:18:09 2009
@@ -37,6 +37,7 @@
#include <fstream.h>
#endif
#include <xercesc/util/OutOfMemoryException.hpp>
+#include <xercesc/framework/MemBufInputSource.hpp>
static XMLCh sz_XMLTestSuiteRoot[]={ chLatin_T, chLatin_E, chLatin_S, chLatin_T, chLatin_S, chLatin_U, chLatin_I, chLatin_T, chLatin_E, chNull };
const XMLCh dummy[]={ chLatin_f, chLatin_i, chLatin_l, chLatin_e, chColon, chForwardSlash, chForwardSlash,
@@ -150,6 +151,56 @@
/////////////////////////////////////////////////////////////////////
+InputSource* BaseEntityResolver::resolveEntity(XMLResourceIdentifier* resourceIdentifier)
+{
+ if(XMLString::equals(resourceIdentifier->getNameSpace(), XMLUni::fgXMLURIName))
+ {
+ static const char* xmlXsd= "<?xml version='1.0'?>"
+ "<xs:schema targetNamespace='http://www.w3.org/XML/1998/namespace' "
+ " xmlns:xs='http://www.w3.org/2001/XMLSchema' "
+ " xml:lang='en'>"
+ ""
+ " <xs:attribute name='lang'>"
+ " <xs:simpleType>"
+ " <xs:union memberTypes='xs:language'>"
+ " <xs:simpleType>"
+ " <xs:restriction base='xs:string'>"
+ " <xs:enumeration value=''/>"
+ " </xs:restriction>"
+ " </xs:simpleType>"
+ " </xs:union>"
+ " </xs:simpleType>"
+ " </xs:attribute>"
+ ""
+ " <xs:attribute name='space'>"
+ " <xs:simpleType>"
+ " <xs:restriction base='xs:NCName'>"
+ " <xs:enumeration value='default'/>"
+ " <xs:enumeration value='preserve'/>"
+ " </xs:restriction>"
+ " </xs:simpleType>"
+ " </xs:attribute>"
+ ""
+ " <xs:attribute name='base' type='xs:anyURI'>"
+ " </xs:attribute>"
+ ""
+ " <xs:attribute name='id' type='xs:ID'>"
+ " </xs:attribute>"
+ ""
+ " <xs:attributeGroup name='specialAttrs'>"
+ " <xs:attribute ref='xml:base'/>"
+ " <xs:attribute ref='xml:lang'/>"
+ " <xs:attribute ref='xml:space'/>"
+ " <xs:attribute ref='xml:id'/>"
+ " </xs:attributeGroup>"
+ ""
+ "</xs:schema>";
+ return new MemBufInputSource((XMLByte*)xmlXsd, strlen(xmlXsd), "");
+ }
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////
class RootExtractor : public DefaultHandler
{
Modified: xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.hpp?rev=804211&r1=804210&r2=804211&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.hpp (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/XSTSHarness.hpp Fri Aug 14 13:18:09 2009
@@ -38,6 +38,7 @@
#include <xercesc/sax2/SAX2XMLReader.hpp>
#include <xercesc/sax2/DefaultHandler.hpp>
#include <xercesc/util/XMLURL.hpp>
+#include <xercesc/util/XMLEntityResolver.hpp>
XERCES_CPP_NAMESPACE_USE
@@ -170,4 +171,13 @@
XMLBuffer fErrorText;
};
+class BaseEntityResolver : public XMLEntityResolver
+{
+public:
+ BaseEntityResolver() {};
+
+ virtual InputSource* resolveEntity(XMLResourceIdentifier* resourceIdentifier);
+
+};
+
#endif
Modified: xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.cpp?rev=804211&r1=804210&r2=804211&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.cpp (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.cpp Fri Aug 14 13:18:09 2009
@@ -28,6 +28,7 @@
#include <xercesc/sax/SAXException.hpp>
#include <xercesc/validators/common/Grammar.hpp>
#include <xercesc/util/OutOfMemoryException.hpp>
+#include <xercesc/parsers/SAX2XMLReaderImpl.hpp>
// ---------------------------------------------------------------------------
// XSTSHarnessHandlers: Constructors and Destructor
@@ -44,6 +45,7 @@
fParser->setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true);
fParser->setFeature(XMLUni::fgXercesIdentityConstraintChecking, true);
fParser->setErrorHandler(&fErrorHandler);
+ ((SAX2XMLReaderImpl*)fParser)->setXMLEntityResolver(&fEntityResolver);
}
XSTSHarnessHandlers::~XSTSHarnessHandlers()
@@ -328,4 +330,3 @@
}
}
}
-
Modified: xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.hpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.hpp?rev=804211&r1=804210&r2=804211&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.hpp (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/XSTSHarnessHandlers.hpp Fri Aug 14 13:18:09 2009
@@ -69,5 +69,6 @@
XSTSTest fCurrentTest;
SAX2XMLReader* fParser;
BaseErrorHandler fErrorHandler;
+ BaseEntityResolver fEntityResolver;
};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org