Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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
使用xmlns通过xsd进行Java验证_Java_Xml_Validation_Xsd - Fatal编程技术网

使用xmlns通过xsd进行Java验证

使用xmlns通过xsd进行Java验证,java,xml,validation,xsd,Java,Xml,Validation,Xsd,我需要通过XSD验证XML。如果我在没有命名空间的情况下使用xsd,那么验证是好的。但如果XSD有targetNamespace,我会得到一个错误 文本错误:cvc elt.1:找不到元素'RequestGKN'的声明。 XML 123 XSD 根元素 信息 Java代码 Schema schema = null; Document document = null; xml = "<?xml version=\"1.0\" encoding=\"utf-

我需要通过XSD验证XML。如果我在没有命名空间的情况下使用xsd,那么验证是好的。但如果XSD有targetNamespace,我会得到一个错误

文本错误:cvc elt.1:找不到元素'RequestGKN'的声明。

XML


123
XSD


根元素
信息
Java代码

    Schema schema = null;
    Document document = null;

    xml = "<?xml version=\"1.0\"  encoding=\"utf-8\" ?>\n" +
            "<RequestGKN xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"urn://x-artefacts-rosreestr-gov-ru/requests/gkn/3.0.9\">" +
            "<title>123</title>" +
            "</RequestGKN>";
    try {
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        builderFactory.setNamespaceAware(true);
        DocumentBuilder parser = builderFactory.newDocumentBuilder();
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = docFactory.newDocumentBuilder();
        document = builder.parse(new InputSource(new StringReader(xml)));
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        path = locationXSD.substring(0, locationXSD.lastIndexOf('/')+1);

        //factory.setResourceResolver(new ResourceResolver());
        Source schemaFile = new StreamSource(TemplateHandler.class.getClassLoader().getResourceAsStream(locationXSD));
        schema = factory.newSchema(schemaFile);
    } catch (Exception e) {
        e.printStackTrace();
    }

    Validator validator = schema.newValidator();
    validator.validate(new DOMSource(document));
Schema=null;
单据=空;
xml=“\n”+
"" +
"123" +
"";
试一试{
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
setNamespaceAware(true);
DocumentBuilder parser=builderFactory.newDocumentBuilder();
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder=docFactory.newDocumentBuilder();
document=builder.parse(新的InputSource(新的StringReader(xml));
SchemaFactory factory=SchemaFactory.newInstance(xmlstants.W3C\u XML\u SCHEMA\u NS\u URI);
path=locationXSD.substring(0,locationXSD.lastIndexOf('/')+1);
//setResourceResolver(新的ResourceResolver());
Source schemaFile=newstreamsource(TemplateHandler.class.getClassLoader().getResourceAsStream(locationXSD));
schema=factory.newSchema(schemaFile);
}捕获(例外e){
e、 printStackTrace();
}
Validator Validator=schema.newValidator();
validator.validate(新的DOMSource(文档));

在创建
DocumentBuilder
之前,请确保在
DocumentBuilderFactory
中设置了
架构。
schema
对象是线程安全的,可以毫无问题地重用

SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
String path = locationXSD.substring(0, locationXSD.lastIndexOf('/')+1);
Source schemaFile = new StreamSource(TemplateHandler.class.getClassLoader().getResourceAsStream(locationXSD));
schema = factory.newSchema(schemaFile);//thread safe object which can be reused

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
builderFactory.setSchema(schema);
DocumentBuilder builder = builderFactory.newDocumentBuilder();
document = builder.parse(new InputSource(new StringReader(xml)));

Validator validator = schema.newValidator();
validator.validate(new DOMSource(document));
    Schema schema = null;
    Document document = null;

    xml = "<?xml version=\"1.0\"  encoding=\"utf-8\" ?>\n" +
            "<RequestGKN xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"urn://x-artefacts-rosreestr-gov-ru/requests/gkn/3.0.9\">" +
            "<title>123</title>" +
            "</RequestGKN>";
    try {
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        builderFactory.setNamespaceAware(true);
        DocumentBuilder parser = builderFactory.newDocumentBuilder();
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = docFactory.newDocumentBuilder();
        document = builder.parse(new InputSource(new StringReader(xml)));
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        path = locationXSD.substring(0, locationXSD.lastIndexOf('/')+1);

        //factory.setResourceResolver(new ResourceResolver());
        Source schemaFile = new StreamSource(TemplateHandler.class.getClassLoader().getResourceAsStream(locationXSD));
        schema = factory.newSchema(schemaFile);
    } catch (Exception e) {
        e.printStackTrace();
    }

    Validator validator = schema.newValidator();
    validator.validate(new DOMSource(document));
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
String path = locationXSD.substring(0, locationXSD.lastIndexOf('/')+1);
Source schemaFile = new StreamSource(TemplateHandler.class.getClassLoader().getResourceAsStream(locationXSD));
schema = factory.newSchema(schemaFile);//thread safe object which can be reused

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
builderFactory.setSchema(schema);
DocumentBuilder builder = builderFactory.newDocumentBuilder();
document = builder.parse(new InputSource(new StringReader(xml)));

Validator validator = schema.newValidator();
validator.validate(new DOMSource(document));