idea配置好schema,在xml中引用的问题

idea配置好schema,在xml中引用的问题

<?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.xsd">
   <employee no="0001">
       <name>张三</name>
       <age>30</age>
       <salary>5000</salary>
       <department>
           <dname>会计部</dname>
           <address>xx大厦-B101</address>
       </department>
   </employee>
   <employee no="3310">
       <name>李四</name>
       <age>23</age>
       <salary>3000</salary>
       <department>
           <dname>工程部</dname>
           <address>xx大厦-B104</address>
       </department>
   </employee>
</hr>
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
   <!--根节点-->
   <element name="hr">
       <!--complexType标签含义是复杂节点,包含子节点时必须使用这个标签-->
       <complexType>
           <!--sequence标签定义了子节点的序列-->
           <sequence>
               <element name="employee" minOccurs="1" maxOccurs="9999">
                   <complexType>
                       <sequence>
                           <element name="name" type="string"></element>
                           <element name="age" type="integer"></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>

在xml引用后并不能根据配置的schema进行标签的修正,多了少了都不会报错,咋回事呀

正在回答

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

2回答

同学你好,IDEA语法校验较为严格,xsd文件需要修改一下。修改后的代码如:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!--根节点-->
    <xs:element name="hr">
        <!--complexType标签含义是复杂节点,包含子节点时必须使用这个标签-->
        <xs:complexType>
            <!--sequence标签定义了子节点的序列-->
            <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" type="xs:integer"></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>

修改后,建议同学查看xml是否可以被xsd文件约束。

祝:学习愉快~

  • 明明是只幼刀 提问者 #1
    不行的,无法约束,删除子节点不会报错
    2020-07-20 11:01:23
明明是只幼刀 提问者 2020-07-20 13:02:01

已解决啊哈哈

  • 同学很棒棒哦,继续加油。祝:学习愉快~
    2020-07-20 14:34:02
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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