{
void init() {
m_Lang=NULL;
+ m_LangPrefix=NULL;
}
protected:
public:
virtual ~localizedNameTypeImpl() {
XMLString::release(&m_Lang);
+ XMLString::release(&m_LangPrefix);
}
localizedNameTypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
init();
setLang(src.getLang());
+ if (src.m_LangPrefix)
+ m_LangPrefix = XMLString::replicate(src.m_LangPrefix);
}
IMPL_XMLOBJECT_CLONE(localizedNameType);
- IMPL_STRING_ATTRIB(Lang);
+ IMPL_XMLOBJECT_FOREIGN_ATTRIB(Lang,XMLCh);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Lang,LANG,xmlconstants::XML_NS);
+ if (m_Lang && *m_Lang) {
+ DOMAttr* attr=domElement->getOwnerDocument()->createAttributeNS(xmlconstants::XML_NS,LANG_ATTRIB_NAME);
+ if (m_LangPrefix && *m_LangPrefix)
+ attr->setPrefix(m_LangPrefix);
+ attr->setNodeValue(m_Lang);
+ domElement->setAttributeNodeNS(attr);
+ }
}
void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Lang,LANG,xmlconstants::XML_NS);
+ if (XMLHelper::isNodeNamed(attribute, xmlconstants::XML_NS, LANG_ATTRIB_NAME)) {
+ setLang(attribute->getValue());
+ const XMLCh* temp = attribute->getPrefix();
+ if (temp && *temp && !XMLString::equals(temp, xmlconstants::XML_NS))
+ m_LangPrefix = XMLString::replicate(temp);
+ return;
+ }
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
{
void init() {
m_Lang=NULL;
+ m_LangPrefix=NULL;
}
protected:
public:
virtual ~localizedURITypeImpl() {
XMLString::release(&m_Lang);
+ XMLString::release(&m_LangPrefix);
}
localizedURITypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
init();
setLang(src.getLang());
+ if (src.m_LangPrefix)
+ m_LangPrefix = XMLString::replicate(src.m_LangPrefix);
}
IMPL_XMLOBJECT_CLONE(localizedURIType);
- IMPL_STRING_ATTRIB(Lang);
+ IMPL_XMLOBJECT_FOREIGN_ATTRIB(Lang,XMLCh);
protected:
void marshallAttributes(DOMElement* domElement) const {
- MARSHALL_STRING_ATTRIB(Lang,LANG,xmlconstants::XML_NS);
+ if (m_Lang && *m_Lang) {
+ DOMAttr* attr=domElement->getOwnerDocument()->createAttributeNS(xmlconstants::XML_NS,LANG_ATTRIB_NAME);
+ if (m_LangPrefix && *m_LangPrefix)
+ attr->setPrefix(m_LangPrefix);
+ attr->setNodeValue(m_Lang);
+ domElement->setAttributeNodeNS(attr);
+ }
}
void processAttribute(const DOMAttr* attribute) {
- PROC_STRING_ATTRIB(Lang,LANG,xmlconstants::XML_NS);
+ if (XMLHelper::isNodeNamed(attribute, xmlconstants::XML_NS, LANG_ATTRIB_NAME)) {
+ setLang(attribute->getValue());
+ const XMLCh* temp = attribute->getPrefix();
+ if (temp && *temp && !XMLString::equals(temp, xmlconstants::XML_NS))
+ m_LangPrefix = XMLString::replicate(temp);
+ return;
+ }
AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
++m_pos_TelephoneNumber;
}
public:
- virtual ~ContactPersonImpl() {}
+ virtual ~ContactPersonImpl() {
+ XMLString::release(&m_ContactType);
+ }
ContactPersonImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType) {
}
};
+ class SAML_DLLLOCAL RoleDescriptorTypeImpl : public virtual RoleDescriptorType, public RoleDescriptorImpl
+ {
+ public:
+ virtual ~RoleDescriptorTypeImpl() {}
+
+ RoleDescriptorTypeImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
+ }
+
+ RoleDescriptorTypeImpl(const RoleDescriptorTypeImpl& src) : AbstractXMLObject(src), RoleDescriptorImpl(src) {
+ VectorOf(XMLObject) v=getUnknownXMLObjects();
+ for (vector<XMLObject*>::const_iterator i=src.m_UnknownXMLObjects.begin(); i!=src.m_UnknownXMLObjects.end(); ++i)
+ v.push_back((*i)->clone());
+ }
+
+ IMPL_XMLOBJECT_CLONE(RoleDescriptorType);
+ RoleDescriptor* cloneRoleDescriptor() const {
+ return new RoleDescriptorTypeImpl(*this);
+ }
+
+ IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end());
+
+ protected:
+ void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
+ getUnknownXMLObjects().push_back(childXMLObject);
+ }
+ };
+
class SAML_DLLLOCAL SSODescriptorTypeImpl : public virtual SSODescriptorType, public RoleDescriptorImpl
{
void init() {
IMPL_XMLOBJECTBUILDER(ActionNamespace);
IMPL_XMLOBJECTBUILDER(SourceID);
+#ifdef HAVE_COVARIANT_RETURNS
+RoleDescriptor* RoleDescriptorBuilder::buildObject(
+#else
+xmltooling::XMLObject* RoleDescriptorBuilder::buildObject(
+#endif
+ const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType
+ ) const
+{
+ return new RoleDescriptorTypeImpl(nsURI,localName,prefix,schemaType);
+}
+
const XMLCh ActionNamespace::LOCAL_NAME[] = UNICODE_LITERAL_15(A,c,t,i,o,n,N,a,m,e,s,p,a,c,e);
const XMLCh AdditionalMetadataLocation::LOCAL_NAME[] = UNICODE_LITERAL_26(A,d,d,i,t,i,o,n,a,l,M,e,t,a,d,a,t,a,L,o,c,a,t,i,o,n);
const XMLCh AdditionalMetadataLocation::TYPE_NAME[] = UNICODE_LITERAL_30(A,d,d,i,t,i,o,n,a,l,M,e,t,a,d,a,t,a,L,o,c,a,t,i,o,n,T,y,p,e);