Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML] XML Schema i brak weryfikacji
Forum PHP.pl > Forum > XML, AJAX > XML
Koniczynka
Witajcie,

Podstawy XMLa poznałem w kilka dni poprzednich wakacji, po czym zaprzestałem nauki, bo nie widziałem zbytniego zastosowania. Teraz wiem, że się myliłem i w wolnej chwili wróciłem do niego. Zainteresowałem się bliżej XML Schema i od kilku godzin mam jeden problem - tworzę schematy, które są ignorowane. Najpierw robiłem je sam, potem przepisałem z książki "XML na poważnie", a na samym końcu wziąłem z interentowej strony O'Reilly'ego i z w3schools. Stosowałem też podpowiedź splatcha z tego tematu http://forum.php.pl/index.php?showtopic=60...p;hl=xml+schema , ale za każdym razem nic. Mogę wpisywać obojętnie jakie dane, zmieniać kolejność elementów i nie pojawiał się żaden błąd.

  1. schemat.xsd
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  4.  
  5. <xs:element name="shiporder">
  6. <xs:complexType>
  7.  <xs:sequence>
  8.   <xs:element name="orderperson" type="xs:string"/>
  9.   <xs:element name="shipto">
  10.    <xs:complexType>
  11.     <xs:sequence>
  12.      <xs:element name="name" type="xs:string"/>
  13.      <xs:element name="address" type="xs:string"/>
  14.      <xs:element name="city" type="xs:string"/>
  15.      <xs:element name="country" type="xs:string"/>
  16.     </xs:sequence>
  17.    </xs:complexType>
  18.   </xs:element>
  19.   <xs:element name="item" maxOccurs="unbounded">
  20.    <xs:complexType>
  21.     <xs:sequence>
  22.      <xs:element name="title" type="xs:string"/>
  23.      <xs:element name="note" type="xs:string" minOccurs="0"/>
  24.      <xs:element name="quantity" type="xs:positiveInteger"/>
  25.      <xs:element name="price" type="xs:decimal"/>
  26.     </xs:sequence>
  27.    </xs:complexType>
  28.   </xs:element>
  29.  </xs:sequence>
  30.  <xs:attribute name="orderid" type="xs:string" use="required"/>
  31. </xs:complexType>
  32. </xs:element>
  33.  
  34. </xs:schema>


  1. doku.xml
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <shiporder orderid="889923"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:noNamespaceSchemaLocation="http://wwww.adresmojejstrony.pl/katalog/podkatalog/schemat.xsd">
  6. <orderperson>John Smith</orderperson>
  7. <shipto>
  8.  <name>Ola Nordmann</name>
  9.  <address>Langgt 23</address>
  10.  <city>4000 Stavanger</city>
  11.  <country>Norway</country>
  12. </shipto>
  13. <item>
  14.  <title>Empire Burlesque</title>
  15.  <note>Special Edition</note>
  16.  <quantity>-434</quantity>
  17.  <price>10.90</price>
  18. </item>
  19. <item>
  20.  <title>Hide your heart</title>
  21.  <quantity>-434</quantity>
  22.  <price>9.90</price>
  23. </item>
  24. </shiporder>
splatch
Witaj,
Upewnij się że Twój parser poprawnie wczytuje schematy które są umieszczone na innych serwerach (Twoje noNamespaceSchemaLocation wskazuje na obcy adres), najprostszy sposób to umieszczenie pliku XSD obok XML, tak by przekazać nazwę mySchemax.xsd w atrybucie noNamespaceSchemaLocation.

W jaki sposób weryfikujesz zgodność dokumentu XML ze schematem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.