*/
#include <cxxtest/TestSuite.h>
+#include <xmltooling/AbstractComplexElement.h>
#include <xmltooling/ElementProxy.h>
#include <xmltooling/exceptions.h>
#include <xmltooling/XMLObjectBuilder.h>
#include <xmltooling/io/AbstractXMLObjectUnmarshaller.h>
#include <xmltooling/impl/AnyElement.h>
#include <xmltooling/impl/UnknownElement.h>
-#ifndef XMLTOOLING_NO_XMLSEC
- #include <xmltooling/signature/Signature.h>
-#endif
#include <xmltooling/util/ParserPool.h>
#include <xmltooling/util/XMLConstants.h>
#include <xmltooling/util/XMLHelper.h>
#include <xmltooling/util/XMLObjectChildrenList.h>
+#ifndef XMLTOOLING_NO_XMLSEC
+ #include <xmltooling/signature/Signature.h>
+ using namespace xmlsignature;
+#endif
+
using namespace xmltooling;
using namespace std;
-extern ParserPool* validatingPool;
-extern ParserPool* nonvalidatingPool;
extern string data_path;
#if defined (_MSC_VER)
#pragma warning( disable : 4250 4251 )
#endif
-class SimpleXMLObject : public AbstractDOMCachingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller
+class SimpleXMLObject
+ : public AbstractComplexElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
protected:
SimpleXMLObject(const SimpleXMLObject& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src),
static const XMLCh ID_ATTRIB_NAME[];
SimpleXMLObject(
- const XMLCh* namespaceURI=NULL, const XMLCh* elementLocalName=NULL, const XMLCh* namespacePrefix=NULL
- ) : AbstractXMLObject(namespaceURI, elementLocalName, namespacePrefix), m_id(NULL), m_value(NULL) {
+ const XMLCh* nsURI=NULL, const XMLCh* localName=NULL, const XMLCh* prefix=NULL, const QName* schemaType=NULL
+ ) : AbstractXMLObject(nsURI, localName, prefix, schemaType), m_id(NULL), m_value(NULL) {
#ifndef XMLTOOLING_NO_XMLSEC
m_children.push_back(NULL);
m_signature=m_children.begin();
VectorOf(SimpleXMLObject) getSimpleXMLObjects() {
return VectorOf(SimpleXMLObject)(this, m_simples, &m_children, m_children.end());
}
+
+ const std::vector<SimpleXMLObject*>& getSimpleXMLObjects() const {
+ return m_simples;
+ }
protected:
void marshallAttributes(DOMElement* domElement) const {
}
SimpleXMLObject* buildObject(
- const XMLCh* namespaceURI, const XMLCh* elementLocalName, const XMLCh* namespacePrefix=NULL
+ const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const QName* schemaType=NULL
) const {
- return new SimpleXMLObject(namespaceURI,elementLocalName,namespacePrefix);
+ return new SimpleXMLObject(nsURI, localName, prefix, schemaType);
}
+
+ static SimpleXMLObject* newSimpleXMLObject() {\r
+ const SimpleXMLObjectBuilder* b = dynamic_cast<const SimpleXMLObjectBuilder*>(\r
+ XMLObjectBuilder::getBuilder(QName(SimpleXMLObject::NAMESPACE,SimpleXMLObject::LOCAL_NAME))\r
+ );\r
+ if (b)\r
+ return b->buildObject();\r
+ throw XMLObjectException("Unable to obtain typed builder for SimpleXMLObject.");\r
+ }\r
};
#if defined (_MSC_VER)