XML- tutoriaal

XML TUIS XML Inleiding XML Hoe om te gebruik XML-boom XML-sintaksis XML elemente XML-kenmerke XML Naamruimtes XML vertoon XML HttpRequest XML-ontleder XML DOM XML XPath XML XSLT XML XQuery XML XLink XML valideerder XML DTD XML-skema XML-bediener XML voorbeelde XML Vasvra XML-sertifikaat

XML AJAX

AJAX Inleiding AJAX XMLHttp AJAX-versoek AJAX-reaksie AJAX XML-lêer AJAX PHP AJAX ASP AJAX-databasis AJAX toepassings AJAX voorbeelde

XML DOM

DOM Inleiding DOM nodusse Toegang tot DOM DOM Node Info DOM Node Lys DOM deurkruis DOM Navigeer DOM Kry waardes DOM Verander nodusse DOM Verwyder nodes DOM vervang nodusse DOM Skep nodusse DOM Voeg nodes by DOM Kloon Nodes DOM Voorbeelde

XPath handleiding

XPath Inleiding XPath nodes XPath-sintaksis XPath-asse XPath-operateurs XPath voorbeelde

XSLT- tutoriaal

XSLT Inleiding XSL-tale XSLT-transformasie XSLT <sjabloon> XSLT <waarde-van> XSLT <vir-elk> XSLT <sorteer> XSLT <if> XSLT <kies> XSLT Pas toe XSLT op die kliënt XSLT op die bediener XSLT Wysig XML XSLT voorbeelde

XQuery- tutoriaal

XQuery Inleiding XQuery voorbeeld XQuery FLWOR XQuery HTML XQuery-bepalings XQuery-sintaksis XQuery Voeg by XQuery Kies XQuery-funksies

XML DTD

DTD Inleiding DTD Boublokke DTD Elemente DTD-kenmerke DTD Elements vs Attr DTD Entiteite DTD voorbeelde

XSD- skema

XSD Inleiding XSD Hoe om XSD <skema> XSD-elemente XSD-kenmerke XSD-beperkings

XSD -kompleks

XSD-elemente XSD leeg Slegs XSD-elemente Slegs XSD-teks XSD gemeng XSD-aanwysers XSD <enige> XSD <anyAttribute> XSD-vervanging XSD voorbeeld

XSD data

XSD-string XSD datum XSD Numeries XSD Diverse XSD-verwysing

Webdienste _

XML Dienste XML WSDL XML SEEP XML RDF XML RSS

Verwysings

DOM Node Tipes DOM Node DOM NodeLys DOM NamedNodeMap DOM-dokument DOM Element DOM-kenmerk DOM teks DOM CDATA DOM Kommentaar DOM XMLHttpRequest DOM-ontleder XSLT-elemente XSLT/XPath-funksies

XSD komplekse elemente


'n Komplekse element bevat ander elemente en/of eienskappe.


Wat is 'n komplekse element?

'n Komplekse element is 'n XML-element wat ander elemente en/of eienskappe bevat.

Daar is vier soorte komplekse elemente:

  • leë elemente
  • elemente wat slegs ander elemente bevat
  • elemente wat slegs teks bevat
  • elemente wat beide ander elemente en teks bevat

Let wel: Elkeen van hierdie elemente kan ook eienskappe bevat!


Voorbeelde van komplekse elemente

'n Komplekse XML-element, "produk", wat leeg is:

<product pid="1345"/>

'n Komplekse XML-element, "werknemer", wat slegs ander elemente bevat:

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

'n Komplekse XML-element, "kos", wat slegs teks bevat:

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

'n Komplekse XML-element, "beskrywing", wat beide elemente en teks bevat:

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


Hoe om 'n komplekse element te definieer

Kyk na hierdie komplekse XML-element, "werknemer", wat slegs ander elemente bevat:

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

Ons kan 'n komplekse element in 'n XML-skema op twee verskillende maniere definieer:

1. Die "werknemer"-element kan direk verklaar word deur die element soos volg te noem:

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

As jy die metode hierbo beskryf gebruik, kan slegs die "werknemer" element die gespesifiseerde komplekse tipe gebruik. Let daarop dat die kinderelemente, "voornaam" en "van", omring word deur die <volgorde>-aanwyser. Dit beteken dat die kinderelemente in dieselfde volgorde moet verskyn as wat hulle verklaar is. Jy sal meer leer oor aanwysers in die XSD-aanwysers hoofstuk.

2. Die "werknemer"-element kan 'n tipe-kenmerk hê wat verwys na die naam van die komplekse tipe om te gebruik:

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

As jy die metode wat hierbo beskryf word gebruik, kan verskeie elemente na dieselfde komplekse tipe verwys, soos volg:

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

Jy kan ook 'n komplekse tipe op 'n bestaande komplekse tipe baseer en sommige elemente byvoeg, soos hierdie:

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