Viewing file: Attribute.php (2.62 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * Class representing SAML 2 Attribute. * * @package simpleSAMLphp * @version $Id$ */ class SAML2_XML_saml_Attribute {
/** * The Name of this attribute. * * @var string */ public $Name;
/** * The NameFormat of this attribute. * * @var string|NULL */ public $NameFormat;
/** * The FriendlyName of this attribute. * * @var string|NULL */ public $FriendlyName = NULL;
/** * List of attribute values. * * Array of SAML2_XML_saml_AttributeValue elements. * * @var array */ public $AttributeValue = array();
/** * Initialize an Attribute. * * @param DOMElement|NULL $xml The XML element we should load. */ public function __construct(DOMElement $xml = NULL) {
if ($xml === NULL) { return; }
if (!$xml->hasAttribute('Name')) { throw new Exception('Missing Name on Attribute.'); } $this->Name = $xml->getAttribute('Name');
if ($xml->hasAttribute('NameFormat')) { $this->NameFormat = $xml->getAttribute('NameFormat'); }
if ($xml->hasAttribute('FriendlyName')) { $this->FriendlyName = $xml->getAttribute('FriendlyName'); }
foreach (SAML2_Utils::xpQuery($xml, './saml_assertion:AttributeValue') as $av) { $this->AttributeValue[] = new SAML2_XML_saml_AttributeValue($av); } }
/** * Internal implementation of toXML. * This function allows RequestedAttribute to specify the element name and namespace. * * @param DOMElement $parent The element we should append this Attribute to. * @param string $namespace The namespace the element should be created in. * @param string $name The name of the element. */ protected function toXMLInternal(DOMElement $parent, $namespace, $name) { assert('is_string($namespace)'); assert('is_string($name)'); assert('is_string($this->Name)'); assert('is_null($this->NameFormat) || is_string($this->NameFormat)'); assert('is_null($this->FriendlyName) || is_string($this->FriendlyName)'); assert('is_array($this->AttributeValue)');
$e = $parent->ownerDocument->createElementNS($namespace, $name); $parent->appendChild($e);
$e->setAttribute('Name', $this->Name);
if (isset($this->NameFormat)) { $e->setAttribute('NameFormat', $this->NameFormat); }
if (isset($this->FriendlyName)) { $e->setAttribute('FriendlyName', $this->FriendlyName); }
foreach ($this->AttributeValue as $av) { $av->toXML($e); }
return $e; }
/** * Convert this Attribute to XML. * * @param DOMElement $parent The element we should append this Attribute to. */ public function toXML(DOMElement $parent) { return $this->toXMLInternal($parent, SAML2_Const::NS_SAML, 'saml:Attribute'); }
}
|