2017-08-27 3 views
0

まず、不明な点は事前にご記入ください。エラー:altova XMLSpyを使用してxsdでxmlを検証する際に「既存の要素を参照する必要があります」

問題は、xsdとdtdの両方で検証できるxmlの完全な有効なセットを作ることにある学校のための何らかのプロジェクトを作っていることです。

これまでのところ、hatdはdtdを通過する問題を抱えていましたが、正常に動作しますが、xsdを使って検証しようとすると、これらの2つのエラーがたくさんあります: "既存の要素を参照する必要があります" "要素の宣言も型定義も要素<(何でも)については知られていません>厳密な評価は失敗しました。"

私はここで探索していますが、これまでのところ運がありません。期限が来ていて、何が間違っているのか分かりません。

私の理解を深めるために、コードを示します。 これはxmlですが、これはかなり基本的なものですが、どこが間違っているのかは分かりません。

<?xml version="1.0" encoding="UTF-8"?> 
<!-- <!DOCTYPE nortesurfshop SYSTEM "nortesurfxsd.xsd"> --> 
<nortesurfshop xmlns="http://www.w3schools.com/RedsDevils" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.w3schools.com/RedsDevils nortesurfxsd.xsd"> 
    <playas> 
     <playa num="1" nombre="brazomar"> 
      <longitud>4.3</longitud> 
      <ocupacion>muy alta</ocupacion> 
      <mareas altura="bajamar pleamar"/> 
      <playasegura/> 
     </playa> 
     <playa num="2" nombre="orinon"> 
      <longitud>2</longitud> 
      <ocupacion>alta</ocupacion> 
      <mareas altura="bajamar"/> 
      <playapeligrosa/> 
      <socorrista/> 
      <parking/> 
     </playa> 
     <playa num="3" nombre="sonabia"> 
      <longitud>3</longitud> 
      <ocupacion>media</ocupacion> 
      <mareas altura="bajamar mediamarea"/> 
      <playapeligrosa/> 
      <nudista/> 
      <parking/> 
     </playa> 
    </playas> 
    <tiendas> 
     <tienda id="t1"> 
      <nombre>NorteSurfShop</nombre> 
      <tipo>sede</tipo> 
      <propietario>Juan</propietario> 
      <venta num="1"> 
       <nomcliente>Alberto</nomcliente> 
       <articulos> 
        <articulo> 
         <nombreArticulo>gafas sol Oakley</nombreArticulo> 
         <precio>83</precio> 
        </articulo> 
       </articulos> 
       <precioTotal>83</precioTotal> 
      </venta> 
      <venta num="2"> 
       <nomcliente>Alfonso</nomcliente> 
       <articulos> 
        <articulo> 
         <nombreArticulo>tabla Bodyboard</nombreArticulo> 
         <precio>150</precio> 
        </articulo> 
        <articulo> 
         <nombreArticulo>aletas Pride</nombreArticulo> 
         <precio>50</precio> 
        </articulo> 
       </articulos> 
       <precioTotal>200</precioTotal> 
      </venta> 
      <venta num="3"> 
       <nomcliente>Marta</nomcliente> 
       <articulos> 
        <articulo> 
         <nombreArticulo>tabla Channel Islands</nombreArticulo> 
         <precio>280</precio> 
        </articulo> 
        <articulo> 
         <nombreArticulo>invento Billabong azul</nombreArticulo> 
         <precio>12</precio> 
        </articulo> 
       </articulos> 
       <precioTotal>292</precioTotal> 
      </venta> 
      <venta num="4"> 
       <nomcliente>Lucia</nomcliente> 
       <articulos> 
        <articulo> 
         <nombreArticulo>Neopreno Kynay</nombreArticulo> 
         <precio>125</precio> 
        </articulo> 
       </articulos> 
       <precioTotal>125</precioTotal> 
      </venta> 
     </tienda> 
     <tienda id="t2"> 
      <nombre>almacen</nombre> 
      <tipo>almacen</tipo> 
      <propietario>Eustaquio</propietario> 
     </tienda> 
    </tiendas> 
    <taquillas> 
     <taquilla id="ta1"> 
      <empleados>1</empleados> 
     </taquilla> 
     <taquilla id="ta2"> 
      <empleados>5</empleados> 
     </taquilla> 
     <taquilla id="ta3"> 
      <empleados>1</empleados> 
     </taquilla> 
    </taquillas> 
    <escuelas> 
     <escuela nombre="arenillas"> 
      <modalidad tipo="surf"/> 
      <modalidad tipo="bodyboard"/> 
      <modalidad tipo="SUP"/> 
      <profe id="p1"/> 
      <profe id="p2"/> 
      <profe id="p3"/> 
      <profe id="p4"/> 
     </escuela> 
     <escuela nombre="somo"> 
      <modalidad tipo="surf"/> 
      <modalidad tipo="SUP"/> 
      <profe id="p5"/> 
      <profe id="p6"/> 
      <profe id="p7"/> 
      <profe id="p8"/> 
      <profe id="p9"/> 
      <profe id="p0"/> 
     </escuela> 
    </escuelas> 
    <profesores> 
     <profesor id="p1"> 
      <nombre>Felipe</nombre> 
      <apellidos>Rodriguez Alfageme</apellidos> 
      <dni>24875551A</dni> 
      <sabe>surf bodyboard</sabe> 
     </profesor> 
     <profesor id="p2"> 
      <nombre>Laura</nombre> 
      <apellidos>Jimenez Esteban</apellidos> 
      <dni>22761876W</dni> 
      <sabe>surf </sabe> 
     </profesor> 
     <profesor id="p3"> 
      <nombre>Felix</nombre> 
      <apellidos>Rodriguez Alfageme</apellidos> 
      <dni>24875551A</dni> 
      <sabe>surf</sabe> 
     </profesor> 
     <profesor id="p4"> 
      <nombre>Fernando</nombre> 
      <apellidos>Rodriguez Alfageme</apellidos> 
      <dni>24875551A</dni> 
      <sabe>bodyboard</sabe> 
     </profesor> 
     <profesor id="p5"> 
      <nombre>Feliciano</nombre> 
      <apellidos>Rodriguez Alfageme</apellidos> 
      <dni>24875551A</dni> 
      <sabe>surf bodyboard sup</sabe> 
     </profesor> 
     <profesor id="p6"> 
      <nombre>Felicitacionado</nombre> 
      <apellidos>Rodriguez Alfageme</apellidos> 
      <dni>24875551A</dni> 
      <sabe>sup surf</sabe> 
     </profesor> 
     <profesor id="p7"> 
      <nombre>Felipon</nombre> 
      <apellidos>Rodriguez Alfageme</apellidos> 
      <dni>24875551A</dni> 
      <sabe>surf bodyboard sup</sabe> 
     </profesor> 
    </profesores> 
    <alquileres> 
     <alquiler num="1"> 
      <cliente> 
       <nombre>Felix</nombre> 
       <apellidos>Rodrigeuz de la Fuente</apellidos> 
       <dni>77771906W</dni> 
      </cliente> 
      <material tipo="surf"/> 
      <fechai>2017-12-12</fechai> 
      <fechaf>2018-01-03</fechaf> 
      <precio>50</precio> 
     </alquiler> 
     <alquiler num="2"> 
      <cliente> 
       <nombre>Marta</nombre> 
       <apellidos>Alcalde Ortiz</apellidos> 
       <dni>66666606W</dni> 
      </cliente> 
      <material tipo="bodyboard"/> 
      <fechai>2017-07-12</fechai> 
      <fechaf>2017-07-13</fechaf> 
      <precio>10</precio> 
     </alquiler> 
     <alquiler num="3"> 
      <cliente> 
       <nombre>Elena</nombre> 
       <apellidos>Firvida Ortiz</apellidos> 
       <dni>55555506W</dni> 
      </cliente> 
      <material tipo="bodyboard"/> 
      <fechai>2017-07-10</fechai> 
      <fechaf>2017-07-19</fechaf> 
      <precio>15</precio> 
     </alquiler> 
    </alquileres> 
    <cursillos> 
     <alumno id="1"> 
      <nombre>Juanjo</nombre> 
      <apellidos>Fue a Pescar</apellidos> 
      <dni>29991906C</dni> 
      <profesor id="p1"/> 
      <nivel>medio</nivel> 
      <fechai>2017-07-12</fechai> 
      <fechaf>2017-07-12</fechaf> 
      <precio>10</precio> 
     </alumno> 
     <alumno id="2"> 
      <nombre>Maria</nombre> 
      <apellidos>de la O</apellidos> 
      <dni>88888888W</dni> 
      <profesor id="p8"/> 
      <nivel>alto</nivel> 
      <fechai>2017-08-21</fechai> 
      <fechaf>2017-08-26</fechaf> 
      <precio>50</precio> 
     </alumno> 
    </cursillos> 
    <competiciones> 
     <competicion num="1" modalidad="surf" estilo="aereos"> 
      <dia>2017-12-10</dia> 
      <horainicio>09:30:00</horainicio> 
      <competidores> 
       <competidor dorsal="a1"> 
        <nombre>Aitor</nombre> 
        <apellidos>Jauregui Torre</apellidos> 
        <puntuacion>8 8 4 7</puntuacion> 
        <posicion>1</posicion> 
        <nota>6.5</nota> 
       </competidor> 
       <competidor dorsal="a2"> 
        <nombre>Juan</nombre> 
        <apellidos>Fernandez Montes</apellidos> 
        <puntuacion>8 9 2 1</puntuacion> 
        <posicion>2</posicion> 
        <nota>5</nota> 
       </competidor> 
      </competidores> 
     </competicion> 
     <competicion num="3" modalidad="bodyboard" estilo="libre"> 
      <dia>2017-07-24</dia> 
      <horainicio>11:30:00</horainicio> 
      <competidores> 
       <competidor dorsal="a1"> 
        <nombre>Nerea</nombre> 
        <apellidos>Alvarez Velilla</apellidos> 
        <puntuacion>6 6 6 6</puntuacion> 
        <posicion>1</posicion> 
        <nota>6</nota> 
       </competidor> 
      </competidores> 
     </competicion> 
    </competiciones> 
</nortesurfshop> 

ここには明らかに何か問題があるxsdがあります。またはxmlにそれがあります。

'venta' must refer to an existing element.

Neither an element declaration nor a type definition is known for element <nortesurfshop>. Strict assessment failed. 
    Error location: nortesurfshop 
    Details 
     cvc-assess-elt.1: Neither an element declaration nor a type definition is known for element <nortesurfshop>. Strict assessment failed. 

Imは必ず何らかの情報がある:

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

<xs:schema targetNamespace="http://www.w3schools.com/RedsDevils" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" 
xmlns:ns1="http://www.w3schools.com/RedsDevils nortesurfxsd.xsd" 
attributeFormDefault="unqualified"> 
    <xs:element name="nortesurfshop"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="playas"/> 
       <xs:element ref="tiendas"/> 
       <xs:element ref="taquillas"/> 
       <xs:element ref="escuelas"/> 
       <xs:element ref="profesores"/> 
       <xs:element ref="alquileres"/> 
       <xs:element ref="cursillos"/> 
       <xs:element ref="competiciones"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="playas"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="playa" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="playa"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="longitud" type="xs:string"/> 
       <xs:element name="ocupacion" type="xs:string"/> 
       <xs:element ref="mareas"/> 
       <xs:element name="playasegura" type="xs:string"/> 
       <xs:element name="playapeligrosa" type="xs:string"/> 
       <xs:element name="nudista" type="xs:string"/> 
       <xs:element name="socorrista" type="xs:string"/> 
       <xs:element name="parking" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="nombre" type="xs:string" use="required"/> 
      <xs:attribute name="num" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="mareas"> 
     <xs:complexType> 
      <xs:attribute name="altura" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="tiendas"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="tienda" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="tienda"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nombre" type="xs:string"/> 
       <xs:element name="tipo" type="xs:string"/> 
       <xs:element name="propietario" type="xs:string"/> 
       <xs:element ref="venta" maxOccurs="unbounded"/> 
      </xs:sequence> 
      <xs:attribute name="id" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="venta"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nomcliente" type="xs:string"/> 
       <xs:element ref="articulos"/> 
       <xs:element name="precioTotal" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="num" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="articulos"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="articulo" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="articulo"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nombreArticulo" type="xs:string"/> 
       <xs:element name="precio" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="taquillas"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="taquilla" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="taquilla"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="empleados" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="id" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="escuelas"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="escuela" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="escuela"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="modalidad" maxOccurs="unbounded"/> 
       <xs:element ref="profe" maxOccurs="unbounded"/> 
      </xs:sequence> 
      <xs:attribute name="nombre" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="modalidad"> 
     <xs:complexType> 
      <xs:attribute name="tipo" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="profe"> 
     <xs:complexType> 
      <xs:attribute name="id" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="profesores"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="profesor" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="profesor"> 
     <xs:complexType> 
      <xs:sequence minOccurs="0"> 
       <xs:element name="nombre" type="xs:string"/> 
       <xs:element name="apellidos" type="xs:string"/> 
       <xs:element name="dni" type="xs:string"/> 
       <xs:element name="sabe" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="id" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="alquileres"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="alquiler" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="alquiler"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="cliente"/> 
       <xs:element ref="material"/> 
       <xs:element name="fechai" type="xs:string"/> 
       <xs:element name="fechaf" type="xs:string"/> 
       <xs:element name="precio" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="num" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="cliente"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nombre" type="xs:string"/> 
       <xs:element name="apellidos" type="xs:string"/> 
       <xs:element name="dni" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="material"> 
     <xs:complexType> 
      <xs:attribute name="tipo" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="cursillos"> 
     <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 name="nombre" type="xs:string"/> 
       <xs:element name="apellidos" type="xs:string"/> 
       <xs:element name="dni" type="xs:string"/> 
       <xs:element ref="profesor"/> 
       <xs:element name="nivel" type="xs:string"/> 
       <xs:element name="fechai" type="xs:string"/> 
       <xs:element name="fechaf" type="xs:string"/> 
       <xs:element name="precio" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="id" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="competiciones"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="competicion" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="competicion"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="dia" type="xs:string"/> 
       <xs:element name="horainicio" type="xs:string"/> 
       <xs:element ref="competidores"/> 
      </xs:sequence> 
      <xs:attribute name="acabada" type="xs:string" default="acabada"/> 
      <xs:attribute name="estilo" type="xs:string" use="required"/> 
      <xs:attribute name="modalidad" type="xs:string" use="required"/> 
      <xs:attribute name="num" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="competidores"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="competidor" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="competidor"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nombre" type="xs:string"/> 
       <xs:element name="apellidos" type="xs:string"/> 
       <xs:element name="puntuacion" type="xs:string"/> 
       <xs:element name="posicion" type="xs:string"/> 
       <xs:element name="nota" type="xs:string"/> 
      </xs:sequence> 
      <xs:attribute name="dorsal" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

総括し、私はこの問題は、私はどこでもそれらを持っているとして、どのように、例えば、この2つのエラーを取り除くためだと思います私はあなたが必要と思うかもしれないと投稿しました。あなたがそれを尋ねた後に、私はそれを素早く与えます。

ありがとうございます。

編集:私はそのイムは、それがDTDで有効であるwouldntのような方法でXMLを変更することなく、それを修正しようとしている、と言うのを忘れて、私はあなたのref Sを作るためにのみXSD

答えて

0

に触れることを好みますスキーマのルート要素にxmlns="http://www.w3schools.com/RedsDevils"を追加します。 xmlns:ns1="http://www.w3schools.com/RedsDevils nortesurfxsd.xsd"は完全に間違っていますが、名前空間を接頭辞にバインドしてから使用したいと思っています。 xmlns:ns1="http://www.w3schools.com/RedsDevils"を使用して、これらのすべての参照を修正できます。 ref="ns1:venta"

関連する問題