Java Neo4j:使用XSD强制实现模式

Java Neo4j:使用XSD强制实现模式,java,rest,xsd,neo4j,views,Java,Rest,Xsd,Neo4j,Views,我想知道是否有一个用于Neo4j的工具可以读取XSD文件并使用它在Neo4j上强制实施模式 我是图形数据库的新手,但我开始欣赏无模式方法。有很多项目已经注入了大量的非连续数据,并对其进行了解释,这真的很酷 我遇到了一些要求,要求控制节点或边缘可以提供特定标签的属性以及边缘可以提供源节点和目标节点标签的标签。模式也会发生变化——尽管不是很频繁 据我所知,标准实践是从应用程序本身控制模式,我认为这不应该是最佳实践。例如,Oracle land挑剔的开发人员为应用程序创建视图进行交互,然后在应用程序尝

我想知道是否有一个用于Neo4j的工具可以读取XSD文件并使用它在Neo4j上强制实施模式

我是图形数据库的新手,但我开始欣赏无模式方法。有很多项目已经注入了大量的非连续数据,并对其进行了解释,这真的很酷

我遇到了一些要求,要求控制节点或边缘可以提供特定标签的属性以及边缘可以提供源节点和目标节点标签的标签。模式也会发生变化——尽管不是很频繁

据我所知,标准实践是从应用程序本身控制模式,我认为这不应该是最佳实践。例如,Oracle land挑剔的开发人员为应用程序创建视图进行交互,然后在应用程序尝试在视图上插入或更新时,将触发器应用于执行适当事务的视图

我会在Neo4j中寻找一个类似的设备,因为我已经有XSD文件了,所以简单地将它们转储到一个文件夹中,并让它使用这些文件来参考执行的内容,总的来说会少很多工作

这是我愿意自己写的东西,除非已经有一个图书馆。毕竟我有一份白天的工作。:)


谢谢

这个工具不仅不存在,而且如果没有更多关于标准化XML在neo4j中的存储方式的工作,它甚至不可能存在。XML模型和neo4j模型之间有一些关键区别

有一种方法可以将XML导入neo4j;文档,而不是模式。但在它的运作方式中,有许多事情需要记住:

  • 从XML元素/属性到neo4j节点/属性没有明显的映射。您可能认为元素应该是节点、属性和属性;但更好的图形模型通常与此不同。例如,XML名称空间将成为伟大的节点,因为它们连接到许多其他事物(例如名称空间中定义的所有元素),但通常它们是属性。也许名称空间应该是标签?也可能是一个合理的选择,除了没有标准的答案
  • XML树有顺序,顺序问题;图表没有。假设您有一个包含两个子元素的XML元素,
    A
    B
    。在neo4j中,您可能有一个节点连接到另外两个节点,但您需要一种表示(可能通过关系属性)a在B之前的方式。这在neo4j中当然是可行的,但就我所知,关于如何做到这一点,还没有达成一致意见。因此,您可以选择一个
    序列
    属性,并给它一个整数值。似乎合理…但现在您的模式验证软件依赖于该设计选择。以任何其他方式存储的neo4j中的XML都无法验证
  • 有许多XML处理选项在模式验证中起作用,而在图中则不起作用,例如,您是否关心忽略空白节点、严格模式验证与松弛模式验证,等等

  • 看,neo4j很棒,但是如果您真的需要验证一堆XML文档,它可能不是您的最佳选择,因为图形模型和XML的文档模型之间存在一些不匹配。可能的选择可能是在文档进入neo4j之前对其进行验证,或者只是想出一种方法,从neo4j中的内容合成XML文档,然后在结果超出图形数据库后作为XML文件进行验证。

    谢谢!这正是我想听的。我不是在寻找Neo4j模块本身。更像是一个连接器,我可以在同一台机器上托管,这样我就可以将Neo4j配置为仅在本地主机上侦听。连接器将读取XSD并在数据(XML或其他)进入数据库之前验证数据。