public function toXML(\DOMNode $parentElement = null) : DOMElement
    {
        if ($parentElement === null) {
            $document = DOMDocumentFactory::create();
            $parentElement = $document;
        } else {
            $document = $parentElement->ownerDocument;
        }

        $root = $document->createElementNS(Constants::NS_SAML, 'saml:'.'Assertion');
        $parentElement->appendChild($root);

        /* Ugly hack to add another namespace declaration to the root element. */
        $root->setAttributeNS(Constants::NS_SAMLP, 'samlp:tmp', 'tmp');
        $root->removeAttributeNS(Constants::NS_SAMLP, 'tmp');
        $root->setAttributeNS(Constants::NS_XSI, 'xsi:tmp', 'tmp');
        $root->removeAttributeNS(Constants::NS_XSI, 'tmp');
        $root->setAttributeNS(Constants::NS_XS, 'xs:tmp', 'tmp');
        $root->removeAttributeNS(Constants::NS_XS, 'tmp');

        $root->setAttribute('ID', $this->id);
        $root->setAttribute('Version', '2.0');
        $root->setAttribute('IssueInstant', gmdate('Y-m-d\TH:i:s\Z', $this->issueInstant));

        $issuer = $this->issuer->toXML($root);

        $this->addSubject($root);
        $this->addConditions($root);
        $this->addAuthnStatement($root);
        if ($this->getRequiredEncAttributes() === false) {
            $this->addAttributeStatement($root);
        } else {
            $this->addEncryptedAttributeStatement($root);
        }

        if ($this->signatureKey !== null) {
            Utils::insertSignature($this->signatureKey, $this->certificates, $root, $issuer->nextSibling);
        }

        return $root;
    }
public function toXML(\DOMNode $parentElement = null) : DOMElement
    {
        if ($parentElement === null) {
            $document = DOMDocumentFactory::create();
            $parentElement = $document;
        } else {
            $document = $parentElement->ownerDocument;
        }

        $root = $document->createElementNS(Constants::NS_SAML, 'saml:'.'Assertion');
        $parentElement->appendChild($root);

        /* Ugly hack to add another namespace declaration to the root element. */
        $root->setAttributeNS(Constants::NS_SAMLP, 'samlp:tmp', 'tmp');
        $root->removeAttributeNS(Constants::NS_SAMLP, 'tmp');
        $root->setAttributeNS(Constants::NS_XSI, 'xsi:tmp', 'tmp');
        $root->removeAttributeNS(Constants::NS_XSI, 'tmp');
        $root->setAttributeNS(Constants::NS_XS, 'xs:tmp', 'tmp');
        $root->removeAttributeNS(Constants::NS_XS, 'tmp');

        $root->setAttribute('ID', $this->id);
        $root->setAttribute('Version', '2.0');
        $root->setAttribute('IssueInstant', gmdate('Y-m-d\TH:i:s\Z', $this->issueInstant));

        $issuer = $this->issuer->toXML($root);

        $this->addSubject($root);
        $this->addConditions($root);
        $this->addAuthnStatement($root);
        if ($this->getRequiredEncAttributes() === false) {
            $this->addAttributeStatement($root);
        } else {
            $this->addEncryptedAttributeStatement($root);
        }

        if ($this->signatureKey !== null) {
            Utils::insertSignature($this->signatureKey, $this->certificates, $root, $issuer->nextSibling);
        }

        return $root;
    }
public function toXML ( \ DOMNode $ parentElement = null ) : DOMElement { if ( $ parentElement === null ) { $ document = DOMDocumentFactory :: create ( ) ; $ parentElement = $ document ; } else { $ document = $ parentElement -> ownerDocument ; } $ root = $ document -> createElementNS ( Constants :: NS_SAML , 'saml:' . 'Assertion' ) ; $ parentElement -> appendChild ( $ root ) ; /* Ugly hack to add another namespace declaration to the root element. */ $ root -> setAttributeNS ( Constants :: NS_SAMLP , 'samlp:tmp' , 'tmp' ) ; $ root -> removeAttributeNS ( Constants :: NS_SAMLP , 'tmp' ) ; $ root -> setAttributeNS ( Constants :: NS_XSI , 'xsi:tmp' , 'tmp' ) ; $ root -> removeAttributeNS ( Constants :: NS_XSI , 'tmp' ) ; $ root -> setAttributeNS ( Constants :: NS_XS , 'xs:tmp' , 'tmp' ) ; $ root -> removeAttributeNS ( Constants :: NS_XS , 'tmp' ) ; $ root -> setAttribute ( 'ID' , $ this -> id ) ; $ root -> setAttribute ( 'Version' , '2.0' ) ; $ root -> setAttribute ( 'IssueInstant' , gmdate ( 'Y-m-d\TH:i:s\Z' , $ this -> issueInstant ) ) ; $ issuer = $ this -> issuer -> toXML ( $ root ) ; $ this -> addSubject ( $ root ) ; $ this -> addConditions ( $ root ) ; $ this -> addAuthnStatement ( $ root ) ; if ( $ this -> getRequiredEncAttributes ( ) === false ) { $ this -> addAttributeStatement ( $ root ) ; } else { $ this -> addEncryptedAttributeStatement ( $ root ) ; } if ( $ this -> signatureKey !== null ) { Utils :: insertSignature ( $ this -> signatureKey , $ this -> certificates , $ root , $ issuer -> nextSibling ) ; } return $ root ; }
Convert this assertion to an XML element.

@param  \DOMNode|null $parentElement The DOM node the assertion should be created in.
@return \DOMElement   This assertion.
Convert this assertion to an XML element .