#include <xmltooling/io/AbstractXMLObjectMarshaller.h>
#include <xmltooling/io/AbstractXMLObjectUnmarshaller.h>
#include <xmltooling/util/XMLHelper.h>
-#include <xmltooling/validation/AbstractValidatingXMLObject.h>
#include <ctime>
#include <xercesc/util/XMLUniDefs.hpp>
public AbstractSimpleElement,
public AbstractChildlessElement,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
localizedNameTypeImpl(const localizedNameTypeImpl& src)
- : AbstractXMLObject(src), AbstractSimpleElement(src),
- AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
init();
setLang(src.getLang());
}
public AbstractSimpleElement,
public AbstractChildlessElement,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
localizedURITypeImpl(const localizedURITypeImpl& src)
- : AbstractXMLObject(src), AbstractSimpleElement(src),
- AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
init();
setLang(src.getLang());
}
};
class SAML_DLLLOCAL ExtensionsImpl : public virtual Extensions,
- public AbstractDOMCachingXMLObject,
public AbstractElementProxy,
- public AbstractValidatingXMLObject,
+ public AbstractDOMCachingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
ExtensionsImpl(const ExtensionsImpl& src)
- : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractElementProxy(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractElementProxy(src), AbstractDOMCachingXMLObject(src) {
for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
if (*i) {
getXMLObjects().push_back((*i)->clone());
public AbstractComplexElement,
public AbstractAttributeExtensibleXMLObject,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
OrganizationImpl(const OrganizationImpl& src)
- : AbstractXMLObject(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
if (src.getExtensions())
setExtensions(src.getExtensions()->cloneExtensions());
public AbstractComplexElement,
public AbstractAttributeExtensibleXMLObject,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
ContactPersonImpl(const ContactPersonImpl& src)
- : AbstractXMLObject(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
if (src.getExtensions())
setExtensions(src.getExtensions()->cloneExtensions());
public AbstractSimpleElement,
public AbstractChildlessElement,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
AdditionalMetadataLocationImpl(const AdditionalMetadataLocationImpl& src)
- : AbstractXMLObject(src), AbstractSimpleElement(src),
- AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
init();
}
class SAML_DLLLOCAL KeyDescriptorImpl : public virtual KeyDescriptor,
public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
init();
}
- KeyDescriptorImpl(const KeyDescriptorImpl& src)
- : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+ KeyDescriptorImpl(const KeyDescriptorImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setUse(src.getUse());
if (src.getKeyInfo())
void processChildElement(XMLObject* childXMLObject, const DOMElement* root) {
PROC_TYPED_FOREIGN_CHILD(KeyInfo,xmlsignature,XMLConstants::XMLSIG_NS,false);
- PROC_TYPED_FOREIGN_CHILDREN(EncryptionMethod,xmlencryption,XMLConstants::XMLENC_NS,false);
+ PROC_TYPED_FOREIGN_CHILDREN(EncryptionMethod,xmlencryption,SAMLConstants::SAML20MD_NS,false);
AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root);
}
};
class SAML_DLLLOCAL EndpointTypeImpl : public virtual EndpointType,
- public AbstractDOMCachingXMLObject,
public AbstractElementProxy,
public AbstractAttributeExtensibleXMLObject,
- public AbstractValidatingXMLObject,
+ public AbstractDOMCachingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
EndpointTypeImpl(const EndpointTypeImpl& src)
- : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractElementProxy(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractElementProxy(src),
+ AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
setBinding(src.getBinding());
setLocation(src.getLocation());
setResponseLocation(src.getResponseLocation());
public AbstractComplexElement,
public AbstractAttributeExtensibleXMLObject,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
RoleDescriptorImpl(const RoleDescriptorImpl& src)
- : AbstractXMLObject(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setID(src.getID());
setProtocolSupportEnumeration(src.getProtocolSupportEnumeration());
IMPL_STRING_ATTRIB(ID);
IMPL_STRING_ATTRIB(ProtocolSupportEnumeration);
IMPL_STRING_ATTRIB(ErrorURL);
- IMPL_DATETIME_ATTRIB(ValidUntil);
- IMPL_DATETIME_ATTRIB(CacheDuration);
+ IMPL_DATETIME_ATTRIB(ValidUntil,SAMLTIME_MAX);
+ IMPL_DATETIME_ATTRIB(CacheDuration,0);
IMPL_TYPED_CHILD(Extensions);
IMPL_TYPED_CHILDREN(KeyDescriptor,m_pos_Organization);
IMPL_TYPED_CHILD(Organization);
IMPL_TYPED_CHILDREN(ContactPerson,m_pos_ContactPerson);
+
+ bool hasSupport(const XMLCh* protocol) const {
+ if (m_ProtocolSupportEnumeration) {
+ // Look for first character.
+ unsigned int len=XMLString::stringLen(protocol);
+ unsigned int pos=0;
+ int index=XMLString::indexOf(m_ProtocolSupportEnumeration,protocol[0],pos);
+ while (index>=0) {
+ // Only possible match is if it's the first character or a space comes before it.
+ if (index==0 || m_ProtocolSupportEnumeration[index-1]==chSpace) {
+ // See if rest of protocol string is present.
+ if (0==XMLString::compareNString(m_ProtocolSupportEnumeration+index+1,protocol+1,len-1)) {
+ // Only possible match is if it's the last character or a space comes after it.
+ if (m_ProtocolSupportEnumeration[index+len]==chNull || m_ProtocolSupportEnumeration[index+len]==chSpace)
+ return true;
+ else
+ pos=index+len;
+ }
+ else {
+ // Move past last search and start again.
+ pos=index+1;
+ }
+ }
+ else {
+ // Move past last search and start again.
+ pos=index+1;
+ }
+ index=XMLString::indexOf(m_ProtocolSupportEnumeration,protocol[0],pos);
+ }
+ }
+ return false;
+ }
void setAttribute(QName& qualifiedName, const XMLCh* value) {
if (!qualifiedName.hasNamespaceURI()) {
public AbstractComplexElement,
public AbstractAttributeExtensibleXMLObject,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
RequestedAttributeImpl(const RequestedAttributeImpl& src)
- : AbstractXMLObject(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setName(src.getName());
setNameFormat(src.getNameFormat());
class SAML_DLLLOCAL AttributeConsumingServiceImpl : public virtual AttributeConsumingService,
public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
AttributeConsumingServiceImpl(const AttributeConsumingServiceImpl& src)
- : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setIndex(src.m_Index);
isDefault(src.m_isDefault);
public AbstractComplexElement,
public AbstractAttributeExtensibleXMLObject,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
AffiliationDescriptorImpl(const AffiliationDescriptorImpl& src)
- : AbstractXMLObject(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setID(src.getID());
setAffiliationOwnerID(src.getAffiliationOwnerID());
IMPL_STRING_ATTRIB(ID);
IMPL_STRING_ATTRIB(AffiliationOwnerID);
- IMPL_DATETIME_ATTRIB(ValidUntil);
- IMPL_DATETIME_ATTRIB(CacheDuration);
+ IMPL_DATETIME_ATTRIB(ValidUntil,SAMLTIME_MAX);
+ IMPL_DATETIME_ATTRIB(CacheDuration,0);
IMPL_TYPED_CHILD(Extensions);
IMPL_TYPED_CHILDREN(AffiliateMember,m_pos_AffiliateMember);
IMPL_TYPED_CHILDREN(KeyDescriptor,m_children.end());
public AbstractComplexElement,
public AbstractAttributeExtensibleXMLObject,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
}
EntityDescriptorImpl(const EntityDescriptorImpl& src)
- : AbstractXMLObject(src),
- AbstractAttributeExtensibleXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ : AbstractXMLObject(src), AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setID(src.getID());
setEntityID(src.getEntityID());
IMPL_STRING_ATTRIB(ID);
IMPL_STRING_ATTRIB(EntityID);
- IMPL_DATETIME_ATTRIB(ValidUntil);
- IMPL_DATETIME_ATTRIB(CacheDuration);
+ IMPL_DATETIME_ATTRIB(ValidUntil,SAMLTIME_MAX);
+ IMPL_DATETIME_ATTRIB(CacheDuration,0);
IMPL_TYPED_CHILD(Extensions);
IMPL_TYPED_CHILDREN(RoleDescriptor,m_pos_AffiliationDescriptor);
IMPL_TYPED_CHILDREN(IDPSSODescriptor,m_pos_AffiliationDescriptor);
AbstractAttributeExtensibleXMLObject::setAttribute(qualifiedName, value);
}
+ const IDPSSODescriptor* getIDPSSODescriptor(const XMLCh* protocol) const {
+ for (vector<IDPSSODescriptor*>::const_iterator i=m_IDPSSODescriptors.begin(); i!=m_IDPSSODescriptors.end(); i++) {
+ if ((*i)->hasSupport(protocol) && (*i)->isValid())
+ return (*i);
+ }
+ return NULL;
+ }
+
+ const SPSSODescriptor* getSPSSODescriptor(const XMLCh* protocol) const {
+ for (vector<SPSSODescriptor*>::const_iterator i=m_SPSSODescriptors.begin(); i!=m_SPSSODescriptors.end(); i++) {
+ if ((*i)->hasSupport(protocol) && (*i)->isValid())
+ return (*i);
+ }
+ return NULL;
+ }
+
+ const AuthnAuthorityDescriptor* getAuthnAuthorityDescriptor(const XMLCh* protocol) const {
+ for (vector<AuthnAuthorityDescriptor*>::const_iterator i=m_AuthnAuthorityDescriptors.begin(); i!=m_AuthnAuthorityDescriptors.end(); i++) {
+ if ((*i)->hasSupport(protocol) && (*i)->isValid())
+ return (*i);
+ }
+ return NULL;
+ }
+
+ const AttributeAuthorityDescriptor* getAttributeAuthorityDescriptor(const XMLCh* protocol) const {
+ for (vector<AttributeAuthorityDescriptor*>::const_iterator i=m_AttributeAuthorityDescriptors.begin(); i!=m_AttributeAuthorityDescriptors.end(); i++) {
+ if ((*i)->hasSupport(protocol) && (*i)->isValid())
+ return (*i);
+ }
+ return NULL;
+ }
+
+ const PDPDescriptor* getPDPDescriptor(const XMLCh* protocol) const {
+ for (vector<PDPDescriptor*>::const_iterator i=m_PDPDescriptors.begin(); i!=m_PDPDescriptors.end(); i++) {
+ if ((*i)->hasSupport(protocol) && (*i)->isValid())
+ return (*i);
+ }
+ return NULL;
+ }
+
+ const RoleDescriptor* getRoleDescriptor(xmltooling::QName& qname, const XMLCh* protocol) const {
+ for (vector<RoleDescriptor*>::const_iterator i=m_RoleDescriptors.begin(); i!=m_RoleDescriptors.end(); i++) {
+ if ((*i)->getSchemaType() && qname==(*((*i)->getSchemaType())) && (*i)->hasSupport(protocol) && (*i)->isValid())
+ return (*i);
+ }
+ return NULL;
+ }
+
protected:
void marshallAttributes(DOMElement* domElement) const {
MARSHALL_ID_ATTRIB(ID,ID,NULL);
public virtual SignableObject,
public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
- public AbstractValidatingXMLObject,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
init();
}
- EntitiesDescriptorImpl(const EntitiesDescriptorImpl& src)
- : AbstractXMLObject(src),
- AbstractDOMCachingXMLObject(src),
- AbstractValidatingXMLObject(src) {
+ EntitiesDescriptorImpl(const EntitiesDescriptorImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
setID(src.getID());
setName(src.getName());
IMPL_STRING_ATTRIB(ID);
IMPL_STRING_ATTRIB(Name);
- IMPL_DATETIME_ATTRIB(ValidUntil);
- IMPL_DATETIME_ATTRIB(CacheDuration);
+ IMPL_DATETIME_ATTRIB(ValidUntil,SAMLTIME_MAX);
+ IMPL_DATETIME_ATTRIB(CacheDuration,0);
IMPL_TYPED_CHILD(Extensions);
IMPL_TYPED_CHILDREN(EntityDescriptor,m_children.end());
IMPL_TYPED_CHILDREN(EntitiesDescriptor,m_children.end());
const XMLCh AffiliationDescriptor::LOCAL_NAME[] = UNICODE_LITERAL_21(A,f,f,i,l,i,a,t,i,o,n,D,e,s,c,r,i,p,t,o,r);
const XMLCh AffiliationDescriptor::TYPE_NAME[] = UNICODE_LITERAL_25(A,f,f,i,l,i,a,t,i,o,n,D,e,s,c,r,i,p,t,o,r,T,y,p,e);
const XMLCh AffiliationDescriptor::ID_ATTRIB_NAME[] = UNICODE_LITERAL_2(I,D);
-const XMLCh AffiliationDescriptor::VALIDUNTIL_ATTRIB_NAME[] = UNICODE_LITERAL_10(v,a,l,i,d,U,n,t,i,l);
-const XMLCh AffiliationDescriptor::CACHEDURATION_ATTRIB_NAME[] = UNICODE_LITERAL_13(c,a,c,h,e,D,u,r,a,t,i,o,n);
const XMLCh AffiliationDescriptor::AFFILIATIONOWNERID_ATTRIB_NAME[] = UNICODE_LITERAL_18(a,f,f,i,l,i,a,t,i,o,n,O,w,n,e,r,I,D);
const XMLCh ArtifactResolutionService::LOCAL_NAME[] = UNICODE_LITERAL_25(A,r,t,i,f,a,c,t,R,e,s,o,l,u,t,i,o,n,S,e,r,v,i,c,e);
const XMLCh AssertionConsumerService::LOCAL_NAME[] = UNICODE_LITERAL_24(A,s,s,e,r,t,i,o,n,C,o,n,s,u,m,e,r,S,e,r,v,i,c,e);
const XMLCh AuthnAuthorityDescriptor::TYPE_NAME[] = UNICODE_LITERAL_28(A,u,t,h,n,A,u,t,h,o,r,i,t,y,D,e,s,c,r,i,p,t,o,r,T,y,p,e);
const XMLCh AuthnQueryService::LOCAL_NAME[] = UNICODE_LITERAL_17(A,u,t,h,n,Q,u,e,r,y,S,e,r,v,i,c,e);
const XMLCh AuthzService::LOCAL_NAME[] = UNICODE_LITERAL_12(A,u,t,h,z,S,e,r,v,i,c,e);
+const XMLCh CacheableSAMLObject::CACHEDURATION_ATTRIB_NAME[] = UNICODE_LITERAL_13(c,a,c,h,e,D,u,r,a,t,i,o,n);
const XMLCh Company::LOCAL_NAME[] = UNICODE_LITERAL_7(C,o,m,p,a,n,y);
const XMLCh ContactPerson::LOCAL_NAME[] = UNICODE_LITERAL_13(C,o,n,t,a,c,t,P,e,r,s,o,n);
const XMLCh ContactPerson::TYPE_NAME[] = UNICODE_LITERAL_11(C,o,n,t,a,c,t,T,y,p,e);
const XMLCh EntitiesDescriptor::LOCAL_NAME[] = UNICODE_LITERAL_18(E,n,t,i,t,i,e,s,D,e,s,c,r,i,p,t,o,r);
const XMLCh EntitiesDescriptor::TYPE_NAME[] = UNICODE_LITERAL_22(E,n,t,i,t,i,e,s,D,e,s,c,r,i,p,t,o,r,T,y,p,e);
const XMLCh EntitiesDescriptor::ID_ATTRIB_NAME[] = UNICODE_LITERAL_2(I,D);
-const XMLCh EntitiesDescriptor::VALIDUNTIL_ATTRIB_NAME[] = UNICODE_LITERAL_10(v,a,l,i,d,U,n,t,i,l);
-const XMLCh EntitiesDescriptor::CACHEDURATION_ATTRIB_NAME[] = UNICODE_LITERAL_13(c,a,c,h,e,D,u,r,a,t,i,o,n);
const XMLCh EntitiesDescriptor::NAME_ATTRIB_NAME[] = UNICODE_LITERAL_4(N,a,m,e);
const XMLCh EntityDescriptor::LOCAL_NAME[] = UNICODE_LITERAL_16(E,n,t,i,t,y,D,e,s,c,r,i,p,t,o,r);
const XMLCh EntityDescriptor::TYPE_NAME[] = UNICODE_LITERAL_20(E,n,t,i,t,y,D,e,s,c,r,i,p,t,o,r,T,y,p,e);
const XMLCh EntityDescriptor::ID_ATTRIB_NAME[] = UNICODE_LITERAL_2(I,D);
-const XMLCh EntityDescriptor::VALIDUNTIL_ATTRIB_NAME[] = UNICODE_LITERAL_10(v,a,l,i,d,U,n,t,i,l);
-const XMLCh EntityDescriptor::CACHEDURATION_ATTRIB_NAME[] = UNICODE_LITERAL_13(c,a,c,h,e,D,u,r,a,t,i,o,n);
const XMLCh EntityDescriptor::ENTITYID_ATTRIB_NAME[] = UNICODE_LITERAL_8(e,n,t,i,t,y,I,D);
const XMLCh Extensions::LOCAL_NAME[] = UNICODE_LITERAL_10(E,x,t,e,n,s,i,o,n,s);
const XMLCh Extensions::TYPE_NAME[] = UNICODE_LITERAL_14(E,x,t,e,n,s,i,o,n,s,T,y,p,e);
const XMLCh RequestedAttribute::ISREQUIRED_ATTRIB_NAME[] = UNICODE_LITERAL_10(i,s,R,e,q,u,i,r,e,d);
const XMLCh RoleDescriptor::LOCAL_NAME[] = UNICODE_LITERAL_14(R,o,l,e,D,e,s,c,r,i,p,t,o,r);
const XMLCh RoleDescriptor::ID_ATTRIB_NAME[] = UNICODE_LITERAL_2(I,D);
-const XMLCh RoleDescriptor::VALIDUNTIL_ATTRIB_NAME[] = UNICODE_LITERAL_10(v,a,l,i,d,U,n,t,i,l);
-const XMLCh RoleDescriptor::CACHEDURATION_ATTRIB_NAME[] = UNICODE_LITERAL_13(c,a,c,h,e,D,u,r,a,t,i,o,n);
const XMLCh RoleDescriptor::PROTOCOLSUPPORTENUMERATION_ATTRIB_NAME[] = UNICODE_LITERAL_26(p,r,o,t,o,c,o,l,S,u,p,p,o,r,t,E,n,u,m,e,r,a,t,i,o,n);
const XMLCh RoleDescriptor::ERRORURL_ATTRIB_NAME[] = UNICODE_LITERAL_8(e,r,r,o,r,U,R,L);
const XMLCh ServiceDescription::LOCAL_NAME[] = UNICODE_LITERAL_18(S,e,r,v,i,c,e,D,e,s,c,r,i,p,t,i,o,n);
const XMLCh SSODescriptorType::TYPE_NAME[] = UNICODE_LITERAL_17(S,S,O,D,e,s,c,r,i,p,t,o,r,T,y,p,e);
const XMLCh SurName::LOCAL_NAME[] = UNICODE_LITERAL_7(S,u,r,N,a,m,e);
const XMLCh TelephoneNumber::LOCAL_NAME[] = UNICODE_LITERAL_15(T,e,l,e,p,h,o,n,e,N,u,m,b,e,r);
+const XMLCh TimeBoundSAMLObject::VALIDUNTIL_ATTRIB_NAME[] = UNICODE_LITERAL_10(v,a,l,i,d,U,n,t,i,l);