java 。 XML。如何根据 XSD 架构验证 xml 文档的某些部分?

标签 java xml validation xpath xsd

我有来自 String 和 Document 中的 Web 服务的 SOAP 响应格式,我有一个验证它的方法。问题是我必须验证节点 <Result> .

我已经得到了这个节点,但不知道如何获取带有标签等的子节点

Node result = (Node)xPath.compile("//Result").evaluate(xmlDocument, XPathConstants.NODE);

        <Result>
        <playerID>some id</playerID>
        <partnerUID>some partner uid</partnerUID>
        <registrationLevel>some registration level</registrationLevel>
        <properties>
           <property>
              <key>some key</key>
              <value>some value</value>
           </property>
           <property>...</property>
        </Result>

感谢帮助

最佳答案

我使用这种方式针对 XSD 验证 XML 文件。我认为这会对您有所帮助。

public String validateXMLSchema() throws SAXException, IOException
{
    File folder = new File("xsdPath");
    File[] listOfFiles = folder.listFiles();
    String tempXsdFile;

    for( int i=0; i < listOfFiles.length; i++ )
    {
        if(listOfFiles[i].isFile())
        {
            tempXsdFile = listOfFiles[i].getName();

            try
            {
                SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

                Schema schema = factory.newSchema(new File(xsdPath + tempXsdFile));

                Validator validator = schema.newValidator();
                validator.validate(new StreamSource(new File("C://Users//test.xml")));
                return tempXsdFile;
            }
            catch (IOException | SAXException e)
            {
                System.out.println("ERROR: XML not well known"+ e.getMessage());
            }
        }
    }

    return null;
}

关于 java 。 XML。如何根据 XSD 架构验证 xml 文档的某些部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22931422/

相关文章:

java - bignum 最快的实现是什么? (Java 的 bigInteger/Cython 的 int/gmpy/等等...)

xml - xsl-fo,org.apache.fop.fo.ValidationException : "fo:table-body" is missing child elements

javascript - 使用扩展器的 Knockout.js 验证 - 防止加载验证

ruby-on-rails - 为什么 HABTM 上的 "validate"选项不起作用?

java - android 是否有 firebase 使用的 <defaultsMap> xml 标签?

php - Codeigniter get_csrf_hash() 返回空

Java - 如何启动并忘记进程

java - 检查当前日期java

java - 伪编程语言的正则表达式

xml - TSQL FOR XML 路径属性,类型