gpt4 book ai didi

java - 用 XOM 编写 GraphML?

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:51 27 4
gpt4 key购买 nike

我正在尝试使用 Java 中的 XOM 编写一个 graphML 文档,但我无法弄清楚如何使所有 namespace 声明都正确。要拥有有效的 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 中表达它。我不能将其作为普通属性来执行,因为这会引发异常(必须声明属性前缀。)并将其作为附加 namespace 声明来执行也会导致异常(NCNames cannot包含冒号)。有什么想法吗?

最佳答案

这应该可以做到。基本上您没有为 xsi:schemaLocation 属性提供 namespace 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)

关于java - 用 XOM 编写 GraphML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1785385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com