Я пытаюсь записать документ graphML с XOM в java, но я не могу понять, как правильно получить все объявления пространства имен. Для того, чтобы иметь действительный GraphML, мне нужно иметь корневой элемент, который выглядит следующим образом:Написание GraphML с помощью XOM?
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
Я был в состоянии получить большинство из этого, делая
Element root = new Element("graphml");
root.setNamespaceURI("http://graphml.graphdrawing.org/xmlns");
root.addNamespaceDeclaration("xsi", "http://www.w3.org/2001/XMLSchema-instance");
Проблема является последним элементом этого тега, xsi:schemaLocation
. Я не могу понять, как выразить это в XOM. Я не могу сделать это как обычный атрибут, так как это генерирует исключение (Attribute prefixes must be declared.
) и делает это как дополнительное объявление пространства имен также приводит к исключению (NCNames cannot contain colons
). Есть идеи?
Спасибо, это работает для осуществления проверки sitemaps.org. http://www.sitemaps.org/protocol.html – ronnyfm