idea在xml中报错,xsd中没有错误

idea在xml中报错,xsd中没有错误

<?xml version="1.0" encoding="UTF-8"?>
<hr xmlns="http://www.w3school.com.cn"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="hr-schema.xsd">
    <employee no="3309">
        <name>张三</name>
        <age>31</age>
        <salary>4000</salary>
        <department>
            <dname>会计部</dname>
            <address>XX大厦-B103</address>
        </department>
    </employee>

    <employee no="3310">
        <name>李四</name>
        <age>23</age>
        <salary>3000</salary>
        <department>
            <dname>工程部</dname>
            <address>XX大厦-B105</address>
        </department>
    </employee>
</hr>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.w3school.com.cn"
           xmlns="http://www.w3school.com.cn"
           elementFormDefault="qualified">
    <xs:element name="hr">
        <!-- complexType标签含义是复杂节点,包含子节点时必须使用这个标签 -->
        <xs:complexType>
            <xs:sequence><!-- 这里面的子节点必须按顺序书写 -->
                <xs:element name="employee" minOccurs="1" maxOccurs="9999">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name" type="xs:string"></xs:element>
                            <xs:element name="age">
                              <xs:simpleType>
                                <xs:restriction base="xs:integer">
                                  <xs:minInclusive value="18"></xs:minInclusive>
                                  <xs:maxInclusive value="60"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleType>
                            </xs:element>
                            <xs:element name="salary" type="xs:integer"></xs:element>
                            <xs:element name="department">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="dname" type="xs:string"></xs:element>
                                        <xs:element name="address" type="xs:string"></xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                      <xs:attribute name="no" type="xs:string" use="required"></xs:attribute>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>


正在回答

登陆购买课程后可参与讨论,去登陆

6回答

同学你好,很抱歉老师刚才以为同学使用的是eclipse运行的,老师将代码粘贴到idea中,同学编写的没有问题哦~

eclipse和idea的检查语法规则有些不同,idea的语法比较严格,同学最开始的编写方式是正确的。

具体如下:

http://img1.sycdn.imooc.com//climg/5dc12a22099a622508070599.jpg

http://img1.sycdn.imooc.com//climg/5dc12b9009a30a2410370887.jpg

如果同学的代码报错,建议重新启动一下编译器试试哦~

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

提问者 mixiaofan 2019-11-05 17:04:07

http://img1.sycdn.imooc.com//climg/5dc13a2009baf11d18810526.jpg我将课堂的文件和作业的文件放在一个项目下了,hr的引用hr.xsd,plan的应用plan.xsd,可是hr的xmlns="http://www.w3school.com.cn"   指向的却是plan.xsd文件。

我将plan.xsd删除,hr.xml就不再报错,正常了。这是为什么?同一个项目下不能同时存在多个不同xml的不同约束文件吗?引用的文件指向都是正确的,但是属性为什么只能指向一个文件呢?还是我配置错了什么

  • 同学你好,同一个项目下是不能同时存在多个不同xml的不同约束文件的,因为xmlns这里指向的是全局命名空间,会导致文件指向错误,所以建议可以将hr的xmlns="http://www.w3school.com.cn"删除,只使用指定的命名空间指向。也就是xmlns:xsi就可以啦,如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-11-05 17:17:55
好帮手慕酷酷 2019-11-05 16:35:23

同学你好,老师这里测试是没有问题的,建议同学将鼠标放在如下位置的报错信息是什么呢?建议进行截图。

http://img1.sycdn.imooc.com//climg/5dc1336c09cbf1b409590150.jpg

并且建议同学按住ctrl+鼠标点击如下位置,是否会进入到对应的xsd文件中呢?

http://img1.sycdn.imooc.com//climg/5dc1343609af560907280155.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 mixiaofan #1
    已在新楼回复,发现有其他因素
    2019-11-05 17:04:35
提问者 mixiaofan 2019-11-05 16:07:44

http://img1.sycdn.imooc.com//climg/5dc12d870967dea018960153.jpg

http://img1.sycdn.imooc.com//climg/5dc12d9209bd763917870208.jpg


第一张图是初版,依然报错,但删除几条语句后,改为第二张图就正常了。请问是为什么?

提问者 mixiaofan 2019-11-05 15:07:24

http://img1.sycdn.imooc.com//climg/5dc11f5a0928c69219200944.jpg在IDEA中按修改的依然XML中报错。

http://img1.sycdn.imooc.com//climg/5dc11f9609ecba1506240121.jpg


好帮手慕酷酷 2019-11-05 14:41:31

同学你好,代码编写的不错,报错的原因是xsd文件头中不需要设置targetNamespace、xmlns:xs、 elementFormDefault等内容了,因为xml中noNamespaceSchemaLocation引用的是没有目标名称空间的hr-schema.xsd,所以也就不需要设置targetNamespace、xmlns:xs、 elementFormDefault等内容了。并且在xml的内容中也不需要自定义的方式来命名作用空间。

如:

http://img1.sycdn.imooc.com//climg/5dc1198109808c7410210698.jpg

修改后的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="hr">
        <!-- complexType标签含义是复杂节点,包含子节点时必须使用这个标签 -->
        
        <complexType>
            <sequence><!-- 这里面的子节点必须按顺序书写 -->
                <element name="employee" minOccurs="1" maxOccurs="9999">
                    <complexType>
                        <sequence>
                            <element name="name" type="string"></element>
                            <element name="age">
                              <simpleType>
                                <restriction base="integer">
                                  <minInclusive value="18"></minInclusive>
                                  <maxInclusive value="60"></maxInclusive>
                                </restriction>
                              </simpleType>
                            </element>
                            <element name="salary" type="integer"></element>
                            <element name="department">
                                <complexType>
                                    <sequence>
                                        <element name="dname" type="string"></element>
                                        <element name="address" type="string"></element>
                                    </sequence>
                                </complexType>
                            </element>
                        </sequence>
                      <attribute name="no" type="string" use="required"></attribute>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 mixiaofan #1
    还是不行,具体在回复
    2019-11-05 15:07:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师