X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fxmltooling.git;a=blobdiff_plain;f=xmltooling%2Fio%2FAbstractXMLObjectUnmarshaller.cpp;fp=xmltooling%2Fio%2FAbstractXMLObjectUnmarshaller.cpp;h=5a07591a4056e710adbaab63674b0d412cabf29b;hp=6bc173d59193a0f09a418c585ea8ac9d66148e42;hb=ebb2772c2c65d4fe6f52e7978b9c7f656829614e;hpb=862161ef6283127928bd9307e1a184bf2ea0a6c8 diff --git a/xmltooling/io/AbstractXMLObjectUnmarshaller.cpp b/xmltooling/io/AbstractXMLObjectUnmarshaller.cpp index 6bc173d..5a07591 100644 --- a/xmltooling/io/AbstractXMLObjectUnmarshaller.cpp +++ b/xmltooling/io/AbstractXMLObjectUnmarshaller.cpp @@ -111,6 +111,7 @@ void AbstractXMLObjectUnmarshaller::unmarshallAttributes(const DOMElement* domEl static const XMLCh type[]= UNICODE_LITERAL_4(t,y,p,e); static const XMLCh schemaLocation[]= UNICODE_LITERAL_14(s,c,h,e,m,a,L,o,c,a,t,i,o,n); static const XMLCh noNamespaceSchemaLocation[]= UNICODE_LITERAL_25(n,o,N,a,m,e,s,p,a,c,e,S,c,h,e,m,a,L,o,c,a,t,i,o,n); + static const XMLCh _nil[]= UNICODE_LITERAL_3(n,i,l); if (XMLString::equals(attribute->getLocalName(),type)) { m_log.debug("skipping xsi:type declaration"); continue; @@ -130,6 +131,11 @@ void AbstractXMLObjectUnmarshaller::unmarshallAttributes(const DOMElement* domEl m_noNamespaceSchemaLocation=XMLString::replicate(attribute->getValue()); continue; } + else if (XMLString::equals(attribute->getLocalName(), _nil)) { + m_log.debug("processing xsi:nil attribute"); + setNil(attribute->getValue()); + continue; + } } else if (nsuri && !XMLString::equals(nsuri,XML_NS)) { m_log.debug("found namespace-qualified attribute, adding prefix to the list of namespaces on the XMLObject");