public function loadPublicXmlKey($publicKey, $isFile = true, $objectId = null)
	{
		if (true === $isFile)
		{
			try
			{
				$publicKey = $this->loadFile($publicKey);
			}
			catch (\UnexpectedValueException $e)
			{
				throw $e;
			}
		}
		
		$keyNode = null;
		
		// if the key is a string, assume that it's valid XML markup and load it into a dom docuemnt
		if (is_string($publicKey) && strlen($publicKey))
		{
			$keyNode = new \DOMDocument;
			
			if (!@$keyNode->loadXML($publicKey))
			{
				throw new \UnexpectedValueException('The provided public XML key does not appear to be well structured XML');
			}
		}
		// DOM nodes are sexy as fuck
		else if (is_object($publicKey) && $publicKey instanceof DOMDocument)
		{
			$keyNode = $publicKey;
		}
		// woops, a bad key was provided :(
		else
		{
			throw new \UnexpectedValueException('Unsupported XML public key provided');
		}
		
		// add the key to the DOM
		return $this->appendXmlPublicKey($keyNode, $objectId);
	}