Ошибка в строке 2: не найдено объявление для элемента 'xs: схема' - PullRequest
1 голос
/ 16 марта 2020

Мне очень трудно проверить мой XSD-файл по моему XML файлу.

Мой XML очень хорошо проверяет, но при попытке сделать то же самое для моего XSD-файла он возвращает эту ошибку:

Ошибка в строке 2: объявление для элемента * не найдено 1006 *

Я использую XML редактор копирования, но когда я использую онлайн-валидатор, такой как https://www.freeformatter.com/xml-validator-xsd.html, проблема не возникает. Я все еще хочу знать, почему я получаю эту ошибку, потому что я не вижу способа объявить "схему", которая является root? или я ошибаюсь. Оба локально хранятся на моем P C.

Ниже XML

<?xml version="1.0" encoding="UTF-8"?>
<students 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd">


            <alumno id="001">
                    <nombre>Samuel</nombre>
                    <apellido>Van Bladel</apellido>
                    <email>Samuelvanbladel@gmail.com</email>
                    <foto>https://google.com</foto> 
                    <expediente>NX0001R</expediente>
                    <curso>1</curso> 


                        <modulo>
                            <modulonom>daw1</modulonom>
                            <nota>10</nota>
                            <comentario>Muy bien hecho hasta el techo</comentario>
                        </modulo>

                       <modulo> 
                           <modulonom>daw2</modulonom>
                           <nota>10</nota>
                           <comentario>Muy bien hecho hasta el techo</comentario>
                       </modulo>
               </alumno>

              <alumno id="002">
                  <nombre>Chris</nombre>
                  <apellido>den oudste</apellido>
                  <email>chris@gmail.com</email>
                  <foto>https://google.com</foto> 
                  <expediente>NX0002R</expediente>
                  <curso>1</curso> 


                   <modulo>
                       <modulonom>daw1</modulonom>
                       <nota>6</nota>
                       <comentario>muy bien</comentario>
                   </modulo>

                     <modulo> 
                         <modulonom>daw2</modulonom>
                         <nota>10</nota>
                         <comentario>Grande</comentario>
                     </modulo>
               </alumno>

               <alumno id="003">
                  <nombre>Denisa</nombre>
                  <apellido>Hermann</apellido>
                  <email>denisa@gmail.com</email>
                  <foto>https://google.com</foto> 
                  <expediente>NX0003R</expediente>
                  <curso>1</curso> 


                   <modulo>
                       <modulonom>daw3</modulonom>
                       <nota>9</nota>
                       <comentario>molt be</comentario>
                   </modulo>

                     <modulo> 
                         <modulonom>daw2</modulonom>
                         <nota>5</nota>
                         <comentario>lo puedes mejorar</comentario>
                     </modulo>
               </alumno>


               <alumno id="004">
                  <nombre>Deniz</nombre>
                  <apellido>Turkmenista</apellido>
                  <email>deniz@gmail.com</email>
                  <foto>https://google.com</foto> 
                  <expediente>NX0004R</expediente>
                  <curso>3</curso> 


                   <modulo>
                       <modulonom>daw6</modulonom>
                       <nota>9</nota>
                       <comentario>Crack</comentario>
                   </modulo>

                     <modulo> 
                         <modulonom>daw2</modulonom>
                         <nota>7</nota>
                         <comentario>Falta un</comentario>
                     </modulo>
               </alumno>



</students>

XSD ниже

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">



                    <xs:attribute name="id" type="xs:string"/>

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

                    <xs:element name="apellido">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="30"/>
                        </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="https://.+" />
                        </xs:restriction>
                        </xs:simpleType>
                    </xs:element>

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

                     <xs:element name="curso">
                      <xs:simpleType>
                        <xs:restriction base="xs:integer">
                          <xs:pattern value="([0-9])*"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

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

                    <xs:element name="nota"  >
                      <xs:simpleType>
                         <xs:restriction base="xs:string">
                          <xs:maxLength value="3"/>
                         </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

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



                    <xs:element name="students" >
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element ref="alumno" maxOccurs="unbounded"/>                           
                          </xs:sequence>    
                      </xs:complexType>
                  </xs:element>



                   <xs:element name="alumno">
                        <xs:complexType>
                             <xs:sequence>
                                <xs:element ref="nombre"/>
                                 <xs:element ref="apellido"/>
                                  <xs:element ref="email"/>
                                  <xs:element ref="foto"/>
                                   <xs:element ref="expediente"/>
                                   <xs:element ref="curso"/>     
                                    <xs:element ref="modulo" maxOccurs="unbounded"/>
                            </xs:sequence>
                            <xs:attribute ref="id" use="required"/>
                      </xs:complexType>
                  </xs:element>

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

</xs:schema>

Я открывал и закрывал все, что вижу, поэтому не понимаю, почему выдает эту ошибку.

1 Ответ

1 голос
/ 16 марта 2020

Ошибка,

Ошибка в строке 2: объявление для элемента 'xs: схема' не найдено

указывает на то, что вы по ошибке пытаетесь проверить сам XSD вместо того, чтобы проверять экземплярный документ XML.

Если вы действительно хотите sh проверить свой XSD, который, в конце концов, также является XML документом, вы можете использовать XML Схема для схем . Но, опять же, вам придется позаботиться о том, чтобы указать вашему валидатору, какой документ предназначен для проверки XML, а какой документ предназначен для XSD.

...