Мне нужно добавить определение пространства имен для элемента, так как он не добавляется, когда генерируется xml с использованием apache xmlbean. Как мне добиться этого с помощью API xmlbeans?
Я нашел ответ на проблему. Вот как это.
XmlCursor cursor= targetObject.newCursor(); cursor.toNextToken(); cursor.insertNamespace("A", "namespace1"); //For example cursor.insertNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); cursor.dispose();
Использование:
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);