Samouczek XML

Strona główna XML Wprowadzenie do XML XML Jak używać Drzewo XML Składnia XML Elementy XML Atrybuty XML Przestrzenie nazw XML Wyświetlacz XML Żądanie HTTP XML Parser XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Walidator XML XML DTD Schemat XML Serwer XML Przykłady XML Quiz XML Certyfikat XML

XML AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

XML DOM

Wprowadzenie do DOM Węzły DOM Dostęp do DOM Informacje o węźle DOM Lista węzłów DOM Przechodzenie DOM Nawigacja DOM DOM Uzyskaj wartości Zmiana węzłów DOM DOM Usuń węzły DOM Zamień węzły DOM Utwórz węzły DOM Dodaj węzły Węzły klonowania DOM Przykłady DOM

Samouczek XPath

Wprowadzenie do XPath Węzły XPath Składnia XPath Osie XPath Operatorzy XPath Przykłady XPath

Samouczek XSLT

Wprowadzenie XSLT Języki XSL Transformacja XSLT XSLT <szablon> XSLT <wartość-z> XSLT <dla każdego> XSLT <sortuj> XSLT <jeśli> XSLT <wybierz> XSLT Zastosuj XSLT na kliencie XSLT na serwerze XSLT Edytuj XML Przykłady XSLT

Samouczek XQuery

Wprowadzenie do XQuery Przykład XQuery XQuery FLWOR XQuery HTML Warunki XQuery Składnia XQuery XQuery Dodaj XQuery Wybierz Funkcje XQuery

XML DTD

Wprowadzenie do DTD Bloki konstrukcyjne DTD Elementy DTD Atrybuty DTD Elementy DTD a Attr Jednostki DTD Przykłady DTD

Schemat XSD

Wprowadzenie do XSD XSD Jak to zrobić XSD <schemat> Elementy XSD Atrybuty XSD Ograniczenia XSD

Kompleks XSD

Elementy XSD XSD Pusty Tylko elementy XSD Tylko tekst XSD Mieszane XSD Wskaźniki XSD XSD <dowolny> XSD <dowolnyAtrybut> Zastąpienie XSD Przykład XSD

Dane XSD

XSD ciąg Data XSD Numeryczne XSD XSD Różne Odniesienie XSD

Usługi internetowe

Usługi XML XML WSDL MYDŁO XML XML RDF XML RSS

Bibliografia

Typy węzłów DOM Węzeł DOM Lista węzłów DOM DOM NamedNodeMap Dokument DOM Element DOM Atrybut DOM Tekst DOM DOM CDATA Komentarz DOM DOM XMLHttpRequest Analizator DOM Elementy XSLT Funkcje XSLT/XPath

Wskaźniki XSD


Możemy kontrolować JAK elementy mają być wykorzystane w dokumentach ze wskaźnikami.


Wskaźniki

Istnieje siedem wskaźników:

Wskaźniki zamówień:

  • Wszystkie
  • Wybór
  • Sekwencja

Wskaźniki występowania:

  • maxWystępuje
  • minWystępuje

Wskaźniki grupowe:

  • Nazwa grupy
  • nazwa grupy atrybutów

Wskaźniki zamówień

Wskaźniki kolejności służą do określenia kolejności elementów.

Wszystkie wskaźniki

Wskaźnik <all> określa, że ​​elementy podrzędne mogą pojawiać się w dowolnej kolejności i że każdy element podrzędny musi wystąpić tylko raz:

<xs:element name="person">
  <xs:complexType>
    <xs:all>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:all>
  </xs:complexType>
</xs:element>

Uwaga: Podczas korzystania ze wskaźnika <all> można ustawić wskaźnik <minOccurs> na 0 lub 1, a wskaźnik <maxOccurs> można ustawić tylko na 1 (wskaźniki <minOccurs> i <maxOccurs> są opisane w dalszej części).

Wskaźnik wyboru

Wskaźnik <choice> określa, że ​​może wystąpić jeden lub inny element podrzędny:

<xs:element name="person">
  <xs:complexType>
    <xs:choice>
      <xs:element name="employee" type="employee"/>
      <xs:element name="member" type="member"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

Wskaźnik sekwencji

Wskaźnik <sequence> określa, że ​​elementy podrzędne muszą pojawiać się w określonej kolejności:

<xs:element name="person">
   <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>


Wskaźniki występowania

Wskaźniki występowania służą do określenia, jak często dany element może wystąpić.

Uwaga: Dla wszystkich wskaźników „Kolejność” i „Grupa” (dowolne, wszystkie, wybór, sekwencja, nazwa grupy i odwołanie do grupy) domyślną wartością dla maxOccurs i minOccurs jest 1.

Wskaźnik maksymalnej liczby wystąpień

Wskaźnik <maxOccurs> określa maksymalną liczbę wystąpień elementu:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="full_name" type="xs:string"/>
      <xs:element name="child_name" type="xs:string" maxOccurs="10"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Powyższy przykład wskazuje, że element „child_name” może wystąpić co najmniej jeden raz (wartość domyślna dla minOccurs to 1) i maksymalnie dziesięć razy w elemencie „person”.

Wskaźnik minOccurs

Wskaźnik <minOccurs> określa minimalną liczbę wystąpień elementu:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="full_name" type="xs:string"/>
      <xs:element name="child_name" type="xs:string"
      maxOccurs="10" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Powyższy przykład wskazuje, że element „child_name” może wystąpić minimum zero razy, a maksymalnie dziesięć razy w elemencie „person”.

Wskazówka: aby zezwolić na pojawienie się elementu nieograniczoną liczbę razy, użyj instrukcji maxOccurs="unbounded":

Przykład pracy:

Plik XML o nazwie „Myfamily.xml”:

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

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
  <full_name>Hege Refsnes</full_name>
  <child_name>Cecilie</child_name>
</person>

<person>
  <full_name>Tove Refsnes</full_name>
  <child_name>Hege</child_name>
  <child_name>Stale</child_name>
  <child_name>Jim</child_name>
  <child_name>Borge</child_name>
</person>

<person>
  <full_name>Stale Refsnes</full_name>
</person>

</persons>

Powyższy plik XML zawiera element główny o nazwie „persons”. Wewnątrz tego elementu głównego zdefiniowaliśmy trzy elementy „osobowe”. Każdy element „person” musi zawierać element „full_name” i może zawierać do pięciu elementów „child_name”.

Oto plik schematu „family.xsd”:

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

<xs:element name="persons">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="person" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="full_name" type="xs:string"/>
            <xs:element name="child_name" type="xs:string"
            minOccurs="0" maxOccurs="5"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

Wskaźniki grupowe

Wskaźniki grupowe służą do definiowania powiązanych zestawów elementów.

Grupy elementów

Grupy elementów definiuje się za pomocą deklaracji grupy, tak jak poniżej:

<xs:group name="groupname">
...
</xs:group>

W deklaracji grupy należy zdefiniować element all, choice lub sequence. Poniższy przykład definiuje grupę o nazwie „persongroup”, która definiuje grupę elementów, które muszą wystąpić w dokładnej kolejności:

<xs:group name="persongroup">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="birthday" type="xs:date"/>
  </xs:sequence>
</xs:group>

Po zdefiniowaniu grupy możesz odnieść się do niej w innej definicji, na przykład:

<xs:group name="persongroup">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="birthday" type="xs:date"/>
  </xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:group ref="persongroup"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Grupy atrybutów

Grupy atrybutów definiuje się za pomocą deklaracji attributeGroup, tak jak poniżej:

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

Poniższy przykład definiuje grupę atrybutów o nazwie „personattrgroup”:

<xs:attributeGroup name="personattrgroup">
  <xs:attribute name="firstname" type="xs:string"/>
  <xs:attribute name="lastname" type="xs:string"/>
  <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

Po zdefiniowaniu grupy atrybutów można odnieść się do niej w innej definicji, na przykład:

<xs:attributeGroup name="personattrgroup">
  <xs:attribute name="firstname" type="xs:string"/>
  <xs:attribute name="lastname" type="xs:string"/>
  <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
  <xs:complexType>
    <xs:attributeGroup ref="personattrgroup"/>
  </xs:complexType>
</xs:element>