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

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.

De lezer leert XSLT gebruiken, waarmee u documenten van het ene formaat naar het andere kunt converteren. Leer de XPath-tool, die wordt gebruikt om toegang te krijgen tot verschillende delen van XML-documenten. Met deze en andere technologieën die in het boek worden beschreven, kunt u documenten in HTML-formaat uitvoeren, verschillende coderingen gebruiken, met name voor russificatie, en nog veel, veel meer.

Waar gaat dit boek nog meer over? Deze vraag kan op deze manier worden beantwoord: Alexey Valikovs boek ‘XSLT Technology’ bespreekt technologieën die het gebruik van gestructureerde gegevens in webapplicaties vergemakkelijken en daarmee de weg openen voor grote en zeer grote projecten.

"Tutorial XML" is ideaal voor een onafhankelijke studie van computertechnologie - XML, die snel doordringt in bijna alle gebieden van informatie-uitwisseling. Dit boek introduceert de nieuwste aspecten van XML-technologie: de XQuery-querytaal, de XSD-documentbeschrijvingstaal en XSL-FO-documentopmaak. Merk op dat Ildar Khabibullin, beginnend met de basisprincipes van XML-technologie, de gebruiker geleidelijk naar het niveau brengt waarop hij zelfstandig verschillende programma's kan maken die XML-documenten verwerken. De presentatie is gebaseerd op de lezingenreeks van de auteur en wordt gekenmerkt door beknoptheid en eenvoud. Een groot aantal oefeningen en voorbeelden maakt het mogelijk om de stof diepgaand onder de knie te krijgen. De tutorial is bedoeld voor programmeurs.

Boek "XSLT. A Collection of Recipes" is een onmisbare gids voor alle programmeurs, omdat het oplossingen biedt voor honderden problemen waarmee ontwikkelaars te maken krijgen bij het gebruik van de XSLT-taal (Extensible Stylesheet Language Transformation). Deze taal is het belangrijkste hulpmiddel voor het verwerken van XML-documenten, maar veel ontwikkelaars beheersen deze niet in de juiste mate en geven er de voorkeur aan bestaande code aan te passen in plaats van nieuwe te creëren. Deze publicatie zal u helpen beide versies van XSLT te begrijpen. Een groot voordeel van het boek is het feit dat het niet alleen oplossingen biedt voor bepaalde problemen die zich voordoen tijdens het maken van programma's, maar ook een onderbouwing van de oplossing en een uitleg van de gebruikte methodologie, evenals alternatieve oplossingen. Het boek is bedoeld voor programmeurs met verschillende vaardigheidsniveaus: zowel degenen die al bekend zijn met de XSLT-taal als degenen die deze net beginnen te beheersen.

XSLT is een handig en efficiënt documenttransformatiesysteem dat tegenwoordig veel wordt gebruikt. Stephen Holzner biedt niet alleen een diepgaande analyse van de XSLT-syntaxis, maar legt ook duidelijk het moderne gebruik van het systeem uit. Dit boek bevat honderden voorbeelden die u vertellen hoe XSLT-transformaties in de praktijk worden uitgevoerd op webservers, en hoe browsers worden gebruikt om transformaties direct uit te voeren. Het boek is essentieel voor iedereen die XSLT wil leren en in de praktijk wil gebruiken.

Het boek “XML and SOAP Programming for BizTalk Servers” van auteur Brian Travis onderzoekt de technologieën die ten grondslag liggen aan e-commerce en moderne internetzaken. De normen voor de hiërarchische structurering van informatie, de Biztalk-ideologie en presentatieschema's worden in detail uiteengezet. Daarnaast worden kwesties met betrekking tot de integratie en ontwikkeling van applicaties op het Biztalk-platform aan de orde gesteld. De inhoud van het boek wordt uitgelegd aan de hand van specifieke voorbeelden van het creëren van een SOAP-client en -server en het ontwikkelen van een oplossing om de uitwisseling tussen meerdere websites en XML-documenten te automatiseren. De bijlagen bieden een schat aan referentiemateriaal, waaronder de nieuwste BizTalk-infrastructuur en SOAP-protocolspecificaties. De publicatie is interessant voor managers van internetprojecten, makers van e-commercesoftware en iedereen die zijn kennis over moderne methoden voor het structureren van informatie wil vergroten. Het boek bestaat uit twaalf hoofdstukken, vier bijlagen en een onderwerpenindex. De schijf die bij het boek wordt geleverd, bevat software, documentatie, voorbeelden van applicatie-implementaties en een elektronische versie van de gedrukte publicatie.

Het boek “Developing XML Web Services Using Microsoft .NET” beschrijft de constructie en het gebruik van webservices met behulp van het Microsoft .NET-platform. Er wordt een overzicht gegeven van internettechnologieën ASP.NET en Remoting, DISCO, UDDI, het SOAP-protocol, XML, WSDL-talen en hun rol in de ontwikkeling van webservices. Bevat een beschrijving van de laatste nieuwe ontwikkelingen van Microsoft die het ontwerp en de distributie van webservices vereenvoudigen. Het bevat ook een bespreking van productieve manieren om webservices te debuggen, verzonden informatie te beschermen en schaalbaarheid en verhoogde beschikbaarheid van webservices te garanderen. Het boek is aangevuld met veel voorbeelden om de theorie gemakkelijk te begrijpen.

Programmeren voor Microsoft SQL Server 2000 met XML door Graham Malcolm is een praktische gids voor het ontwikkelen van bedrijfsapplicaties met behulp van XML en SQL Server. Er wordt gedetailleerd gekeken naar het ophalen, invoegen en in kaart brengen van XML-gegevens met behulp van populaire XPath, XDR Schema, XSL Transformation Language, HTTP en OLE DB en de nieuwste technologieën. De voorbeelden in het boek laten zien hoe u belangrijke bedrijfsprocessen naar het web kunt verplaatsen met behulp van SQL Server en XML. Deze editie bevat 9 hoofdstukken en een bijlage die de basisprincipes van de XML-taal persoonlijk beschrijft voor SQL Server DBMS-beheerders. Het boek zal nuttig zijn voor iedereen die wil leren hoe applicaties en bedrijfsprocessen van ondernemingen die gegevens opslaan in een SQL Server-database met behulp van XML, kunnen worden geïntegreerd.

Het boek “XML: Web Application Development” van Alexey Starygin bevat een gedetailleerde beschrijving van de XML-taal samen met de XSLT- en XPath-talen die in het eerste deel worden beschreven. De tweede editie bevat praktische richtlijnen voor de toepassing van het materiaal uit de eerste. Naast XML houden we rekening met taken die voorkomen bij het bouwen van echte webapplicaties, zoals het doorgeven van HTTP-verzoekparameters aan de server, het ontwerpen van formulieren, het presenteren van gegevens met behulp van trapsgewijze stijlbladen, het verwerken van gebruikersacties met behulp van JavaScript.

Leerboek "XML. WEB Master's Directory" is een onmisbaar hulpmiddel voor diegenen die geïnteresseerd zijn in nieuwe technologische ontwikkelingen voor de ontwikkeling en uitvoering van documenten die op internetsites worden geplaatst. Je maakt kennis met de basisprincipes van XML. Dit naslagwerk bevat definities van alle XML-elementen en bespreekt veel kwesties met betrekking tot het ontwerp van XML-documenten en de selectie van stijlen. Bovendien biedt de referentie nuttige informatie over het maken van XLink-hyperlinks, het identificeren van XPointer-bronnen en informatie over het gebruik van CDF-kanalen, zowel op WAP-bronnen als op internet. Daarnaast zijn er WML-, XML-, XML- en Schema-specificaties.

In het boek “XML. Encyclopedia" presenteert twee hoofdbenaderingen van XML-programmering: de Microsoft-aanpak en het alternatief daarvan. Het boek behandelt veel nuttige onderwerpen, zoals: trapsgewijze opmaakmodellen, opmaak, het gebruik van browsers, het parseren en verbinden van XML-documenten met verschillende applicaties en databaseservers. Een beginnende programmeur zal op dit boek kunnen vertrouwen om XML te leren, en een ervaren programmeur zal zijn kennis uitbreiden.

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.

XML staat voor Extensible Markup Language, met de nadruk op markup. U kunt tekst maken en deze markeren met framing-tags, waardoor elk woord, zin of fragment wordt omgezet in identificeerbare, sorteerbare informatie. De bestanden, of documentinstanties, die u maakt, bestaan ​​uit elementen (tags) en tekst, en de elementen helpen u het document correct te begrijpen wanneer u het op papier leest of zelfs elektronisch verwerkt. Hoe meer beschrijvende elementen, hoe meer delen van het document kunnen worden geïdentificeerd. Sinds de begindagen van markup is een van de voordelen dat als het computersysteem verloren gaat, de afgedrukte gegevens dankzij de tags nog steeds leesbaar blijven.

Opmaaktalen zijn geëvolueerd van de eerste vormen die door bedrijven en overheidsinstanties zijn gemaakt, naar Standard Generalized Markup Language (SGML), Hypertext Markup Language (HTML) en uiteindelijk naar XML. SGML lijkt misschien complex, en HTML (dat aanvankelijk slechts een verzameling elementen was) is niet krachtig genoeg gebleken om informatie te identificeren. XML is ontworpen als een gebruiksvriendelijke en eenvoudig uit te breiden opmaaktaal.

In XML kunt u uw eigen elementen maken, zodat u stukjes gegevens nauwkeurig kunt weergeven. Documenten kunnen niet alleen worden onderverdeeld in paragrafen en kopjes, maar ook eventuele fragmenten binnen het document kunnen worden gemarkeerd. Om dit effectief te laten zijn, moet u een definitieve lijst van uw elementen opstellen en u daaraan houden. Elementen kunnen worden gedefinieerd in een Document Type Definition (DTD) of in een schema, zoals hieronder kort wordt besproken. Als u XML eenmaal onder de knie heeft en bent gaan gebruiken, wees dan niet bang om met elementnamen te experimenteren terwijl u daadwerkelijke bestanden maakt.

Een XML-document bouwen

Zoals gezegd bestaan ​​XML-bestanden uit tekst en opmaak. De meeste tekst wordt in elementen geplaatst waar de tekst wordt omgeven door tags. Stel dat u bijvoorbeeld een kookboek in XML-indeling wilt maken. We hebben een recept genaamd Ice Cream Sundae dat moet worden omgezet naar XML. Om de naam van het recept te markeren, plaatsen we de tekst in een element dat begint en eindigt met tags. Dit element kan receptnaam worden genoemd. Om de starttag van een element te markeren, plaatst u de naam ervan tussen punthaken<>), zoals dit: . Voer vervolgens de tekst Ice Cream Sundae in. Na de tekst plaatsen we een eindtag, de elementnaam tussen punthaken, plus een schuine streep (/) vóór de elementnaam, zoals dit:. Deze tags vormen een element waarin u tekst en zelfs andere elementen kunt invoeren.

Elementnamen kunnen worden gemaakt voor individuele documenten of voor groepen documenten. Afhankelijk van uw wensen kunt u de regels specificeren die voor de elementen moeten worden gevolgd. Elementen kunnen strikt specifiek of vrij algemeen zijn. De regels moeten ook definiëren wat aanvaardbaar is om in elk element op te nemen. Ze kunnen streng, los of daartussenin zijn. Maak eenvoudig elementen die de delen van uw document definiëren die u belangrijk vindt.

Begin met het maken van het XML-bestand

De eerste regel van een XML-document zou kunnen zijn XML-declaratie. Dit optionele deel van het bestand identificeert het als een XML-bestand, waardoor geautomatiseerde tools en mensen het bestand kunnen herkennen als XML in plaats van als SGML of andere markeringen.

De verklaring zou er eenvoudig zo uit kunnen zienof voeg de XML-versie en zelfs de tekencodering toe, b.v.voor Unicode. Omdat deze declaratie helemaal aan het begin van het bestand moet staan, kunt u dit optionele element het beste overslaan als u van plan bent kleine XML-bestanden te combineren tot een groter bestand.

Een rootelement maken

De begin- en eindtags van het hoofdelement omringen de volledige tekst van het XML-document. Er mag slechts één hoofdelement in het bestand aanwezig zijn, en dit is de vereiste "omslag" ervoor. Lijst 1 toont een fragment van het voorbeeld dat ik hier gebruik, met een hoofdelement (recept).

Lijst 1. Root-element

Terwijl u uw document maakt, plaatst u tekst en extra tags ertussen En .

Case-respect in tags

Bij het maken van XML moeten de hoofdletters van de begin- en eindtags overeenkomen. Anders ontvangt u mogelijk een foutmelding wanneer u de XML gebruikt of bekijkt. Internet Explorer geeft bijvoorbeeld geen tekst weer als er sprake is van een niet-overeenkomende hoofdlettergebruik. In plaats daarvan worden berichten weergegeven over een discrepantie tussen de begin- en eindtags.

Namen van elementen

We hebben dus een wortelelement . In XML worden eerst elementnamen geselecteerd en vervolgens wordt op basis van die namen de bijbehorende DTD-beschrijving of -schema bepaald. Namen kunnen letters, cijfers en speciale tekens bevatten, zoals het onderstrepingsteken (_). Hier zijn een paar regels over namen die u moet onthouden:

  • Spaties zijn niet toegestaan ​​in elementnamen.
  • Namen moeten beginnen met een letter, niet met een cijfer of teken. Na deze eerste letter kunt u elke combinatie van letters, cijfers en geldige symbolen gebruiken.
  • De hoofdlettergrootte doet er niet toe, maar zorg ervoor dat u deze volgt om verwarring te voorkomen.

Lijst 2. Andere elementen

Ijscoupe 5 minuten

Een XML-document kan lege tags bevatten, die niets bevatten en kunnen worden uitgedrukt als een enkele tag in plaats van een paar begin- en eindtags. Dit kan bijvoorbeeld een zelfstandige HTML-stijltag zijn . Het bevat geen onderliggende elementen of tekst, dus het is een leeg element en kan worden geschreven als (met een spatie en de bekende schuine streep aan het einde).

Nestende elementen

Nesten is het plaatsen van elementen in andere elementen. Deze nieuwe elementen worden onderliggende elementen genoemd, en de elementen eromheen worden hun bovenliggende elementen genoemd. In Listing 3 naar het hoofdelement verschillende elementen zijn genest. Dit zijn geneste kinderen , En Binnen een element er zijn verschillende identieke onderliggende elementen . Nesten kan ervoor zorgen dat een XML-document meerdere niveaus heeft.

Een veel voorkomende syntaxisfout betreft het nesten van bovenliggende en onderliggende elementen. Elk kindelement moet volledig tussen de openings- en sluitingstags van het bovenliggende element worden geplaatst. Onderliggende elementen moeten eindigen voordat het volgende kind begint.

Een voorbeeld van correct nesten wordt getoond in Listing 3. Tags beginnen en eindigen zonder verwevenheid met andere tags.

Listing 3. Correcte nesting van XML-elementen.

Ijscoupe 3 1 noten 1 kers 5 minuten

Attributen toevoegen

Aan elementen worden soms attributen toegevoegd. Attributen bestaan ​​uit een naam-waarde-paar, waarbij de waarde tussen dubbele aanhalingstekens (") staat, zoals dit: type="dessert". Met attributen kunt u aanvullende parameters opslaan bij een element, waardoor de waarden hiervan worden gewijzigd parameters van element tot element in hetzelfde document.

Een attribuut – of zelfs meerdere attributen – wordt gespecificeerd in de starttag van het element: . Wanneer u meerdere attributen toevoegt, worden deze gescheiden door spaties: . Listing 4 toont het XML-bestand zoals het er nu uitziet.

Listing 4. Ons XML-bestand met elementen en attributen

Ijscoupe 5 minuten

Er kan een willekeurig aantal attributen worden gebruikt. Bedenk welke details u aan uw document kunt toevoegen. Attributen zijn vooral handig als documenten worden opgeslagen, bijvoorbeeld op type recept. Attribuutnamen kunnen dezelfde tekens bevatten als elementnamen, met dezelfde regels voor het uitsluiten van spaties en het beginnen van de naam met een letter.

Correct en incorrect opgebouwde XML

Als u de regels volgt die in uw raamwerk zijn gedefinieerd, kunt u eenvoudig goed opgemaakte XML-code maken. Geldige XML is XML-code die alle XML-regels volgt: juiste naamgeving van elementen, nesting, naamgeving van attributen, enz.

Afhankelijk van wat u precies met XML doet, moet u mogelijk met goed opgemaakte XML werken. Beschouw het bovenstaande voorbeeld van sorteren op recepttype. Het is noodzakelijk dat de elementen bevatte het type attribuut. Het is erg belangrijk om de code succesvol te kunnen testen en ervoor te zorgen dat de waarde van dit attribuut altijd aanwezig is.

Validatie betekent het controleren van de documentstructuur op naleving van de daarvoor vastgestelde regels en de definitie van onderliggende elementen voor elk ouderelement. Deze regels zijn gedefinieerd in de Document Type Beschrijving (DTD) of het schema. Voor dit type validatie moet u een DTD of schema maken en vervolgens in uw XML-bestanden naar het DTD- of schemabestand verwijzen.

Om validatie mogelijk te maken, moet u een documenttypedeclaratie (DOCTYPE) aan het begin van uw XML-documenten plaatsen. Deze regel bevat een link naar de DTD of het schema (lijst met elementen en regels) die zal worden gebruikt om dit document te valideren. De DOCTYPE-regel zou er ongeveer zo uit kunnen zien als die in Listing 5.

Dit voorbeeld betekent dat uw lijst met items met de naam bestandsnaam.dtd zich op uw computer bevindt.

Entiteiten gebruiken

(entiteit) kunnen tekstfragmenten of speciale tekens zijn. Ze kunnen binnen of buiten het document worden gespecificeerd. Om fouten te voorkomen en correct weer te geven, moeten entiteiten correct worden gedeclareerd en uitgedrukt.

U kunt speciale tekens niet rechtstreeks in tekst invoeren. Om speciale tekens in tekst te gebruiken, moet u er entiteiten van maken en de codes van deze tekens gebruiken. U kunt zinsdelen, zoals een bedrijfsnaam, als entiteiten definiëren en deze vervolgens in uw tekst gebruiken. Om een ​​entiteit te maken, geeft u deze een naam en voegt u die naam in en voegt u die naam in de tekst in na het ampersand (&) en eindigend met een puntkomma, bijvoorbeeld (of een andere naam). Specificeer vervolgens deze code in uw DOCTYPE-regel tussen vierkante haakjes(), zoals in Listing 6. Deze code specificeert de tekst die in de plaats komt van de entiteit.

Lijst 6. Entiteit

Het gebruik van entiteiten helpt voorkomen dat dezelfde zin of informatie steeds opnieuw wordt herhaald. Het kan het ook gemakkelijker maken om tekst op veel plaatsen tegelijk te bewerken (bijvoorbeeld als een bedrijf de naam verandert) door eenvoudigweg een entiteitsdefinitiereeks in te stellen.

Hoe fouten te voorkomen

Terwijl u leert XML-bestanden te maken, opent u deze in een XML-editor om er zeker van te zijn dat ze formeel correct zijn en dat de XML-regels worden gevolgd. Als u bijvoorbeeld Windows® Internet Explorer® heeft, kunt u uw XML-bestand eenvoudig in de browser openen. Als uw elementen, attributen en tekst worden weergegeven, is het XML-bestand correct samengesteld. Als er fouten zijn, heb je waarschijnlijk iets in de syntaxis verprutst en moet je je document zorgvuldig controleren op typefouten of ontbrekende tags en interpunctie.

Zoals vermeld in de sectie Nesten van elementen, wordt een element dat een ander element bevat, het bovenliggende element van dat geneste element genoemd. In het onderstaande voorbeeld is het hoofdelement en bevat de volledige tekst van het bestand. Naar dit bovenliggende element geneste onderliggende elementen , , en anderen. Deze structuur maakt , En kind elementen. Vergeet niet om deze onderliggende elementen correct te nesten. Listing 7 is een voorbeeld van een goed opgemaakt XML-document met de juiste nesting van elementen.

Listing 7. Goed opgemaakt XML-document

Ijscoupe 0.5 vanille-ijs 3 chocoladesiroop of chocoladefudge 1 noten 1 kers 1 schaal 1 lepels 1 ijsschepje Gebruik een ijsschep en doe het vanille-ijs in de kom. Giet chocoladesiroop of chocoladefudge over het ijs. Strooi de noten over de berg chocolade en ijs. Plaats de kers op de heuvel met de steel naar boven gericht. Dienen. 5 minuten

Opmerking: Regeleinden maken de code gemakkelijker leesbaar en hebben geen invloed op de XML zelf.

U kunt met de testbestanden experimenteren en de begin- en eindtags verplaatsen om de foutmeldingen te zien.

XML-validatie

Figuur 1 toont een XML-document waarvan de elementen worden weergegeven zonder te crashen in Internet Explorer. De tekst wordt omlijst door tags voor openen en sluiten. Naast de bovenliggende elementen staan ​​plus (+) en min (-) pictogrammen, waarmee u alle geneste elementen (hun onderliggende elementen) binnen de elementen kunt verwijderen.

Figuur 1. Voorbeeld van een XML-bestand met samengevouwen onderliggende elementen

Conclusie

Met een paar eenvoudige regels in gedachten kunt u op een flexibele manier uw eigen XML-elementen en hun attributen ontwerpen. XML-regels zijn niet ingewikkeld. Het typen van een XML-document is ook eenvoudig. De sleutel is om te begrijpen wat u van uw documenten verwacht op het gebied van sorteer- en zoekmogelijkheden, en vervolgens elementen en attributen te ontwerpen die aan deze vereisten voldoen.

Wanneer u uw doel goed begrijpt en weet hoe u uw tekst moet markeren, kunt u effectieve elementen en attributen creëren. Vanuit dit perspectief is zorgvuldige opmaak alles wat nodig is om een ​​goed opgemaakt en bruikbaar XML-document te maken.

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

  • Goed gebouwd(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 de 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(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.

XML is een hiërarchische structuur die is ontworpen om gegevens visueel op te slaan; de structuur kan worden weergegeven als een boom. De belangrijkste verplichte syntactische vereiste is dat het document er maar één heeft wortelelement(wortelelement) (ook wel genoemd documentelement). Dit betekent dat de tekst of andere gegevens van het gehele document ertussen moeten staan de enige een start-root-tag en de bijbehorende eind-tag.

Het volgende eenvoudigste voorbeeld is een goed opgemaakt XML-document: Dit is het boek: "Klein Boekje" De eerste regel van het XML-document wordt aangeroepen XML-declaratie(XML-declaratie) is een optionele tekenreeks die de versie van de XML-standaard aangeeft (meestal 1.0), en kan ook tekencodering en externe afhankelijkheden bevatten. 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.

Opmerking kan overal in de boom worden geplaatst. XML-opmerkingen worden in een paar tags geplaatst . Twee koppeltekens (--) mogen nergens in een opmerking worden gebruikt.

Hieronder ziet u een voorbeeld van een eenvoudig kookrecept, opgemaakt met behulp van XML:

Eenvoudig brood Meel Gist Warm water Zout

Structuur

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 de elementnaam tussen punthaken, bijvoorbeeld ' »; afsluitende tag bestaat uit dezelfde naam tussen punthaken, maar er wordt een schuine streep voor de naam toegevoegd, bijvoorbeeld: “ ». Elementinhoud(content) is alles wat zich tussen de openings- en sluitingstags bevindt, inclusief tekst en andere (geneste) elementen. Hieronder ziet u een voorbeeld van een XML-element dat een openingstag, een eindtag en de inhoud van het element bevat:

Kneed opnieuw, plaats het op een bakplaat en zet het in de oven.

Meel

In het bovenstaande voorbeeld heeft het ingrediëntelement twee attributen: bedrag, dat de waarde 3 heeft, en eenheid, dat de waarde glas heeft. Vanuit het oogpunt van XML-opmaak hebben de bovenstaande attributen geen enkele betekenis, maar zijn ze slechts een reeks tekens.

Naast tekst kan een element ook andere elementen bevatten:

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.

In dit geval bevat het element Instructies drie stapelementen. XML staat geen overlappende elementen toe. Het volgende fragment is bijvoorbeeld onjuist omdat de elementen 'em' en 'strong' elkaar overlappen.

Normaal geaccentueerd benadrukt en geaccentueerd toegewijd

Elk XML-document moet er precies één bevatten wortelelement(wortelelement of documentelement), dus het volgende fragment kan niet als een geldig XML-document worden beschouwd.

Entiteit #1 Entiteit #2

Om een ​​element zonder inhoud aan te duiden, genaamd leeg onderdeel, nodig gebruik een speciale opnamevorm bestaande uit een enkele tag waarin een schuine streep achter de elementnaam wordt geplaatst. Als een element niet leeg is verklaard in de DTD, maar geen inhoud heeft in het document, ervoor toegestaan gebruik deze vorm van opnemen. Bijvoorbeeld:

XML definieert twee methoden voor het schrijven van speciale tekens: entiteitsreferentie en tekenreferentie. Essence(entiteit) in XML verwijst naar benoemde gegevens, meestal tekst, in het bijzonder speciale tekens. Entiteitsreferentie(entiteitsreferenties) wordt gespecificeerd op de plaats waar de entiteit zou moeten staan ​​en bestaat uit een ampersand (“&”), de naam van de entiteit en een puntkomma (“;”). Er zijn verschillende vooraf gedefinieerde entiteiten in XML, zoals “lt” (je kunt ernaar verwijzen door “< ») для левой угловой скобки и « amp » (ссылка - « & ») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков. Ниже приведён пример использования предопределённой сущности для избежания использования знака амперсанда в названии:

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 wordt gebruikt in HTML en wordt aangegeven omdat er in XML niet zo'n vooraf gedefinieerde entiteit bestaat, deze wordt opgeschreven 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(numerieke tekenreferentie) ziet eruit als een verwijzing naar een entiteit, maar in plaats van de entiteitsnaam wordt het teken # en een getal (in decimale of hexadecimale notatie) opgegeven, wat het tekennummer 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 nog veel meer regels met betrekking tot het schrijven van een geldig XML-document, maar het doel van dit korte overzicht was alleen maar om de basisprincipes te tonen die nodig zijn om de structuur van een XML-document te begrijpen.

Verhaal

Het geboortejaar van XML kan worden beschouwd als 1996, aan het einde waarvan een conceptversie van de taalspecificatie verscheen, of toen deze specificatie werd goedgekeurd. Het begon allemaal met de verschijning van de SGML-taal in 1986.

SGML (Standard Generalized Markup Language) heeft zichzelf uitgeroepen tot een flexibele, uitgebreide en uitgebreide metataal voor het maken van opmaaktalen. Ondanks het feit dat het concept van hypertekst in 1965 verscheen (en de onderliggende principes in 1945 werden geformuleerd), beschikt SGML niet over een hypertekstmodel. 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 verbindingen met internet en daarmee ook van 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 tot 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. Als gevolg hiervan werd XML geboren, door de eenvoud van HTML te combineren met de opmaaklogica van SGML en te voldoen aan de eisen van internet.

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 voorkomende manieren om een ​​XML-document om te zetten in een door de gebruiker weer te geven vorm zijn:

  1. CSS-stijlen toepassen;
  2. Toepassen van een XSLT-transformatie;
  3. Een XML-documenthandler schrijven in elke programmeertaal.

Zonder het gebruik van CSS of XSL wordt het XML-document in de meeste webbrowsers als platte tekst weergegeven. Sommige browsers zoals Internet Explorer, Mozilla en Mozilla Firefox geven de documentstructuur weer in een boomstructuur, waardoor u knooppunten met muisklikken kunt in- en uitvouwen.

CSS-stijlen toepassen

Het proces is vergelijkbaar met het toepassen van CSS op een HTML-document voor weergave.

Om CSS toe te passen wanneer het in een browser wordt weergegeven, moet het XML-document een specifieke link naar het stijlblad bevatten. Bijvoorbeeld:

Dit verschilt van de HTML-aanpak, waarbij het element wordt gebruikt .

Een XSLT-transformatie toepassen

XSL is een technologie die beschrijft hoe XML-documentgegevens kunnen worden opgemaakt of getransformeerd. Het document wordt omgezet in een formaat dat geschikt is voor weergave in een browser. De browser is het meest gebruikte gebruik van XSL, maar vergeet niet dat je met XSL XML naar elk gewenst formaat kunt omzetten, b.v.