public function toXML(DOMElement $parent = null) : DOMElement
    {
        if (empty($this->entityID)) {
            throw new \Exception('Cannot convert EntityDescriptor to XML without an EntityID set.');
        }

        if ($parent === null) {
            $doc = DOMDocumentFactory::create();
            $e = $doc->createElementNS(Constants::NS_MD, 'md:EntityDescriptor');
            $doc->appendChild($e);
        } else {
            $e = $parent->ownerDocument->createElementNS(Constants::NS_MD, 'md:EntityDescriptor');
            $parent->appendChild($e);
        }

        $e->setAttribute('entityID', $this->entityID);

        if ($this->ID !== null) {
            $e->setAttribute('ID', $this->ID);
        }

        if ($this->validUntil !== null) {
            $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil));
        }

        if ($this->cacheDuration !== null) {
            $e->setAttribute('cacheDuration', $this->cacheDuration);
        }

        Extensions::addList($e, $this->Extensions);

        foreach ($this->RoleDescriptor as $n) {
            $n->toXML($e);
        }

        if ($this->AffiliationDescriptor !== null) {
            $this->AffiliationDescriptor->toXML($e);
        }

        if ($this->Organization !== null) {
            $this->Organization->toXML($e);
        }

        foreach ($this->ContactPerson as $cp) {
            $cp->toXML($e);
        }

        foreach ($this->AdditionalMetadataLocation as $n) {
            $n->toXML($e);
        }

        /** @var \DOMElement $child */
        $child = $e->firstChild;
        $this->signElement($e, $child);

        return $e;
    }
public function toXML(DOMElement $parent = null) : DOMElement
    {
        if (empty($this->entityID)) {
            throw new \Exception('Cannot convert EntityDescriptor to XML without an EntityID set.');
        }

        if ($parent === null) {
            $doc = DOMDocumentFactory::create();
            $e = $doc->createElementNS(Constants::NS_MD, 'md:EntityDescriptor');
            $doc->appendChild($e);
        } else {
            $e = $parent->ownerDocument->createElementNS(Constants::NS_MD, 'md:EntityDescriptor');
            $parent->appendChild($e);
        }

        $e->setAttribute('entityID', $this->entityID);

        if ($this->ID !== null) {
            $e->setAttribute('ID', $this->ID);
        }

        if ($this->validUntil !== null) {
            $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil));
        }

        if ($this->cacheDuration !== null) {
            $e->setAttribute('cacheDuration', $this->cacheDuration);
        }

        Extensions::addList($e, $this->Extensions);

        foreach ($this->RoleDescriptor as $n) {
            $n->toXML($e);
        }

        if ($this->AffiliationDescriptor !== null) {
            $this->AffiliationDescriptor->toXML($e);
        }

        if ($this->Organization !== null) {
            $this->Organization->toXML($e);
        }

        foreach ($this->ContactPerson as $cp) {
            $cp->toXML($e);
        }

        foreach ($this->AdditionalMetadataLocation as $n) {
            $n->toXML($e);
        }

        /** @var \DOMElement $child */
        $child = $e->firstChild;
        $this->signElement($e, $child);

        return $e;
    }
public function toXML ( DOMElement $ parent = null ) : DOMElement { if ( empty ( $ this -> entityID ) ) { throw new \ Exception ( 'Cannot convert EntityDescriptor to XML without an EntityID set.' ) ; } if ( $ parent === null ) { $ doc = DOMDocumentFactory :: create ( ) ; $ e = $ doc -> createElementNS ( Constants :: NS_MD , 'md:EntityDescriptor' ) ; $ doc -> appendChild ( $ e ) ; } else { $ e = $ parent -> ownerDocument -> createElementNS ( Constants :: NS_MD , 'md:EntityDescriptor' ) ; $ parent -> appendChild ( $ e ) ; } $ e -> setAttribute ( 'entityID' , $ this -> entityID ) ; if ( $ this -> ID !== null ) { $ e -> setAttribute ( 'ID' , $ this -> ID ) ; } if ( $ this -> validUntil !== null ) { $ e -> setAttribute ( 'validUntil' , gmdate ( 'Y-m-d\TH:i:s\Z' , $ this -> validUntil ) ) ; } if ( $ this -> cacheDuration !== null ) { $ e -> setAttribute ( 'cacheDuration' , $ this -> cacheDuration ) ; } Extensions :: addList ( $ e , $ this -> Extensions ) ; foreach ( $ this -> RoleDescriptor as $ n ) { $ n -> toXML ( $ e ) ; } if ( $ this -> AffiliationDescriptor !== null ) { $ this -> AffiliationDescriptor -> toXML ( $ e ) ; } if ( $ this -> Organization !== null ) { $ this -> Organization -> toXML ( $ e ) ; } foreach ( $ this -> ContactPerson as $ cp ) { $ cp -> toXML ( $ e ) ; } foreach ( $ this -> AdditionalMetadataLocation as $ n ) { $ n -> toXML ( $ e ) ; } /** @var \DOMElement $child */ $ child = $ e -> firstChild ; $ this -> signElement ( $ e , $ child ) ; return $ e ; }
Create this EntityDescriptor.

@param \DOMElement|null $parent The EntitiesDescriptor we should append this EntityDescriptor to.
@return \DOMElement
Create this EntityDescriptor .