Výukový program XML

XML HOME Úvod do XML XML Jak používat XML strom Syntaxe XML Prvky XML Atributy XML Jmenné prostory XML Zobrazení XML XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLlink XML Validator XML DTD Schéma XML XML server Příklady XML XML kvíz XML certifikát

XML AJAX

Úvod do AJAX AJAX XMLHttp Požadavek AJAX Odpověď AJAX Soubor XML AJAX AJAX PHP AJAX ASP Databáze AJAX Aplikace AJAX Příklady AJAX

XML DOM

Úvod do DOM DOM uzly Přístup k DOM Informace o uzlu DOM Seznam uzlů DOM DOM Traversing Navigace DOM DOM získat hodnoty DOM změnit uzly DOM Remove Nodes DOM nahradit uzly DOM Vytvořte uzly DOM Přidat uzly Klonovací uzly DOM Příklady DOM

Výukový program XPath

Úvod do XPath Uzly XPath Syntaxe XPath osy XPath Operátoři XPath Příklady XPath

Kurz XSLT

Úvod do XSLT Jazyky XSL Transformace XSLT XSLT <šablona> XSLT <hodnota-of> XSLT <pro každého> XSLT <sort> XSLT <if> XSLT <vyberte> Použít XSLT XSLT u klienta XSLT na serveru XSLT Úprava XML Příklady XSLT

Výukový program XQuery

Úvod do XQuery Příklad XQuery XQuery FLWOR HTML XQuery Podmínky XQuery Syntaxe XQuery Přidat XQuery XQuery Select Funkce XQuery

XML DTD

Úvod do DTD Stavební bloky DTD DTD prvky Atributy DTD DTD Elements vs Attr DTD entity Příklady DTD

XSD schéma

Úvod do XSD XSD Jak na to XSD <schéma> XSD prvky XSD atributy Omezení XSD

XSD komplex

XSD prvky XSD Prázdné Pouze prvky XSD Pouze text XSD XSD smíšené XSD indikátory XSD <libovolné> XSD <jakýkoliAtribut> Náhrada XSD Příklad XSD

XSD data

XSD řetězec Datum XSD Číselné XSD XSD Různé XSD reference

Webové služby

Služby XML XML WSDL XML SOAP XML RDF XML RSS

Reference

Typy uzlů DOM Uzel DOM DOM NodeList DOM NamedNodeMap Dokument DOM Prvek DOM Atribut DOM Text DOM DOM CDATA Komentář DOM DOM XMLHttpRequest DOM Parser Prvky XSLT Funkce XSLT/XPath

XSD indikátory


Můžeme ovládat, JAK mají být prvky použity v dokumentech s indikátory.


Ukazatele

Existuje sedm indikátorů:

Indikátory objednávky:

  • Všechno
  • Výběr
  • Sekvence

Indikátory výskytu:

  • maxOccurs
  • minOccurs

Indikátory skupiny:

  • Skupinové jméno
  • atribut Název skupiny

Ukazatele objednávky

Indikátory pořadí se používají k definování pořadí prvků.

Všechny indikátory

Indikátor <all> určuje, že podřízené prvky se mohou objevit v libovolném pořadí a že každý podřízený prvek se musí vyskytnout pouze jednou:

<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>

Poznámka: Při použití indikátoru <all> můžete nastavit indikátor <minOccurs> na 0 nebo 1 a indikátor <maxOccurs> lze nastavit pouze na 1 (<minOccurs> a <maxOccurs> jsou popsány později).

Indikátor volby

Indikátor <choice> určuje, že se může vyskytnout jeden podřízený prvek nebo jiný:

<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>

Indikátor sekvence

Indikátor <sequence> určuje, že podřízené prvky se musí objevit v určitém pořadí:

<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>


Indikátory výskytu

Indikátory výskytu se používají k definování toho, jak často se může prvek vyskytovat.

Poznámka: Pro všechny indikátory „Pořadí“ a „Skupina“ (libovolné, všechny, výběr, sekvence, název skupiny a odkaz na skupinu) je výchozí hodnota pro maxOccurs a minOccurs 1.

indikátor maxOccurs

Indikátor <maxOccurs> udává maximální počet výskytů prvku:

<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>

Výše uvedený příklad ukazuje, že prvek „child_name“ se může v prvku „person“ vyskytnout minimálně jednou (výchozí hodnota pro minOccurs je 1) a maximálně desetkrát.

Indikátor minOccurs

Indikátor <minOccurs> určuje minimální počet výskytů prvku:

<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>

Výše uvedený příklad ukazuje, že prvek "child_name" se může v prvku "person" vyskytovat minimálně nulakrát a maximálně desetkrát.

Tip: Chcete-li, aby se prvek objevil neomezeně mnohokrát, použijte příkaz maxOccurs="unbounded":

Pracovní příklad:

Soubor XML s názvem „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>

Výše uvedený soubor XML obsahuje kořenový prvek s názvem „persons“. Uvnitř tohoto kořenového prvku jsme definovali tři prvky „osoba“. Každý prvek "person" musí obsahovat prvek "full_name" a může obsahovat až pět prvků "child_name".

Zde je soubor schématu "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>

Skupinové indikátory

Skupinové indikátory se používají k definování souvisejících sad prvků.

Skupiny prvků

Skupiny prvků jsou definovány pomocí deklarace skupiny takto:

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

V deklaraci skupiny musíte definovat element all, choice nebo sekvenční. Následující příklad definuje skupinu s názvem „persongroup“, která definuje skupinu prvků, které se musí vyskytovat v přesném poř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>

Poté, co jste definovali skupinu, můžete na ni odkazovat v jiné definici, například takto:

<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>

Skupiny atributů

Skupiny atributů jsou definovány pomocí deklarace atributGroup takto:

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

Následující příklad definuje skupinu atributů s názvem „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>

Poté, co jste definovali skupinu atributů, můžete na ni odkazovat v jiné definici, jako je tato:

<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>