XML

Start Omhoog XML Schema Validatie XSD Type Definities Annotaties Namespaces Nillwaardes Oefeningen

XML (eXtensible Markup Language) is een markup taal ingezet als tekstuele vorm om informatie in te bewaren of als communicatievorm om informatie te verzenden tussen verschillende actoren (systemen, mensen, ...).

Men kan er op hiėrarchische wijze informatie in structureren. In volgende xml instantie houden we informatie bij over de studenten van een klas. Per student wordt een id, naam en IQ gegeven bijgehouden:

<?xml version="1.0"?>
<class>
  <student id="101">
    <name>John</name>
    <IQ>140</IQ>
  </student>
  <student id="102">
    <name>Jane</name>
    <IQ>130</IQ>
  </student>
</class>

Vaak wordt xml ook ingezet als configuratie bestand, die aangeeft hoe bepaalde instellingen van een toepassingen zijn geconfigureerd:

<?xml version="1.0"?>
<configuration>
  <system.diagnostics>
    <sources>
      <!-- This section defines the logging configuration for My.Application.Log -->
      <source name="DefaultSource" switchName="DefaultSwitch">
        <listeners>
          <add name="FileLog"/>
          <!-- Uncomment the below section to write to the ApplicationEvent Log -->
          <!--<add name="EventLog"/>-->
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="DefaultSwitch" value="Information" />
    </switches>
    <sharedListeners>
      <add name="FileLog"  type="Microsoft.VisualBasic.Logging.FileLogTraceListener"
      initializeData="FileLogWriter"/>
    </sharedListeners>
  </system.diagnostics>
</configuration>

XML maakt gebruik van elementen en attributen. Elementen worden doorgaans gemarkeerd met open- en closetag. Attributen bevatten extra informatie over deze elementen.

Het is de auteur zelf die kiest of hij de naam van een student als waarde in het childelement <name> voor het parentelement <student> gaat bijhouden:

<?xml version="1.0"?>
<class>
  <student>
    <name>John</name>
  </student>
  <student>
    <name>Jane</name>
  </student>
</class>

Of bijvoorbeeld als attribuut name voor element <student> gaat bijhouden:

<?xml version="1.0"?>
<class>
  <student name="John" />
  <student name="Jane" />
</class>

Well formed xml

Goed/correct gevormde xml is deze die voldoet aan de 'XML 1.0 Specification' en wordt gemarkeerd met de xml declaratieregel: <?xml version="1.0"?>

http://www.w3.org/TR/REC-xml/

Deze "well formed xml" voldoet aan bepaalde regels, enkele belangrijke daarvan zijn:

elementen worden altijd gesloten (met closetag (bv <name>John</name>) of het element is selfclosing <name value="John"/>)

  • er is altijd exact 1 rootelement ("documentelement")
  • een attribuut mag bij een element maximaal 1 keer voorkomen
  • een element mag meermaals voorkomen in een parentelement
  • een attribuutwaarde is omsloten met double quotes
  • de volgorde van attributen is onbelangrijk
  • case sensitive
  • Commentaar kan in de vorm: <!-- dit is commentaar --> en kan overal in een xml document worden opgenomen.