当前位置: 首页 > 知识库问答 >
问题:

XML验证问题架构

公孙茂学
2023-03-14

我对XML非常陌生,我面临着验证问题,如果我的XML和XSD文件结构良好,我也希望得到一些反馈。

在根据XSD验证XML时,我经常遇到错误-

下面的XML

<?xml version="1.0" encoding="UTF-8"?>
<alumnos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="alumnos.xsd">
        <alumno id=001>
            <nombre>Samuel</nombre>
            <apellido>Van Bladel</apellido>
            <email>Samuelvanbladel@gmail.com</email>
            <foto>https://google.com</foto> 
            <expediente>NX-0001R</expediente>
            <curso>1</curso> 
            <modulo>Mark up languages
            <nota>10/10</nota>
            <comentario>Muy bien hecho hasta el techo.</comentario>
            </modulo>
            <modulo>Java
            <nota>9/10</nota>
            <comentario>Codigo muy bien structurada.</comentario>
            </modulo>
        </alumno>

        <alumno id=002>
            <nombre>Deniz</nombre>
            <apellido>Turki</apellido>
            <email>DenizTurki@gmail.com</email>
            <foto>https://google.com</foto> 
            <expediente>NX-0002R</expediente>
            <curso>2</curso> 
            <modulo>Mark up languages
            <nota>10/10</nota>
            <comentario>Muy bien hecho hasta el techo.</comentario>
            </modulo>
            <modulo>Java
            <nota>9/10</nota>
            <comentario>Codigo muy bien structurada.</comentario>
            </modulo>
        </alumno>

        <alumno id=003>
            <nombre>Denisa</nombre>
            <apellido>Hermann</apellido>
            <email>Denisahermann@gmail.com</email>
            <foto>https://google.com</foto> 
            <expediente>NX-0003R</expediente>
            <curso>3</curso> 
            <modulo>Mark up languages
            <nota>10/10</nota>
            <comentario>Muy bien hecho hasta el techo.</comentario>
            </modulo>
            <modulo>Java
            <nota>9/10</nota>
            <comentario>Codigo muy bien structurada.</comentario>
            </modulo>
        </alumno>

        <alumno id=004>
            <nombre>Bruno</nombre>
            <apellido>porto</apellido>
            <email>BrunoPorto@gmail.com</email>
            <foto>https://google.com</foto> 
            <expediente>NX-0004R</expediente>
            <curso>4</curso> 
            <modulo>Mark up languages
            <nota>10/10</nota>
            <comentario>Muy bien hecho hasta el techo.</comentario>
            </modulo>
            <modulo>Java
            <nota>9/10</nota>
            <comentario>Codigo muy bien structurada.</comentario>
            </modulo>
        </alumno>

</alumnos>

XSD

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

<xs:schema xmlns:xs="http://www.w3.org/2001XMLSchema-instance"
>


<!-- definition of simple elements -->
                    <xs:element name="nombre">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="0"/>
                          <xs:maxLength value="20"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

                    <xs:element name="apellido">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="0"/>
                          <xs:maxLength value="30"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

                    <xs:element name="comentario">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="0"/>
                          <xs:maxLength value="50"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

                    <xs:element name="modulo">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:minLength value="0"/>
                          <xs:maxLength value="10"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

                    <xs:element name="nota" type="xs:string" >
                      <xs:simpleType>
                         <xs:restriction base="xs:integer">
                           <xs:minLength value="0"/>
                           <xs:maxLength value="10"/>
                         </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

                    <xs:element name="email"/> 
                        <xs:simpleType > 
                          <xs:restriction base="xs:string"> 
                            <xs:pattern value="[^@]+@[^\.]+\..+"/> 
                          </xs:restriction> 
                        </xs:simpleType> 
                    </xs:element>

                    <xs:element name="foto">
                    <xs:simpleType>
                        <xs:restriction base="xs:anyURI">
                            <xs:pattern value="http://.+" />
                        </xs:restriction>
                        </xs:simpleType>
                    </xs:element>

                    <xs:element name="expediente">
                    <xs:simpleType>
                        <xs:restriction base="string">
                            <xs:pattern value="NX + [0-9][0-9][0-9][0-9][0-9] + R"/>
                        </xs:restriction>
                    </xs:simpleType>


<!-- definition of attributes -->
    <xs:attribute name="id" type="xs:integer" use="required"/>

<!-- definition of complex elements -->

    <xs:element name="alumno">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="nombre"/>
                <xs:element ref="apellido"/>
                <xs:element ref="modulo"/>
                <xs:element ref="nota"/>     
                <xs:element ref="expediente"/> 
                <xs:element ref="foto"/> 
                <xs:element ref="email"/>
                <xs:element ref="comentario"/>
            </xs:sequence>    
        </xs:complexType>
    </xs:element>

    <xs:element name="modulo">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="nota"/>     
                <xs:element ref="comentario"/>
            </xs:sequence>    
        </xs:complexType>
    </xs:element>


  </xs:element>
</xs:schema>

如果你发现其中任何一个有任何错误,请随时指出。它们都有从图案到最大长度的限制。

谢谢!!!!

共有1个答案

公孙鸿才
2023-03-14

您已经在XSD中自行关闭了下面的标记
<代码>

 类似资料:
  • 我一直在尝试改进针对XSD模式的XML验证性能,特别是关于XSD唯一约束的性能,并决定尝试一下Woodstox。我基本上遵循了这个示例,将更改为。 不过,我遇到的问题是,Woodstox验证器会发现XML有效,即使XML违反了唯一约束。将我的java代码切换回“常规”、和时,会正确检测到唯一性约束冲突。 此外,我可以确认Woodstox验证器做了一些事情,因为例如,如果我有一个负数,其中一个正数是

  • 我们在根模式中定义了一些抽象元素,例如: ...然后扩展如下: 这些元素在我们的xml文件中使用: 然而,当我尝试使用Saxon命令行验证xml时,我得到以下错误消息: 这里有一个指向实际示例文件的链接,供参考:xml/root模式-ext模式 任何帮助将不胜感激:)

  • 我是XML新手。这是一个家庭作业。我已经尽了最大努力,但我无法让实例文档进行验证。我总是犯错误 “找不到元素'站点'的声明。 我想我可能错误地声明了一些名称空间或者schemaLocations。有人能给我指一下正确的方向吗? 作业步骤: > <块引用> 在sites.xml文件中,向根站点元素添加命名空间声明,将xs前缀与XML Schema命名空间的URI相关联。为文件指定默认命名空间http

  • 本文向大家介绍关于ThinkPhp 框架表单验证及ajax验证问题,包括了关于ThinkPhp 框架表单验证及ajax验证问题的使用技巧和注意事项,需要的朋友参考一下 之前的表单验证都是用js写的,这里也可以使用tp框架的验证。但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降。    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用c

  • 问题内容: 但是,这将返回一条错误消息:线程“ main”中的异常java.lang.IllegalArgumentException:无法加载实现由http://www.w3.org/2001/XMLSchema -instance 指定的模式语言的SchemaFactory。 这是我的代码还是实际的xsd文件有问题? 问题答案: 该错误意味着您安装的Java没有任何可解析XMLSchema文件

  • 使用eclipse时,我消除了所有错误,但当我更改xml文档中的元素内容时,超出了中设置的限制。xsd文件没有出现验证错误。我已尝试使用联机验证http://www.freeformatter.com/xml-validator-xsd.html我得到了错误“Cvc elt.1:找不到元素“DatabaseInventory”…行“4”,列“69”的声明”,但在eclipse中它验证得很好。不知道