3

I need to add namespace defintion to an element since its not getting added when when xml is generated using apache xmlbean. How do I acheieve this using xmlbeans API?

nobody
  • 1,909
  • 5
  • 31
  • 45

2 Answers2

4

I have found answer to the problem. Here's how it is.

XmlCursor cursor= targetObject.newCursor();
cursor.toNextToken();
cursor.insertNamespace("A", "namespace1");
//For example
cursor.insertNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
cursor.dispose();
BenMorel
  • 34,448
  • 50
  • 182
  • 322
nobody
  • 1,909
  • 5
  • 31
  • 45
0

Use:

XmlOptions.setSaveSuggestedPrefixes()

XmlOptions xmlOptions = new XmlOptions();

xmlOptions.setSavePrettyPrint();

xmlOptions.setSavePrettyPrintIndent(4);

xmlOptions.setSaveAggressiveNamespaces();

HashMap<String, String> nsMap = new HashMap<String, String>();

nsMap.put("namespace1","A");

nsMap.put("http://www.w3.org/2001/XMLSchema-instance", "xsi");

xmlOptions.setSaveSuggestedPrefixes(nsMap);

// Create your XmlObject

<Your XmlObject>.save(new File("test.xml"),xmlOptions);
Prasad Jadhav
  • 5,090
  • 16
  • 62
  • 80
pranav
  • 1
  • Didn't work for me - this only sets the suggested prefixes. As far as I understand, the original question was about adding a namespace definition to documents that don't actually use that namespace. – Michael Paesold May 23 '14 at 07:25