ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
AttributeValue.php
Go to the documentation of this file.
1 <?php
2 
3 namespace SAML2\XML\saml;
4 
7 use SAML2\Utils;
8 
14 class AttributeValue implements \Serializable
15 {
21  public $element;
22 
31  public function __construct($value)
32  {
33  assert(is_string($value) || $value instanceof \DOMElement);
34 
35  if (is_string($value)) {
37  $this->element = $doc->createElementNS(Constants::NS_SAML, 'saml:AttributeValue');
38  $this->element->setAttributeNS(Constants::NS_XSI, 'xsi:type', 'xs:string');
39  $this->element->appendChild($doc->createTextNode($value));
40 
41  /* Make sure that the xs-namespace is available in the AttributeValue (for xs:string). */
42  $this->element->setAttributeNS(Constants::NS_XS, 'xs:tmp', 'tmp');
43  $this->element->removeAttributeNS(Constants::NS_XS, 'tmp');
44 
45  return;
46  }
47 
48  if ($value->namespaceURI === Constants::NS_SAML && $value->localName === 'AttributeValue') {
49  $this->element = Utils::copyElement($value);
50 
51  return;
52  }
53 
55  $this->element = $doc->createElementNS(Constants::NS_SAML, 'saml:AttributeValue');
56  Utils::copyElement($value, $this->element);
57  }
58 
65  public function toXML(\DOMElement $parent)
66  {
67  assert($this->element instanceof \DOMElement);
68  assert($this->element->namespaceURI === \SAML2\Constants::NS_SAML && $this->element->localName === "AttributeValue");
69 
70  $v = Utils::copyElement($this->element, $parent);
71 
72  return $v;
73  }
74 
78  public function getString()
79  {
80  return $this->element->textContent;
81  }
82 
90  public function __toString()
91  {
92  assert($this->element instanceof \DOMElement);
93 
94  $doc = $this->element->ownerDocument;
95 
96  $ret = '';
97  foreach ($this->element->childNodes as $c) {
98  $ret .= $doc->saveXML($c);
99  }
100 
101  return $ret;
102  }
103 
104 
110  public function serialize()
111  {
112  return serialize($this->element->ownerDocument->saveXML($this->element));
113  }
114 
115 
121  public function unserialize($serialized)
122  {
123  $doc = DOMDocumentFactory::fromString(unserialize($serialized));
124  $this->element = $doc->documentElement;
125  }
126 }
serialize()
Serialize this AttributeValue.
__construct($value)
Create an AttributeValue.
getString()
Returns a plain text content of the attribute value.
const NS_XS
The namespace fox XML schema.
Definition: Constants.php:235
const NS_XSI
The namespace for XML schema instance.
Definition: Constants.php:240
$ret
Definition: parser.php:6
toXML(\DOMElement $parent)
Append this attribute value to an element.
unserialize($serialized)
Un-serialize this AttributeValue.
__toString()
Convert this attribute value to a string.
const NS_SAML
The namespace for the SAML 2 assertions.
Definition: Constants.php:225