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 Różne XSD 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

Złożone elementy XSD


Złożony element zawiera inne elementy i/lub atrybuty.


Co to jest element złożony?

Element złożony to element XML, który zawiera inne elementy i/lub atrybuty.

Istnieją cztery rodzaje złożonych elementów:

  • puste elementy
  • elementy zawierające tylko inne elementy
  • elementy zawierające tylko tekst
  • elementy zawierające zarówno inne elementy, jak i tekst

Uwaga: Każdy z tych elementów może również zawierać atrybuty!


Przykłady złożonych elementów

Złożony element XML „product”, który jest pusty:

<product pid="1345"/>

Złożony element XML „pracownik”, który zawiera tylko inne elementy:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

Złożony element XML „food”, który zawiera tylko tekst:

<food type="dessert">Ice cream</food>

Złożony element XML „opis”, który zawiera zarówno elementy, jak i tekst:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>


Jak zdefiniować złożony element

Spójrz na ten złożony element XML, „pracownik”, który zawiera tylko inne elementy:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

Możemy zdefiniować złożony element w schemacie XML na dwa różne sposoby:

1. Element „pracownik” można zadeklarować bezpośrednio, nazywając element w następujący sposób:

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

Jeśli użyjesz metody opisanej powyżej, tylko element „pracownik” może używać określonego typu złożonego. Zwróć uwagę, że elementy potomne „firstname” i „lastname” są otoczone wskaźnikiem <sequence>. Oznacza to, że elementy podrzędne muszą pojawić się w tej samej kolejności, w jakiej zostały zadeklarowane. Więcej o wskaźnikach dowiesz się w rozdziale Wskaźniki XSD.

2. Element „pracownik” może posiadać atrybut type, który odwołuje się do nazwy typu złożonego do wykorzystania:

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

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

Jeśli użyjesz metody opisanej powyżej, kilka elementów może odnosić się do tego samego typu złożonego, na przykład:

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>

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

Możesz również oprzeć typ złożony na istniejącym typie złożonym i dodać kilka elementów, na przykład:

<xs:element name="employee" type="fullpersoninfo"/>

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

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>