protected function createXmlStructure()
	{
		$this->doc = new \DOMDocument('1.0', 'UTF-8');
		$this->doc->xmlStandalone = $this->standalone;
		
		// Signature node
		$signature = $this->doc->createElementNS(self::XML_DSIG_NS, $this->nodeNsPrefix . 'Signature');
		$this->doc->appendChild($signature);
		
		// SignedInfo node
		$signedInfo = $this->doc->createElement($this->nodeNsPrefix . 'SignedInfo');
		$signature->appendChild($signedInfo);
		
		// canonicalization method node
		$c14nMethod = $this->doc->createElement($this->nodeNsPrefix . 'CanonicalizationMethod');
		$c14nMethod->setAttribute('Algorithm', $this->canonicalMethod);
		$signedInfo->appendChild($c14nMethod);
		
		// specify the hash algorithm used
		$sigMethod = $this->doc->createElement($this->nodeNsPrefix . 'SignatureMethod');
		$sigMethod->setAttribute('Algorithm', $this->chooseSignatureMethod());
		$signedInfo->appendChild($sigMethod);
		
		// create the node that will hold the signature
		$sigValue = $this->doc->createElement($this->nodeNsPrefix . 'SignatureValue');
		$signature->appendChild($sigValue);
		
		// the KeyInfo and KeyValue nodes will contain information about the public key
		$keyInfo = $this->doc->createElement($this->nodeNsPrefix . 'KeyInfo');
		$signature->appendChild($keyInfo);
		
		$keyValue = $this->doc->createElement($this->nodeNsPrefix . 'KeyValue');
		$keyInfo->appendChild($keyValue);
	}