code: @Override
    protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject)
        throws UnmarshallingException {
      
      SchemeInformation schemeInformation = (SchemeInformation) parentSAMLObject; 
      
      final QName issuerNameIdQName = new QName(schemeInformation.getElementQName().getNamespaceURI(),
        SchemeInformation.ISSUER_NAME_LOCAL_NAME, schemeInformation.getElementQName().getPrefix());
          
      final QName schemeIdentifierQName = new QName(schemeInformation.getElementQName().getNamespaceURI(),
        SchemeInformation.SCHEME_IDENTIFIER_LOCAL_NAME, schemeInformation.getElementQName().getPrefix());
  
      final QName schemeTerritoryQName = new QName(schemeInformation.getElementQName().getNamespaceURI(),
        SchemeInformation.SCHEME_TERRITORY_LOCAL_NAME, schemeInformation.getElementQName().getPrefix());
      
      if ((childSAMLObject instanceof XSString) && issuerNameIdQName.equals(childSAMLObject.getElementQName())) {
        if (schemeInformation instanceof SchemeInformationImpl) {
          ((SchemeInformationImpl) schemeInformation).setIssuerName((XSString) childSAMLObject);
        }
        else {
          schemeInformation.setIssuerName(((XSString) childSAMLObject).getValue());
        }
      }
      else if ((childSAMLObject instanceof XSURI) && schemeIdentifierQName.equals(childSAMLObject.getElementQName())) {
        if (schemeInformation instanceof SchemeInformationImpl) {
          ((SchemeInformationImpl) schemeInformation).setSchemeIdentifier((XSURI) childSAMLObject);
        }
        else {
          schemeInformation.setSchemeIdentifier(((XSURI) childSAMLObject).getValue());
        }
      }
      else if ((childSAMLObject instanceof XSString) && schemeTerritoryQName.equals(childSAMLObject.getElementQName())) {
        if (schemeInformation instanceof SchemeInformationImpl) {
          ((SchemeInformationImpl) schemeInformation).setSchemeTerritory((XSString) childSAMLObject);
        }
        else {
          schemeInformation.setSchemeTerritory(((XSString) childSAMLObject).getValue());
        }
      } 
      else {
        super.processChildElement(parentSAMLObject, childSAMLObject);
      }    
    }
docs: {@inheritDoc}