XML -zelfstudie

XML HOME XML-introductie XML Hoe te gebruiken XML-structuur XML-syntaxis XML-elementen XML-kenmerken XML-naamruimten XML-weergave XML HTTP-verzoek XML-parser XML-DOM XML XPath XML XSLT XML XQuery XML XLink XML-validator XML-DTD XML Schema XML-server XML-voorbeelden XML-quiz XML-certificaat

XML AJAX

Ajax-introductie AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

XML-DOM

DOM-introductie DOM-knooppunten DOM-toegang DOM Node Info Lijst met DOM-knooppunten DOM doorkruisen DOM-navigatie DOM Waarden ophalen DOM-wijzigingsknooppunten DOM Knooppunten verwijderen DOM Knooppunten vervangen DOM Knooppunten maken DOM Knooppunten toevoegen DOM-kloonknooppunten DOM-voorbeelden

XPath- zelfstudie

XPath-introductie XPath-knooppunten XPath-syntaxis XPath-assen XPath-operators XPath-voorbeelden

XSLT- zelfstudie

XSLT-introductie XSL-talen XSLT-transformatie XSLT <sjabloon> XSLT <waarde-van> XSLT <voor elk> XSLT <sorteren> XSLT <if> XSLT <kiezen> XSLT toepassen XSLT op de client XSLT op de server XSLT Bewerk XML XSLT-voorbeelden

XQuery- zelfstudie

XQuery-introductie XQuery-voorbeeld XQuery FLWOR XQuery HTML XQuery-voorwaarden XQuery-syntaxis XQuery toevoegen XQuery selecteren XQuery-functies

XML -DTD

DTD Introductie DTD-bouwstenen DTD-elementen DTD-kenmerken DTD Elements vs Attr DTD-entiteiten DTD-voorbeelden

XSD- schema

XSD-introductie XSD Hoe kan ik? XSD <schema> XSD-elementen XSD-kenmerken XSD-beperkingen

XSD- complex

XSD-elementen XSD Leeg Alleen XSD-elementen Alleen XSD-tekst XSD gemengd XSD-indicatoren XSD <elke> XSD <anyAttribute> XSD-vervanging XSD-voorbeeld

XSD- gegevens

XSD-string XSD-datum XSD Numeriek XSD Diversen XSD-referentie

Webservices _

XML-services XML-WSDL XML SOAP XML-RDF XML-RSS

Referenties

Typen DOM-knooppunten DOM Node DOM-knooppuntlijst DOM NamedNodeMap DOM-document DOM-element DOM-kenmerk DOM-tekst DOM CDATA DOM-opmerking DOM XMLHttpRequest DOM-parser XSLT-elementen XSLT/XPath-functies

XML -elementen


Een XML-document bevat XML-elementen.


Wat is een XML-element?

Een XML-element is alles van (inclusief) de starttag van het element tot (inclusief) de eindtag van het element.

<price>29.99</price>

Een element kan bevatten:

  • tekst
  • attributen
  • andere elementen
  • of een mix van bovenstaande
<bookstore>
  <book category="children">
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

In bovenstaand voorbeeld:

<title>, <author>, <year> en <price> hebben tekstinhoud omdat ze tekst bevatten (zoals 29,99).

<bookstore> en <book> hebben element content , omdat ze elementen bevatten.

<boek> heeft een attribuut (category="children").


Lege XML-elementen

Een element zonder inhoud wordt leeg genoemd.

In XML kun je een leeg element als volgt aangeven:

<element></element>

U kunt ook een zogenaamde zelfsluitende tag gebruiken:

<element />

De twee formulieren produceren identieke resultaten in XML-software (Readers, Parsers, Browsers).

Lege elementen kunnen attributen hebben.



XML-naamgevingsregels

XML-elementen moeten deze naamgevingsregels volgen:

  • Elementnamen zijn hoofdlettergevoelig
  • Elementnamen moeten beginnen met een letter of onderstrepingsteken
  • Elementnamen mogen niet beginnen met de letters xml (of XML, of Xml, etc)
  • Elementnamen kunnen letters, cijfers, koppeltekens, onderstrepingstekens en punten bevatten
  • Elementnamen mogen geen spaties bevatten

Elke naam kan worden gebruikt, er zijn geen woorden gereserveerd (behalve xml).


Beste naamgevingspraktijken

Maak beschrijvende namen, zoals deze: <persoon>, <voornaam>, <achternaam>.

Maak korte en eenvoudige namen, zoals deze: <book_title> niet zo: <the_title_of_the_book>.

Voorkomen "-". Als u iets "voornaam" noemt, kan sommige software denken dat u "naam" van "eerste" wilt aftrekken.

Voorkomen ".". Als je iets "first.name" noemt, kan sommige software denken dat "name" een eigenschap is van het object "first".

Voorkomen ":". Dubbele punten zijn gereserveerd voor naamruimten (later meer).

Niet-Engelse letters zoals éòá zijn volkomen legaal in XML, maar pas op voor problemen als uw software ze niet ondersteunt.


Stijlen een naam geven

Er zijn geen naamgevingsstijlen gedefinieerd voor XML-elementen. Maar hier zijn enkele veelgebruikte:

Stijl Voorbeeld Beschrijving
kleine letters <voornaam> Alle letters kleine letters
hoofdletters <FIRSTNAME> Alle letters hoofdletters
Laag streepje <first_name> Underscore scheidt woorden
Pascal geval <Voornaam> Eerste letter in hoofdletter in elk woord
kameel geval <voornaam> Eerste letter in hoofdletters in elk woord behalve de eerste

Als je een naamgevingsstijl kiest, is het goed om consistent te zijn!

XML-documenten hebben vaak een bijbehorende database. Het is gebruikelijk om de naamgevingsregels van de database voor de XML-elementen te gebruiken.

Camel case is een veelgebruikte naamgevingsregel in JavaScripts.


XML-elementen zijn uitbreidbaar

XML-elementen kunnen worden uitgebreid om meer informatie te bevatten.

Bekijk het volgende XML-voorbeeld:

<note>
  <to>Tove</to>
  <from>Jani</from>
  <body>Don't forget me this weekend!</body>
</note>

Laten we ons voorstellen dat we een toepassing hebben gemaakt die de elementen <to>, <from> en <body> uit het XML-document heeft geëxtraheerd om deze uitvoer te produceren:

BERICHT

Aan: Tove
Van: Jani

Vergeet mij dit weekend niet!

Stel je voor dat de auteur van het XML-document er wat extra informatie aan heeft toegevoegd:

<note>
  <date>2008-01-10</date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Moet de applicatie breken of crashen?

Nee. De toepassing moet nog steeds de elementen <to>, <from> en <body> in het XML-document kunnen vinden en dezelfde uitvoer kunnen produceren.

Dit is een van de schoonheden van XML. Het kan worden uitgebreid zonder applicaties te verbreken.