Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将xml文件中的元素与其在模式中的声明进行匹配_Java_Xml_Xsd - Fatal编程技术网

Java 将xml文件中的元素与其在模式中的声明进行匹配

Java 将xml文件中的元素与其在模式中的声明进行匹配,java,xml,xsd,Java,Xml,Xsd,我想编写一个将XML模式作为输入并具有以下用例的应用程序: 实例化模式。(即,创建符合模式的随机XML实例。) 遍历这样一个XML实例,并在不违反模式的情况下更改元素及其属性的值。(这包括在序列中添加/删除元素、用其他选项替换元素、添加/删除可选属性等) 基本上,我需要一种在内存中同时表示模式和XML实例的方法,这将允许我将实例中的元素与模式中的元素相匹配。 最好是足够通用,以处理DTD、XSD和RELAXNG;不过,处理XSD也就足够了 所以我的问题是:是否有一个图书馆允许我这样做 是一个非常

我想编写一个将XML模式作为输入并具有以下用例的应用程序:

  • 实例化模式。(即,创建符合模式的随机XML实例。)
  • 遍历这样一个XML实例,并在不违反模式的情况下更改元素及其属性的值。(这包括在序列中添加/删除元素、用其他选项替换元素、添加/删除可选属性等)
  • 基本上,我需要一种在内存中同时表示模式和XML实例的方法,这将允许我将实例中的元素与模式中的元素相匹配。 最好是足够通用,以处理DTD、XSD和RELAXNG;不过,处理XSD也就足够了

    所以我的问题是:是否有一个图书馆允许我这样做

    是一个非常好的java xml库。我不认为任何库都会做你的第一个开箱即用的用例,但它应该相对容易自己实现


    对于他们使用的模式验证,这可能足以满足您的需要。但是,我从未直接使用过它。

    我实际上尝试使用Xerces来表示模式(作为XSModel);但是,我找不到一种方法来迭代它的所有元素(尽管可以在全局元素上迭代),而且,我只找到了一种方法来搜索顶级声明,我真的很想避免验证XML实例,因为这样做效率很低——我已经知道它是有效的,因为我自己实例化了模式。在Dom4J中,您可以用XPath表示法处理元素,并检索匹配节点的列表。这应该使您能够迭代所有元素。不过,我得承认我并没有太广泛地使用它。