Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 对xsd模式使用xml验证时出现问题_Java_Xml_Validation_Xsd - Fatal编程技术网

Java 对xsd模式使用xml验证时出现问题

Java 对xsd模式使用xml验证时出现问题,java,xml,validation,xsd,Java,Xml,Validation,Xsd,这是我第一次使用xsd在java中验证xml文档,但我似乎真的无法实现这一点 首先,这里是我的xml文档结构Employees.xml: <?xml version="1.0"?> <x:Employees xmlns:x="urn:Employees"> <Employee id="1"> <name>Some Guy</name> <gender>Male</gender> <

这是我第一次使用xsd在java中验证xml文档,但我似乎真的无法实现这一点

首先,这里是我的xml文档结构Employees.xml:

<?xml version="1.0"?>
<x:Employees xmlns:x="urn:Employees">
  <Employee id="1">
    <name>Some Guy</name>
    <gender>Male</gender>
    <role>Java Developer</role>
  </Employee>
  <Employee id="2">
    <name>Some lady</name>
    <gender>Female</gender>
    <role>CEO</role>
  </Employee>
</x:Employees>
我收到的错误是SAXParseException,并显示:

发现以元素“Employee”开头的无效内容。什么之中的一个 应为“{”urn:Employees:Employee}”

我真的希望有人能向我解释为什么会出问题


我们将非常感谢您的帮助。首先,您应该更正您的XML:

<Employees xmlns="urn:Employees" id="1">
    <name>Some Guy</name>
    <gender>Male</gender>
    <role>Java Developer</role>
</Employees>

谢谢你的回答。不过我现在又犯了一个错误。我已经更新了问题中的代码和错误消息。我希望你能帮我。别介意@Alex。我找到了这个从xml生成xsd的站点,它的反面是:。无论如何,我都会接受你的回答,因为它在路上帮助了我。谢谢:)
try {
            String language = XMLConstants.W3C_XML_SCHEMA_NS_URI;
            SchemaFactory factory = SchemaFactory.newInstance(language);
            schema = factory.newSchema(schemaFile);

            // Parse the XML document to DOM Document, and then validate it
            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
            builderFactory.setNamespaceAware(true);
            DocumentBuilder builder = builderFactory.newDocumentBuilder();
            Document doc = builder.parse(xmlFile);
            DOMSource source = new DOMSource(doc);

            Validator validator = schema.newValidator();
            validator.validate(source);

            return true;

        } catch (Exception e) {
            e.printStackTrace();
            return false;

        }
<Employees xmlns="urn:Employees" id="1">
    <name>Some Guy</name>
    <gender>Male</gender>
    <role>Java Developer</role>
</Employees>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:x="urn:Employees" targetNamespace="urn:Employees">

<xsd:element name="Employees" type="x:Employees"/>
<xsd:complexType name="Employees">
<xsd:sequence>
    <xsd:element name="Employee" type="x:Employee" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Employee">
    <xsd:sequence>
        <xsd:element name="name" type="xsd:string"/>
        <xsd:element name="gender" type="xsd:string"/>
        <xsd:element name="role" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);