intellij idea中使用xsd约束xml后, xml会报错

intellij idea中使用xsd约束xml后, xml会报错

根节点会报错"Element teaching-plan must be declared" ; 子节点全部报错"Cannot resolve symbol '' "

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

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


正在回答

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

4回答

idea中要求比较严格,与eclipse中有些不同。老师对同学的代码做了如下修改:

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

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

修改后的代码如下:

plan.xsd

<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="teaching-plan">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="course" maxOccurs="100" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="course-name" type="xs:string"></xs:element>
                            <xs:element name="class-hour">
                                <xs:simpleType>
                                    <xs:restriction base="xs:integer">
                                        <xs:minInclusive value="20"></xs:minInclusive>
                                        <xs:maxInclusive value="110"></xs:maxInclusive>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="exam-form" type="xs:string"></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>

xml:

<?xml version="1.0" encoding="UTF-8"?>
<teaching-plan xmlns="http://www.w3school.com.cn"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="plan.xsd">
    <course no="999">
        <course-name>大学英语</course-name>
        <class-hour>120</class-hour>
        <exam-form>考试</exam-form>
    </course>
    <course no="999">
        <course-name>大学英语</course-name>
        <class-hour>1</class-hour>
        <exam-form>考试</exam-form>
    </course>
</teaching-plan>

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


提问者 慕雪6307026 2018-10-22 14:30:34

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
   <element name="teaching-plan">
       <complexType>
           <sequence>
               <element name="course" minOccurs="0" maxOccurs="100">
                   <complexType>
                       <sequence>
                           <element name="course-name" type="string"></element>
                           <element name="class-hour">
                               <simpleType>
                                   <restriction base="integer">
                                       <minInclusive value="2"></minInclusive>
                                       <maxInclusive value="110"></maxInclusive>
                                   </restriction>
                               </simpleType>
                           </element>
                           <element name="exam-form" type="string"></element>
                       </sequence>
                       <attribute name="id" type="string" use="required"></attribute>
                   </complexType>
               </element>
           </sequence>
       </complexType>
   </element>
</schema>

提问者 慕雪6307026 2018-10-22 14:29:49

<?xml version="1.0" encoding="UTF-8"?>

<teaching-plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="plan.xsd">
   <course id="001">
       <course-name>大学英语</course-name>
       <class-hour>36</class-hour>
       <exam-form>考试</exam-form>
   </course>
   <course id="002">
       <course-name>高等数学</course-name>
       <class-hour>70</class-hour>
       <exam-form>考试</exam-form>
   </course>
   <course id="003">
       <course-name>计算机应用基础</course-name>
       <class-hour>70</class-hour>
       <exam-form>上机考试</exam-form>
   </course>
   <course id="004">
       <course-name>大学物理</course-name>
       <class-hour>85</class-hour>
       <exam-form>考试</exam-form>
   </course>
</teaching-plan>



好帮手慕阿莹 2018-10-19 18:22:20

建议同学把 xsi:noNamespaceSchemaLocation="new.xsd" 改为  xsi:schemaLocation="new.xsd" 试试。看看是否还会报错。

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

  • 提问者 慕雪6307026 #1
    还是会报错
    2018-10-19 20:45:15
  • 好帮手慕阿莹 回复 提问者 慕雪6307026 #2
    请同学提供一下你的相关代码,老师调试一下试试。 并且不要在回复里贴代码,会失去代码的格式,可以在添加回答中贴一下代码 如果我的回答解决了你的问题,请采纳,祝学习愉快.
    2018-10-21 10:07:16
  • 我的情况和这位同学的一样,但是去掉noNamespace就不会报错了,,但是在xsd文件中添加age的约束条件的时候,好像没有约束到xml文档,,这个是怎么回事。。求解
    2018-10-21 19:15:29
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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