public Node getPayloadNode() throws Exception {
		
		Node result = null;
		Node payloadNode = Utilities.selectSingleNode(this.getDocument(), "/dc:DCTransaction/*/dc:Payload", XMLLabels.STANDARD_NAMESPACES);
		if(payloadNode != null) {
			Node first = payloadNode.getFirstChild();
			if(first != null) {
				switch(first.getNodeType()) {
					case Node.CDATA_SECTION_NODE:
					case Node.TEXT_NODE: {
						result = Utilities.parseXml(payloadNode.getTextContent());
						break;
					}
					case Node.ELEMENT_NODE: {
						result = first;
						break;
					}
					default: {
						throw new IllegalArgumentException();
					}
				} 
			}
		}
		
		return result;
	}