Comment ajouter un préfixe d'espace de noms à un objet DOM XML?

Je suis en train de construire un document XML à l'aide d'un espace de noms spécifique. Le document final je suis en train de générer des est censé ressembler à ceci:

<m:documentObject xmlns:m="http://www.myschema.com">
    <sender>token</sender>
    <receiver>token</receiver>
    <payload>token</payload>
</m:documentObject>

Voici ce que j'ai jusqu'à présent.

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element requestElement = document.createElementNS("http://www.myschema.com", "documentObject");

document.appendChild(requestElement);

Element sender = document.createElement("sender");
requestElement.appendChild(sender);     
Text senderText = document.createTextNode("Xmlsender");
sender.appendChild(senderText); 

Element receiver = document.createElement("receiver");
requestElement.appendChild(receiver);       
Text receiverText = document.createTextNode("Xmlreceiver");
receiver.appendChild(receiverText); 

Element payload = document.createElement("payload");
requestElement.appendChild(payload);        
Text payloadText = document.createTextNode("Xmlpayload");
payload.appendChild(payloadText);   

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);

DOMSource source = new DOMSource(requestElement);

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); 
transformer.transform(source, result);

String xmlString = sw.toString();
System.out.println(xmlString)

Pour quelque raison que quand je lance le au-dessus du schéma sort sans le préfixe. Comme indiqué ci-dessous:

<?xml version="1.0" encoding="utf-8"?>
<documentObject xmlns="http://www.myschema.com">
    <sender>Xmlsender</sender>
    <receiver>Xmlreceiver</receiver>
    <payload>Xmlpayload</payload>
</documentObject>

Que dois-je faire pour que XML est exactement comme indiqué dans le premier exemple de XML avec le préfixe d'espace de noms et les étiquettes d'avoir le préfixe d'espace de noms?

Je suis en train de créer une chaîne de caractères XML qui sera utilisé pour un Printemps-WS webservice qui s'attend à un JAXB objet qui est dans le format indiqué dans le premier exemple.

source d'informationauteur ziggy