summaryrefslogtreecommitdiffstats
path: root/lib/SAML2/XML/md/RequestedAttribute.php
blob: 124a25daa2139633865241a4d6f9116dc54462e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php

/**
 * Class representing SAML 2 metadata RequestedAttribute.
 *
 * @package simpleSAMLphp
 * @version $Id$
 */
class SAML2_XML_md_RequestedAttribute extends SAML2_XML_saml_Attribute {

	/**
	 * Whether this attribute is required.
	 *
	 * @var bool|NULL
	 */
	public $isRequired = NULL;


	/**
	 * Initialize an RequestedAttribute.
	 *
	 * @param DOMElement|NULL $xml  The XML element we should load.
	 */
	public function __construct(DOMElement $xml = NULL) {
		parent::__construct($xml);

		if ($xml === NULL) {
			return;
		}

		$this->isRequired = SAML2_Utils::parseBoolean($xml, 'isRequired', NULL);
	}


	/**
	 * Convert this RequestedAttribute to XML.
	 *
	 * @param DOMElement $parent  The element we should append this RequestedAttribute to.
	 */
	public function toXML(DOMElement $parent) {
		assert('is_bool($this->isRequired) || is_null($this->isRequired)');

		$e = $this->toXMLInternal($parent, SAML2_Const::NS_MD, 'md:RequestedAttribute');

		if ($this->isRequired === TRUE) {
			$e->setAttribute('isRequired', 'true');
		} elseif ($this->isRequired === FALSE) {
			$e->setAttribute('isRequired', 'false');
		}

		return $e;
	}

}