Initial marshalling support.
[shibboleth/xmltooling.git] / xmltooling / io / AbstractXMLObjectUnmarshaller.cpp
index 9aefabc..ce3f358 100644 (file)
@@ -56,10 +56,6 @@ XMLObject* AbstractXMLObjectUnmarshaller::unmarshall(DOMElement* element, bool b
         XT_log.debug("unmarshalling DOM element %s", dname.get());\r
     }\r
 \r
-#ifdef _DEBUG\r
-    checkElementIsTarget(element);\r
-#endif\r
-\r
     XMLObject* xmlObject = buildXMLObject(element);\r
 \r
     if (element->hasAttributes()) {\r
@@ -85,31 +81,6 @@ XMLObject* AbstractXMLObjectUnmarshaller::unmarshall(DOMElement* element, bool b
     return xmlObject;\r
 }\r
 \r
-void AbstractXMLObjectUnmarshaller::checkElementIsTarget(const DOMElement* domElement) const\r
-{\r
-    auto_ptr<QName> elementName(XMLHelper::getNodeQName(domElement));\r
-\r
-    XT_log.debug("checking that root element meets target criteria");\r
-\r
-    auto_ptr<QName> type(XMLHelper::getXSIType(domElement));\r
-\r
-    if (type.get() && m_targetQName==*(type.get())) {\r
-        XT_log.debug("schema type of element matches target");\r
-        return;\r
-    }\r
-    else {\r
-        if (m_targetQName==*(elementName.get())) {\r
-            XT_log.debug("element name matches target");\r
-            return;\r
-        }\r
-        else {\r
-            XT_log.errorStream() << "unmarshaller for (" << m_targetQName.toString()\r
-                << ") passed (" << elementName->toString() << ")" << CategoryStream::ENDLINE;\r
-            throw UnmarshallingException("Incorrect element type passed to unmarshaller.");\r
-        }\r
-    }\r
-}\r
-\r
 XMLObject* AbstractXMLObjectUnmarshaller::buildXMLObject(const DOMElement* domElement) const\r
 {\r
     const XMLObjectBuilder* xmlObjectBuilder = XMLObjectBuilder::getBuilder(domElement);\r
@@ -197,8 +168,13 @@ void AbstractXMLObjectUnmarshaller::unmarshallChildElements(const DOMElement* do
                     unmarshaller=Unmarshaller::getDefaultUnmarshaller();\r
                     if (!unmarshaller) {\r
                         auto_ptr<QName> cname(XMLHelper::getNodeQName(childNode));\r
-                        XT_log.error("no default unmarshaller installed, detected unknown child element %s", cname->toString().c_str());\r
-                        throw UnmarshallingException("Unmarshaller detected unknown child element, but no default unmarshaller was found.");\r
+                        XT_log.error(\r
+                            "no default unmarshaller installed, found unknown child element %s",\r
+                            cname->toString().c_str()\r
+                            );\r
+                        throw UnmarshallingException(\r
+                            "Unmarshaller found unknown child element, but no default unmarshaller was found."\r
+                            );\r
                     }\r
                     else {\r
                         XT_log.debug("using default unmarshaller");\r
@@ -207,7 +183,7 @@ void AbstractXMLObjectUnmarshaller::unmarshallChildElements(const DOMElement* do
                 else {\r
                     auto_ptr<QName> cname(XMLHelper::getNodeQName(childNode));\r
                     XT_log.error("detected unknown child element %s", cname->toString().c_str());\r
-                    throw UnknownElementException("Unmarshaller detected unknown child element.");\r
+                    throw UnknownElementException("Unmarshaller found unknown child element.");\r
                 }\r
             }\r
 \r