3

Java で XOM を使用して GraphML ドキュメントを書き出そうとしていますが、すべての名前空間宣言を正しく取得する方法がわかりません。有効な graphML を作成するには、次のようなルート要素が必要です。

<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) が発生するためです。何か案は?

4

1 に答える 1

3

これでうまくいくはずです。xsi:schemaLocation基本的に、属性の名前空間 URI を提供していません。したがって、明らかに機能しない名前空間のない接頭辞付き属性を作成しようとしています。

root.addAttribute(new Attribute("xsi:schemaLocation",
    "http://www.w3.org/2001/XMLSchema-instance",
    "http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd"));

正しい属性コンストラクターについては、こちらを確認してください

Attribute(String name, String URI, String value)

于 2009-11-23T19:46:23.503 に答える