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 cvc elt.1.a:找不到元素';人';_Java_Xml_Validation_Xsd - Fatal编程技术网

Java cvc elt.1.a:找不到元素';人';

Java cvc elt.1.a:找不到元素';人';,java,xml,validation,xsd,Java,Xml,Validation,Xsd,我正在尝试使用XSD验证我的XML文档。我尝试过为所有内容提供名称空间,包括默认名称空间。但是,错误仍然存在。如果有人能告诉我出了什么问题,我们将不胜感激 <?xml version="1.0" encoding="UTF-8" ?> <!-- <!DOCTYPE people SYSTEM "validator.dtd"> --> <people xmlns:cmuq="http://www.cmu.edu/ns/s

我正在尝试使用XSD验证我的XML文档。我尝试过为所有内容提供名称空间,包括默认名称空间。但是,错误仍然存在。如果有人能告诉我出了什么问题,我们将不胜感激

    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- <!DOCTYPE people SYSTEM "validator.dtd"> -->

    <people 
    xmlns:cmuq="http://www.cmu.edu/ns/students"
    xmlns="http://www.cmu.edy/ns/blank"
    xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
    xsi:schemaLocation="student.xsd"
    >
        <cmuq:student>
            <name>John</name>
            <course>Computer Technology</course>
            <semester>6</semester>
            <scheme>E</scheme>
        </cmuq:student>

        <cmuq:student>
            <name>Foo</name>
            <course>Industrial Electronics</course>
            <semester>6</semester>
            <scheme>E</scheme>
        </cmuq:student>
    </people>   

约翰
计算机技术
6.
E
福
工业电子
6.
E
XSD

请告诉我如何解决该错误


在Ian Roberts的回答后更新 XSD
标记:

  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.cmu.edu/ns/blank"
    targetNamespace="http://www.cmu.edu/ns/blank"
    elementFormDefault="qualified"> 

XML的根,
标记

 <people
    xmlns="http://www.cmu.edu/ns/blank"
    xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.cmu.edu/ns/blank student.xsd">  

它仍然无法验证。目前,我已经放弃了添加
xmlns:cmuq
的想法,但问题依然存在。
>

http://www.cmu.edu/ns/students
namespace(架构的目标名称空间)和无名称空间中的所有嵌套元素(因为您不使用
elementFormDefault
)。所以它必须是

<cmuq:people
  xmlns:cmuq="http://www.cmu.edu/ns/students"
  xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.cmu.edu/ns/students student.xsd"
>
    <student>


还请注意,
xsi:schemaLocation
需要是一个
namespaceUri schema
对的列表,而不仅仅是一个模式地址-此属性可以将不同的模式与每个名称空间关联起来。

基本上,我试图做的是添加康奈尔大学的假设学生,
CMU
和其他大学,然后使用各种XSD对其进行验证。我该如何做thta?@LittleChild我建议您单独提出这个问题,因为答案将非常复杂,使用派生类型和元素替换组(请在w3.org的xmlschema-0入门中查找,您可以自己解决)@LittleChild编辑模式后,现在希望所有元素都在
http://www.cmu.edu/ns/blank
名称空间,因此使用
people
元素上的
xmlns=
,它的子元素只需要是
(继承默认名称空间),而不是
,看看:
<cmuq:people
  xmlns:cmuq="http://www.cmu.edu/ns/students"
  xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.cmu.edu/ns/students student.xsd"
>
    <student>