XML-syntaxis. Basis XML-constructies - XML-elementen, tags, attributen, verwerkingsinstructies, CDATA-secties, opmerkingen

In 1986, lang voordat het idee om het web te creëren werd gerealiseerd, werd de universele gestandaardiseerde opmaaktaal SGML ( Gestandaardiseerde gegeneraliseerde opmaaktaal) is goedgekeurd als internationale standaard (ISO 8879) voor het definiëren van opmaaktalen, hoewel SGML al sinds eind jaren zestig bestaat. Het werd gebruikt om opmaaktalen te beschrijven, terwijl de auteur formele definities kon geven aan elk element en kenmerk van de taal.

HTML was oorspronkelijk slechts een van de SGML-applicaties. Hij beschreef de regels waarmee informatie voor het World Wide Web moet worden voorbereid. De HTML-taal is dus een reeks SGML-voorschriften, geformuleerd als definities van documenttypen(DTD), waarin wordt uitgelegd waar de tags en elementen precies voor staan. Het HTML DTD-schema wordt opgeslagen in de webbrowser.

De nadelen van de HTML-taal zijn onder meer:

  • HTML heeft vaste set tags. U kunt geen eigen tags maken die begrijpelijk zijn voor andere gebruikers.
  • HTML is exclusief technologie voor gegevenspresentatie. HTML bevat geen informatie over de betekenis van de inhoud in de tags.
  • HTML- "platte" tong. De betekenis van de tags wordt er niet in gedefinieerd en kan dus niet worden gebruikt om de gegevenshiërarchie te beschrijven.
  • Browsers worden gebruikt als platform voor applicaties. HTML is niet krachtig genoeg om webapplicaties te maken op het niveau waar webontwikkelaars momenteel naar streven. Het is bijvoorbeeld onmogelijk om een ​​applicatie te ontwikkelen voor het professioneel verwerken en doorzoeken van documenten in HTML.
  • Grote hoeveelheden netwerkverkeer. Bestaande HTML-documenten die als applicaties worden gebruikt, overbelasten het internet met grote hoeveelheden verkeer in client-serversystemen. Een voorbeeld hiervan is het verzenden van een groot document via een netwerk terwijl slechts een klein deel van het document nodig is.

Aan de ene kant is de HTML-taal dus een erg handig middel om documenten te markeren voor gebruik op internet, en aan de andere kant bevat een document dat in HTML is opgemaakt weinig informatie over de inhoud ervan. Als een bepaald document voldoende volledige informatie over de inhoud ervan bevat, wordt het mogelijk om relatief eenvoudig automatische algemene verwerking uit te voeren en te zoeken in het bestand waarin het document is opgeslagen. Met SGML kunt u informatie opslaan over de inhoud van een document, maar vanwege de complexiteit ervan is het nog nooit zo breed gebruikt als HTML.

Een groep SGML-experts, onder leiding van Jon Bosak van Sun Microsystems, begon te werken aan het creëren van een subset van SGML die door de webgemeenschap zou kunnen worden overgenomen. Er werd besloten om veel niet-essentiële kenmerken van SGML te verwijderen. De op deze manier herbouwde taal werd XML genoemd. De vereenvoudigde versie bleek aanzienlijk toegankelijker te zijn dan het origineel, met een specificaties van slechts 26 pagina's, vergeleken met de meer dan 500 pagina's aan SGML-specificaties.

Laten we de structuur en kenmerken van deze taal eens nader bekijken.

XML (eXtensible Markup-taal)- W3C aanbevolen opmaaktaal. XML- tekstformaat, ontworpen voor het opslaan van gestructureerde gegevens, voor het uitwisselen van informatie tussen programma's, en ook voor het maken van gespecialiseerde opmaaktalen die daarop zijn gebaseerd. XML is een vereenvoudigde subset van de SGML-taal.

De XML-taal heeft het volgende waardigheid:

  • Dit is een mensgericht documentformaat, het is begrijpelijk voor zowel mensen als computers.
  • Ondersteunt Unicode.
  • Het XML-formaat kan basisgegevensstructuren beschrijven, zoals records, lijsten en bomen.
  • Het is een zelfdocumenterend formaat dat zowel de structuur, de veldnamen als de veldwaarden beschrijft.
  • Het heeft strikt gedefinieerde syntaxis- en parseringsvereisten, waardoor het eenvoudig, efficiënt en consistent blijft.
  • Op grote schaal gebruikt voor het opslaan en verwerken van documenten;
  • Dit is een formaat gebaseerd op internationale standaarden;
  • De hiërarchische structuur van XML is geschikt om vrijwel elk type document te beschrijven;
  • Het is een eenvoudige tekst, vrij van licenties en beperkingen;
  • Platformonafhankelijk;
  • Het is een subset van SGML, waarvoor uitgebreide ervaring is opgebouwd en gespecialiseerde toepassingen zijn gecreëerd;

Aan de beroemde tekortkomingen talen omvatten het volgende:

  • XML-syntaxis is overbodig.
    • De omvang van een XML-document is aanzienlijk groter dan de binaire representatie van dezelfde gegevens (ongeveer 10 keer).
    • De grootte van een XML-document is aanzienlijk groter dan die van een document in alternatieve formaten voor tekstgegevensoverdracht (bijvoorbeeld JSON, YAML) en vooral in gegevensformaten die zijn geoptimaliseerd voor een specifiek gebruiksscenario.
    • XML-redundantie kan de prestaties van applicaties beïnvloeden. De kosten voor het opslaan, verwerken en verzenden van gegevens nemen toe.
    • Voor een groot aantal taken is de volledige kracht van de XML-syntaxis niet nodig en kunnen veel eenvoudigere en beter presterende oplossingen worden gebruikt.
  • XML-naamruimten zijn moeilijk te gebruiken en moeilijk te implementeren in XML-parsers.
  • XML heeft geen ondersteuning voor gegevenstypen ingebouwd in de taal. Het heeft niet de concepten van “gehele getallen”, “strings”, “datums”, “booleans”, enz.
  • Hiërarchisch datamodel XML biedt beperkingen ten opzichte van het relationele model en objectgeoriënteerde grafieken.

Over het algemeen kan XML niet alleen worden gezien als een nieuwe opmaaktaal, maar ook als de basis voor een hele familie van technologieën:

Tabel 9.1.
XML-familiestructuur XML
Technisch advies over het gebruik van XML DTD
Definitie van documenttype (schema) XDR XML-formaat Verminderd
(Microsoft-schema) XSD
Een XML-schema definiëren (W3C-schema) Naamruimte
Methode voor het definiëren van element- en attribuutnamen XPath
XML-padtaal XLink
XML-linktaal XPointer
XML-aanwijzertaal DOM
Documentobjectmodel-API SAX
Eenvoudige API voor XML XSL Uitbreidbaar
stijlblad taal XSL-FO Eenvoudige API voor XML
Objecten opmaken XSLT Eenvoudige API voor XML
Transformatie taal XInclusief

XML Inclusief syntaxis Vandaag zullen we een zeer populair en handig overwegen XML-opmaaktaal

. Omdat dit formaat voor het presenteren van gegevens zeer flexibel en universeel is en vrijwel overal kan worden gebruikt, betekent dit dat je ergens gewetensvol mee omgaat. Daarom zal een beginnende programmeur vroeg of laat met deze taal te maken krijgen, en het maakt niet uit wat je precies doet, of het nu gaat om webprogrammering of databasebeheer, omdat iedereen XML gebruikt, en je zult het ook gebruiken om de taken uit te voeren je hebt nodig.

We beginnen, zoals gewoonlijk, met theorie, laten we kijken naar wat voor soort taal het is, waarom het goed is, hoe we het moeten gebruiken en waar het wordt gebruikt.

XML-taaldefinitie (XML) is een universele en uitbreidbare gegevensopmaaktaal die onafhankelijk is van het besturingssysteem en de verwerkingsomgeving. XML wordt gebruikt om bepaalde gegevens in de vorm van een structuur weer te geven. Deze structuur kunt u zelf ontwikkelen of aanpassen voor een bepaald programma of een bepaalde dienst. Dat is de reden waarom deze taal uitbreidbaar wordt genoemd, en dit is het belangrijkste voordeel waarvoor het zo wordt gewaardeerd.

Zoals u weet, zijn er nogal wat opmaaktalen, bijvoorbeeld de HTML-taal, maar ze zijn allemaal op de een of andere manier afhankelijk van de processor, bijvoorbeeld dezelfde html, de code die de browser parseert, is gestandaardiseerd en niet uitbreidbaar, er zijn duidelijke tags, een syntaxis die niet kan worden geschonden, en in xml kun je je eigen tags maken, d.w.z. uw opmaak. Het belangrijkste verschil tussen HTML en XML is dat html alleen de opmaak beschrijft voor het weergeven van gegevens, en dat xml een abstracte gegevensstructuur is die overal naar wens kan worden verwerkt en weergegeven. Daarom is het niet nodig om deze talen met elkaar te vergelijken. totaal verschillende doeleinden.

Zoals hierboven opgemerkt, is xml een veel voorkomende en universele taal, waarmee bijna alle applicaties, zowel internet als alleen voor de computer, het gebruiken als een uitwisseling van informatie, omdat je met behulp hiervan heel gemakkelijk gegevens kunt uitwisselen tussen applicaties of diensten die zelfs in verschillende talen zijn geschreven. In dit verband zou elke beginnende programmeur die met welk programmeerwerk dan ook betrokken is, kennis van XML moeten hebben. Als je webmaster wilt worden, dan moet je gewoon XML kennen, en we hebben al besproken hoe je WEB Master kunt worden en wat je daarvoor moet weten.

Ik had bijvoorbeeld ooit de taak om een ​​bepaalde service te schrijven die op verzoek gegevens in xml-vorm zou moeten retourneren, d.w.z. een soort ontwikkeling van het servergedeelte van de applicatie, en ik had geen idee waarin de client was geschreven die deze gegevens zou verwerken, en dat ik een service schreef die de gegevens in xml-vorm terugstuurde en dat was alles, de applicatie werkte perfect . En dit is slechts een voorbeeld waar ik mee te maken kreeg, maar stel je nu eens voor hoeveel verschillende organisaties samenwerken en gewetensvol software ontwikkelen en gegevens uitwisselen, en het zou mij niet verbazen dat deze gegevens in xml-vorm zullen zijn.

Ik had bijvoorbeeld ooit de taak om een ​​bepaalde service te schrijven die op verzoek gegevens in xml-vorm zou moeten retourneren, d.w.z. een soort ontwikkeling van het servergedeelte van de applicatie, en ik had geen idee waarin de client was geschreven die deze gegevens zou verwerken, en dat ik een service schreef die de gegevens in xml-vorm terugstuurde en dat was alles, de applicatie werkte perfect . En dit is slechts een voorbeeld waar ik mee te maken kreeg, maar stel je nu eens voor hoeveel verschillende organisaties samenwerken en gewetensvol software ontwikkelen en gegevens uitwisselen, en het zou mij niet verbazen dat deze gegevens in xml-vorm zullen zijn.

Ook moest ik ooit xml-gegevens opslaan in een MS SQL 2008-database om deze gegevens beter weer te geven en uit te wisselen tussen de server en het clientgedeelte van de applicatie, dit hebben we besproken in het artikel - Transact-sql - werken met xml .

De XML-taal zelf is heel eenvoudig, en het is simpelweg onmogelijk om daarin in de war te raken; alle complexiteit ontstaat juist in de verwerking en interactie van XML met andere toepassingen, technologieën, d.w.z. alles wat xml omringt, en dat is waar u gemakkelijk in de war kunt raken.

Vandaag hebben we het alleen over de basisprincipes van XML, en we zullen ons niet concentreren op technologieën voor de verwerking van en interactie met deze taal, aangezien dit waar is, zeer omvangrijk materiaal, maar ik denk dat we in de toekomst kennis zullen blijven maken met gerelateerde technologieën .

Laten we verder gaan met oefenen. En ik zal alle voorbeelden die we in Notepad++ zullen overwegen alleen schrijven omdat het erg handig is, maar we zullen hier nu niet over praten, omdat we dit al hebben besproken in het artikel - Waarom Notepad++ goed is voor een beginnende ontwikkelaar.

XML-tags

XML-taal gebruikt tags ( Tags zijn hoofdlettergevoelig), maar niet dezelfde tags als in html, maar die je zelf bedenkt, maar het xml-document heeft ook een duidelijke structuur, d.w.z. er is een openingstag en een sluitingstag, er zijn geneste tags en uiteraard zijn er waarden die zich in deze tags bevinden. Met andere woorden: het enige dat u nodig heeft voor basiskennis van XML is dat u zich aan deze regels houdt. Samen worden de openings-, sluitingstag en waarde een element genoemd, en het hele XML-document bestaat juist uit elementen die samen een datastructuur vormen. Een xml-document kan slechts één hoofdelement hebben. Onthoud dit, want als u twee hoofdelementen schrijft, zal dit een fout zijn.

En het is tijd om een ​​voorbeeld te geven van XML-opmaak, en het eerste voorbeeld voor nu is voor syntaxis:

<Начало элемента> <Начало вложенного элемента>Geneste elementwaarde

Zoals je kunt zien, is alles vrij eenvoudig en kunnen er veel van dergelijke elementen in elkaar zijn genest.

Laten we nu een voorbeeld geven van een echt XML-document:

Zoals je kunt zien, heb ik hier zojuist een voorbeeld gegeven van een soort boekencatalogus, maar ik heb dit document niet aangegeven, d.w.z. Ik heb geen XML-declaratie geschreven die de applicatie die deze gegevens gaat verwerken vertelt dat de XML-gegevens zich hier bevinden en in welke codering deze worden gepresenteerd. U kunt ook opmerkingen en attributen schrijven, dus laten we een voorbeeld van zo'n document geven:

Boek 1 Iwan Boek er maar 1 Boek 2 Sergej Boek er maar 2 Boek 3 Roman Boek er maar 3

Waar de eerste regel de verklaring is dat dit een XML-document is en moet worden gelezen in UTF-8-codering.

Deze gegevens zien er zonder verwerking bijvoorbeeld in een browser (Mozilla Firefox) als volgt uit:

Ik hoop dat je begrijpt dat catalogus hier het hoofdelement is, dat bestaat uit de boekelementen, die op hun beurt bestaan ​​uit de naam-, auteur- en commentaarelementen, en voor het voorbeeld heb ik ook verschillende attributen ingesteld voor het cataloguselement en het boekelement .

Voor de basis denk ik dat dit genoeg is, want als we dieper en dieper in XML duiken, en in alle technologieën die met deze taal geassocieerd zijn, zal dit artikel nooit eindigen. Zo, dat is alles voor vandaag. Doei!

(Engels) Standaard gegeneraliseerde opmaaktaal - standaard gegeneraliseerde opmaaktaal) heeft zichzelf uitgeroepen tot een flexibele, alomvattende en alomvattende metataal voor het maken van opmaaktalen. Hoewel het concept van hypertext teruggaat tot 1965, beschikt SGML niet over een hypertextmodel. De oprichting van SGML kan met vertrouwen een poging worden genoemd om de onmetelijkheid te omarmen, omdat het mogelijkheden combineert die uiterst zelden worden gebruikt. Dit is het grootste nadeel: de complexiteit en, als gevolg daarvan, de hoge kosten van deze taal beperken het gebruik ervan alleen tot grote bedrijven die het zich kunnen veroorloven de juiste software te kopen en goedbetaalde specialisten in te huren. Bovendien hebben kleine bedrijven zelden problemen die complex genoeg zijn om SGML te betrekken bij de oplossing ervan.

SGML wordt het meest gebruikt om andere opmaaktalen te maken; met zijn hulp werd de opmaaktaal voor hypertekstdocumenten gecreëerd: HTML, waarvan de specificatie in 1992 werd goedgekeurd. Het verschijnen ervan werd in verband gebracht met de noodzaak om de snel groeiende hoeveelheid documenten op internet te ordenen. De snelle groei van het aantal internetverbindingen en daarmee het aantal webservers bracht een behoefte met zich mee aan het coderen van elektronische documenten, waar SGML vanwege de grote moeilijkheidsgraad van de ontwikkeling niet mee om kon gaan. De komst van HTML, een zeer eenvoudige opmaaktaal, loste dit probleem snel op: het leergemak en de rijkdom aan hulpmiddelen voor documentontwerp maakten het de populairste taal voor internetgebruikers. Maar naarmate het aantal en de kwaliteit van de documenten op het web toenamen, namen ook de eisen die eraan werden gesteld toe, en de eenvoud van HTML werd het grootste nadeel ervan. Het beperkte aantal tags en de volledige onverschilligheid ten aanzien van de structuur van het document waren voor ontwikkelaars, vertegenwoordigd door het W3C-consortium, aanleiding om een ​​opmaaktaal te creëren die niet zo complex zou zijn als SGML en niet zo primitief als HTML. Het resultaat was XML, een taal die de eenvoud van HTML combineert met de markup-logica van SGML en voldoet aan de eisen van internet.

Goed opgemaakte en geldige XML-documenten

De standaard definieert twee niveaus van correctheid voor een XML-document:

  • Goed gebouwd(Engels) goed gevormd). Een goed opgemaakt document volgt alle algemene regels van de XML-syntaxis die op elk XML-document van toepassing zijn. En als bijvoorbeeld een starttag geen bijbehorende eindtag heeft, dan dit verkeerd geconstrueerd XML-document. Een document dat niet op de juiste manier is opgebouwd, kan niet als een XML-document worden beschouwd; De XML-processor (parser) zou deze niet normaal moeten verwerken en de situatie als een fatale fout moeten classificeren.
  • Geldig(Engels) geldig). Een geldig document voldoet bovendien aan bepaalde semantische regels. Dit is een strengere aanvullende controle op de juistheid van het document op naleving van vooraf bepaalde, maar toch al externe regels, om het aantal fouten, bijvoorbeeld de structuur en samenstelling van een bepaald, specifiek document of een familie van documenten, te minimaliseren. Deze regels kunnen door de gebruiker zelf worden ontwikkeld of door externe ontwikkelaars, bijvoorbeeld ontwikkelaars van woordenboeken of standaarden voor gegevensuitwisseling. Meestal worden dergelijke regels opgeslagen in speciale bestanden - diagrammen, waarin de structuur van het document, alle geldige namen van elementen, attributen en nog veel meer in detail worden beschreven. En als een document bijvoorbeeld een elementnaam bevat die niet eerder in de schema's is gedefinieerd, wordt het XML-document als leegte; Bij het controleren op naleving van regels en schema's is de controlerende XML-processor (validator) verplicht (naar keuze van de gebruiker) een fout te melden.

Deze twee concepten hebben geen gevestigde gestandaardiseerde vertaling in het Russisch, vooral niet het concept geldig, wat ook vertaald kan worden als geldig, legitiem, betrouwbaar, fit, of zelfs getest op naleving van regels, normen, wetten. Sommige programmeurs gebruiken in het dagelijks leven gevestigde calqueerpapier " Geldig».

XML-syntaxis

In deze sectie wordt alleen besproken correcte constructie XML-documenten, dat wil zeggen hun syntaxis.

Laten we eens kijken naar een voorbeeld van een eenvoudig recept dat is opgemaakt met XML:

> Eenvoudig brood > > Meel > Gist > Warm water > Zout > > > > Meng alle ingrediënten en kneed grondig. > > Dek af met een doek en laat een uur in een warme kamer staan. > > Kneed opnieuw, plaats het op een bakplaat en zet het in de oven. > > >

XML-declaratie

De eerste regel van het XML-document wordt aangeroepen XML-declaratie(Engels) XML-declaratie) is een string die de XML-versie aangeeft. In versie 1.0 XML-declaratie kan worden weggelaten, in versie 1.1 is dit vereist. Ook de karaktercodering en de aanwezigheid van externe afhankelijkheden kunnen hier worden aangegeven.

De specificatie vereist dat XML-processors de Unicode-coderingen UTF-8 en UTF-16 ondersteunen (UTF-32 is optioneel). Andere coderingen gebaseerd op de ISO/IEC 8859-standaard worden erkend als acceptabel, ondersteund en algemeen gebruikt (maar niet vereist), bijvoorbeeld Russisch Windows-1251, KOI-8. Vaak worden niet-Latijnse letters niet in tags gebruikt; in dit geval is UTF-8 een erg handige codering - het volume is meestal kleiner dan bij UTF-16; het decoderen kan zowel voor het gehele document als voor specifieke attributen en teksten worden uitgevoerd; het hele document bevat geen verboden tekens wanneer wordt geprobeerd te parseren met onjuiste codering.

Wortelelement

De belangrijkste verplichte syntactische vereiste is dat het document er maar één heeft wortelelement(Engels) wortelelement) (ook wel genoemd documentelement(Engels) documentelement)). Dit betekent dat de tekst of andere gegevens van het hele document zich tussen een enkele start-roottag en de bijbehorende eindtag moeten bevinden.

Het volgende eenvoudigste voorbeeld is een goed opgemaakt XML-document:

Het volgende voorbeeld is geen geldig XML-document omdat het er twee heeft wortelelement:

> Entiteit #1 > > Entiteit #2 >

Opmerking

Een element kan overal in de boom worden geplaatst - opmerking. XML-opmerkingen worden in een speciale tag geplaatst, beginnend met de tekens. Er mogen geen twee koppeltekens (--) aanwezig zijn in een opmerking.

Tags in een reactie mogen niet worden verwerkt.

Labels

De rest van dit XML-document bestaat uit genest elementen, waarvan sommige dat wel hebben attributen En inhoud. Element bestaat meestal uit openings- en sluitingstags die tekst en andere elementen omsluiten. Openingstag bestaat uit elementnaam tussen punthaken, bijvoorbeeld , A afsluitende tag bestaat uit dezelfde naam tussen punthaken, maar er wordt een schuine streep voor de naam toegevoegd, bijvoorbeeld. Elementnamen mogen, net als attribuutnamen, geen waarden bevatten ruimtes, maar kan in elke taal zijn die wordt ondersteund door de XML-documentcodering. De naam kan beginnen met een letter, een onderstrepingsteken of een dubbele punt. De overige tekens van de naam kunnen dezelfde tekens zijn, maar ook cijfers, koppeltekens en punten.

Er zijn verschillende vooraf gedefinieerde entiteiten in XML, zoals lt (je kunt ernaar verwijzen door te schrijven<) для левой угловой скобки и amp (ссылка - &) для амперсанда. Возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков.

Hieronder ziet u een voorbeeld van het gebruik van een vooraf gedefinieerde entiteit om te voorkomen dat er een ampersand in de naam wordt gebruikt:

> AT&T >

De volledige lijst met vooraf gedefinieerde entiteiten bestaat uit &(&),< (<), >(>), " (") en " (") - de laatste twee zijn handig voor het schrijven van scheidingstekens binnen attribuutwaarden. U kunt uw entiteiten definiëren in een DTD-document.

Soms is het nodig om een ​​niet-afbrekende spatie te definiëren, die heel vaak in HTML wordt gebruikt en wordt aangeduid als. Er bestaat niet zo'n vooraf gedefinieerde entiteit in XML, het is geschreven en het gebruik ervan veroorzaakt een fout. De afwezigheid van deze veel voorkomende entiteit komt voor veel programmeurs vaak als een verrassing, en dit zorgt voor enkele problemen bij het migreren van hun HTML-ontwikkelingen naar XML.

Koppeling op symboolnummer(Engels) numerieke tekenreferentie) ziet eruit als een verwijzing naar een entiteit, maar in plaats van de naam van de entiteit wordt het teken # en een getal (in decimale of hexadecimale notatie) opgegeven, wat het nummer van het teken is in de Unicode-tekentabel. Dit zijn doorgaans tekens die niet rechtstreeks kunnen worden gecodeerd, zoals een Arabische letter in een ASCII-gecodeerd document. Het ampersand kan als volgt worden weergegeven:

> AT&T >

Er zijn andere regels met betrekking tot het maken van een geldig XML-document.

Sterke en zwakke punten

Voordelen

Gebreken

  • Dubbelzinnigheid modelleren.
  • XML heeft geen ondersteuning voor gegevenstypen ingebouwd in de taal. Het heeft geen sterke typering, dat wil zeggen de concepten van "gehele getallen", "strings", "datums", "booleans", enz.
  • Het hiërarchische datamodel dat XML biedt, is beperkt in vergelijking met het relationele model en het objectgeoriënteerde grafiek- en netwerkdatamodel.

XML weergeven op het World Wide Web

De drie meest gebruikelijke manieren om een ​​XML-document om te zetten in een door de gebruiker weer te geven vorm zijn:

  1. CSS-stijlen toepassen;
  2. Toepassing van XSL;
  3. Een XML-documenthandler schrijven in elke programmeertaal.

Om een ​​XSL-transformatie (XSLT) aan de clientzijde te specificeren, moeten de volgende XML-instructies aanwezig zijn:

XML-woordenboeken

Omdat XML een tamelijk abstracte taal is, zijn er XML-vocabulaires ontwikkeld.

Met een woordenboek kunnen ontwikkelaars overeenstemming bereiken over een eindige reeks tagnamen en de attributen van die tags. Een van de eerste woordenschat is XHTML, dat door de meeste browsers wordt begrepen. XHTML wordt vaak gebruikt om inhoud in een CMS op te slaan en te bewerken.

Er zijn meer gespecialiseerde vocabulaires gemaakt, zoals het SOAP-protocol voor gegevensoverdracht, dat niet mensvriendelijk is en behoorlijk moeilijk te lezen. Er zijn commerciële vocabulaires zoals CommerceML, xCBL en cXML die worden gebruikt om handelsgerichte gegevens over te dragen. Deze woordenboeken bevatten beschrijvingen van het bestelsysteem, leveranciers, producten en meer.

Meestal bedenkt iemand bij het beschrijven van een document een woordenschat voor zichzelf, die vervolgens wordt beschreven met behulp van DTD, XSD, of eenvoudigweg “on the fly” wordt uitgelegd aan geïnteresseerde partijen.

Een van de woordenboeken die wijdverbreid is geworden, is FB2: een woordenboek dat het formaat van een boek beschrijft, met allerlei voetnoten, citaten en zelfs afbeeldingen.

XML-versies

  • XML 1.0
  • XML-1.1

Zie ook

Opmerkingen

Literatuur

  • David Hunter, Jeff Rafter, Joe Faucett, Eric van der Vlist, enz. XML. Werken met XML, 4e editie = Beginnende XML, 4e editie. - M.: “Dialectiek”, 2009. - 1344 p. - ISBN 978-5-8459-1533-7
  • David Hunter, Jeff Rafter en anderen. XML. Basiscursus = Beginnend XML. - M.: Williams, 2009. - 1344 d. - ISBN 978-5-8459-1533-7
  • Robert Tabor. Implementatie van XML-webservices op het Microsoft .NET-platform = Microsoft .NET XML Web Services. - M.: Williams, 2002. - 464 d. - ISBN 0-672-32088-6

Koppelingen

  • XML op de website van het World Wide Web Consortium (W3C).
  • Officiële XML 1.0 standaardspecificatie
  • Officiële XML 1.1 standaardspecificatie
  • XML-documentatie op de IBM-websiteartikelen en forums
markup-talen) is een reeks speciale instructies, tags genaamd, ontworpen om een ​​structuur in documenten te vormen en de relaties tussen de verschillende elementen van deze structuur te definiëren. Met andere woorden, opmaak laat zien welk deel van het document een titel is, wat een ondertitel is, wat als de naam van de auteur moet worden beschouwd, enz. Opmaak is onderverdeeld in stilistische opmaak, structureel en semantisch.

Stilistische opmaak

Stilistische opmaak is verantwoordelijk voor het uiterlijk van het document. In HTML bevat dit type opmaak bijvoorbeeld tags zoals (cursief), (vet), (onderstreping), (doorgestreepte tekst), enz.

Structurele markering

Structurele opmaak definieert de structuur van het document. In HTML zijn tags (paragraaf) bijvoorbeeld verantwoordelijk voor dit soort opmaak. (titel),

(sectie), enz.

Semantische opmaak

Semantische markup informeert de inhoud van gegevens. Voorbeelden van dit type opmaak zijn tags (documentnaam), (code, gebruikt voor codelijsten), (variabel),

(adres van de auteur).

De basisconcepten van elke opmaaktaal zijn tags, elementen en attributen.

Tags en elementen.

De betekenissen van tags en elementen zijn vaak verward.

Tags, of, zoals ze ook wel worden genoemd, controledescriptors, dienen als instructies voor het programma dat de inhoud van het document aan de clientzijde weergeeft over wat er met de inhoud van de tag moet gebeuren. Punthaken worden gebruikt om een ​​tag te onderscheiden ten opzichte van de hoofdinhoud van het document: de tag begint met een kleiner dan-teken (<) и завершается знаком "больше" (>), waarin de namen van instructies en hun parameters worden geplaatst. In HTML bijvoorbeeld de tag geeft aan dat de volgende tekst cursief moet zijn.

Een element zijn tags samen met hun inhoud. De volgende constructie is een voorbeeld van een element:

Deze tekst is cursief gedrukt .

Het element bestaat uit een openingstag (in ons voorbeeld is dit de tag ), tag-inhoud (in het voorbeeld is dit de tekst "Dit is cursief gedrukte tekst") en de afsluitende tag(), hoewel in HTML soms de afsluitende tag kan worden weggelaten.

Kenmerken

Om eventuele parameters in te stellen die de kenmerken van dit element verduidelijken bij het definiëren van een element, worden attributen gebruikt.

Attributen bestaan ​​uit een naam = waardepaar dat kan worden opgegeven bij het definiëren van een element in de starttag. Links en rechts van het gelijkheidssymbool kunt u spaties laten. De attribuutwaarde wordt gespecificeerd als een tekenreeks tussen enkele of dubbele aanhalingstekens.

Elke tag kan een attribuut hebben als dat attribuut is gedefinieerd.

Wanneer het attribuut wordt gebruikt, heeft het element de volgende vorm:

<имя_тега атрибут = "значение"> inhoud taggen

De tekst wordt uitgelijnd op het midden

Eén openingstag kan meerdere attributen bevatten, bijvoorbeeld:

Opgegeven tekstgrootte en kleur

Geschiedenis van de ontwikkeling van opmaaktalen.

Het concept van hypertekst werd in 1945 door W. Bush geïntroduceerd en vanaf de jaren zestig verschenen de eerste toepassingen die hypertekstgegevens gebruikten. Deze technologie kreeg echter zijn belangrijkste ontwikkeling toen er een reële behoefte ontstond aan een mechanisme voor het combineren van meerdere informatiebronnen, dat de mogelijkheid bood om niet-lineaire tekst te creëren en te bekijken.

In 1986 keurde ISO de Standardized Generalized Markup Language goed. Deze taal is bedoeld voor het maken van andere opmaaktalen; het definieert een geldige set tags, hun attributen en de interne structuur van het document. Het is dus mogelijk om uw eigen tags te maken die verband houden met de inhoud van het document. Het wordt nu duidelijk dat dergelijke documenten moeilijk te interpreteren zijn zonder de opmaaktaaldefinitie, die is opgeslagen in de Document Type Definition (DTD). De DTD groepeert alle regels van de taal in de SGML-standaard. Met andere woorden: de DTD beschrijft de relatie van tags met elkaar en de regels voor het gebruik ervan. Bovendien wordt voor elke klasse documenten een eigen set regels gedefinieerd die de grammatica van de overeenkomstige opmaaktaal beschrijven. Alleen met behulp van een DTD kan dus het juiste gebruik van tags worden geverifieerd en daarom moet deze met het SGML-document worden meegestuurd of in het document worden opgenomen.

In die tijd waren er naast SGML nog verschillende andere soortgelijke talen die met elkaar concurreerden, maar de populariteit (HTML, een van zijn nakomelingen) gaf SGML een onmiskenbaar voordeel ten opzichte van zijn tegenhangers.

Met behulp van SGML kunt u gestructureerde gegevens beschrijven, informatie in documenten ordenen en deze informatie in een gestandaardiseerd formaat presenteren. Maar vanwege de complexiteit ervan werd SGML voornamelijk gebruikt om de syntaxis van andere talen te beschrijven, en weinig applicaties werkten rechtstreeks met SGML-documenten. SGML wordt doorgaans alleen in grote projecten gebruikt, bijvoorbeeld om een ​​uniform documentbeheersysteem voor een groot bedrijf te creëren.

HTML-opmaaktaal is veel eenvoudiger en handiger dan SGML. De instructies zijn in de eerste plaats bedoeld om het proces van het weergeven van documentinhoud op het scherm te controleren. HTML als een manier om technische documenten te markeren werd in 1991 door Tim Berners-Lee speciaal voor de wetenschappelijke gemeenschap gemaakt. Het was oorspronkelijk slechts een van de SGML-applicaties.

Ondanks het feit dat het enige wat HTML kan doen is delen van een document classificeren en ervoor zorgen dat deze correct in de browser worden weergegeven, is het de meest populaire opmaaktaal. Dit komt omdat HTML vrij eenvoudig te leren is. Het enige dat u hoeft te doen, is de HTML-opdrachten leren. De DTD voor HTML wordt in de browser opgeslagen. Bovendien moet worden opgemerkt dat HTML is ontworpen om op een grote verscheidenheid aan platforms te werken. Maar het heeft een aantal belangrijke beperkingen:

  1. HTML heeft een vaste set tags, en deze set kan niet worden uitgebreid of gewijzigd;
  2. HTML-taaltags laten alleen zien hoe de gegevens moeten worden gepresenteerd, dat wil zeggen hoe het document eruit ziet. HTML bevat geen informatie over de betekenis van de inhoud in de tags of de structuur van het document.

We vervolgen onze studie van XML opnieuw en in dit artikel zullen we kennis maken met XML-constructies als verwerkingsinstructies, opmerkingen, attributen en andere XML-elementen. Deze elementen zijn eenvoudig en stellen u in staat om flexibel, in strikte overeenstemming met de standaard, documenten van absoluut elke complexiteit te markeren.

Enkele punten, zoals XML-tags, hebben we al gedeeltelijk besproken in het vorige artikel “”. Nu zullen we dit onderwerp opnieuw bespreken en in meer detail onderzoeken. Dit wordt specifiek gedaan om het voor u gemakkelijker te maken het hele plaatje van XML-constructies te begrijpen.

XML-elementen. Lege en niet-lege XML-elementen

Zoals vermeld in het vorige artikel markeren tags in XML niet simpelweg tekst, zoals het geval is in HTML, maar markeren ze individuele elementen (objecten). Op hun beurt organiseren elementen op hiërarchische wijze informatie in een document, waardoor ze op hun beurt de belangrijkste structurele eenheden van de XML-taal worden.

In XML kunnen elementen van twee typen zijn: leeg en niet-leeg. Lege elementen bevatten geen gegevens, zoals tekst of andere constructies. In tegenstelling tot lege elementen kunnen niet-lege elementen alle gegevens bevatten, zoals tekst of andere XML-elementen en constructies. Laten we, om het punt van het bovenstaande te begrijpen, eens kijken naar voorbeelden van lege en niet-lege XML-elementen.

Leeg XML-element

Niet-leeg XML-element

Elementinhoud...

Zoals we uit het bovenstaande voorbeeld kunnen zien, is het belangrijkste verschil tussen lege en niet-lege elementen dat ze uit slechts één tag bestaan. Daarnaast is het ook vermeldenswaard dat in XML alle namen hoofdlettergevoelig zijn. Dit betekent dat de namen myElement, MyElement, MYELEMENT, enz. verschillen van elkaar, dus dit moment moet onmiddellijk worden onthouden om fouten in de toekomst te voorkomen.
Dus we hebben de elementen ontdekt. Laten we nu verder gaan met het volgende punt, namelijk de logische organisatie van XML-documenten.

Logische organisatie van XML-documenten. Boomstructuur van XML-gegevens

Zoals u zich herinnert, bestaat de belangrijkste constructie van de XML-taal uit elementen, die andere geneste constructies kunnen bevatten en daardoor een hiërarchische structuur in de vorm van een boom kunnen vormen. In dit geval zal het ouderelement de root zijn en zullen alle andere onderliggende elementen de takken en bladeren van de XML-boom zijn.

Laten we, om het gemakkelijker te maken de essentie van het bovenstaande te begrijpen, naar de volgende afbeelding met een voorbeeld kijken.

Zoals we kunnen zien, is het organiseren van een XML-document als een boom een ​​vrij eenvoudige structuur om te verwerken. Tegelijkertijd is de expressieve complexiteit van de boom zelf behoorlijk groot. De boomweergave is de meest optimale manier om objecten in XML te beschrijven.

XML-attributen. Regels voor het schrijven van attributen in XML

In XML kunnen elementen ook attributen bevatten waaraan waarden zijn toegewezen, die tussen enkele of dubbele aanhalingstekens worden geplaatst. Het attribuut voor een element wordt als volgt ingesteld:

In dit geval werd een attribuut met de naam “attribuut” en de waarde “waarde” gebruikt. Het is de moeite waard om meteen op te merken dat het XML-attribuut een bepaalde waarde moet bevatten en niet leeg kan zijn. Anders is de code onjuist vanuit XML-oogpunt.

Het is ook de moeite waard om aandacht te besteden aan het gebruik van aanhalingstekens. Attribuutwaarden kunnen tussen enkele of dubbele aanhalingstekens staan. Daarnaast is het ook mogelijk om sommige citaten in andere te gebruiken. Om dit aan te tonen, kunt u de volgende voorbeelden overwegen.

Voordat we naar andere XML-constructies kijken, is het ook de moeite waard om op te merken dat bij het maken van attributen speciale tekens zoals het ampersand "&" of punthaken " niet als waarden kunnen worden gebruikt.<>" Deze tekens zijn gereserveerd als controletekens (“&” is een entiteit, en “<» и «>» de elementtag openen en sluiten) en kan niet in zijn “pure vorm” worden gebruikt. Om ze te gebruiken, moet je je toevlucht nemen tot het vervangen van speciale tekens.

XML-verwerkingsinstructies (verwerkingsinstructies). XML-declaratie

XML heeft de mogelijkheid om instructies in een document op te nemen die specifieke informatie bevatten voor toepassingen die een bepaald document zullen verwerken. Verwerkingsinstructies in XML worden als volgt gemaakt.

Zoals u in het bovenstaande voorbeeld kunt zien, worden verwerkingsinstructies in XML tussen aanhalingstekens en een vraagteken geplaatst. Dit lijkt een beetje op de gebruikelijke waar we naar keken in de eerste PHP-lessen. Het eerste deel van de verwerkingsinstructie specificeert de applicatie of het systeem waarvoor het tweede deel van deze instructie of de inhoud ervan is bedoeld. Verwerkingsinstructies zijn echter alleen geldig voor de toepassingen waarvoor ze bedoeld zijn. Een voorbeeld van een verwerkingsinstructie zou de volgende instructie kunnen zijn.

Het is vermeldenswaard dat XML een speciale constructie heeft die sterk lijkt op een verwerkingsinstructie, maar dat het zelf niet zo is. We hebben het over een XML-declaratie die aan de verwerkingssoftware enige informatie over de eigenschappen van het XML-document overbrengt, zoals codering, versie van de taal waarin het document is geschreven, enz.

Zoals je uit het bovenstaande voorbeeld kunt zien, bevat de XML-declaratie zogenaamde pseudo-attributen, die sterk lijken op de reguliere attributen waar we het hierboven over hadden. Feit is dat een XML-declaratie en verwerkingsinstructies per definitie geen attributen kunnen bevatten. Daarom worden deze declaraties pseudo-attributen genoemd. Dit is de moeite waard om te onthouden voor de toekomst om verschillende fouten te voorkomen.

Omdat we met pseudo-attributen te maken hebben gehad, gaan we eens kijken wat ze betekenen.

  • Codering – is verantwoordelijk voor het coderen van het XML-document. Meestal wordt UTF8-codering gebruikt.
  • Versie – de versie van de XML-taal waarin dit document is geschreven. Meestal is dit XML-versie 1.0.

Laten we nu verder gaan met het slotgedeelte van het artikel en XML-constructies beschouwen als commentaren en CDATA-secties.