Categoriearchief: Boeken over XML en XSLT. XML-basisbeginselen

XML is gemaakt om gegevens te beschrijven met het oog op wat de gegevens vertegenwoordigen.

HTML is gemaakt om gegevens weer te geven met het oog op hoe de weergegeven gegevens eruit zien.

Wat is XML?

  • XML staat voor Uitbreidbare opmaaktaal Opmaaktaal)
  • XML-is opmaaktaal, vergelijkbaar met HTML
  • XML is gemaakt voor gegevensbeschrijvingen
  • XML-tags zijn niet vooraf gedefinieerd. Dat kan gebruik je tags
  • XML-gebruik Documenttypedefinitie (DTD) of XML-schema ( XML-schema) gegevens te beschrijven
  • XML aanbevolen door W3C

Belangrijkste verschil tussen XML en HTML

XML is ontworpen voor gegevensoverdracht.

XML is geen vervanging voor HTML.

XML en HTML zijn ontwikkeld voor verschillende doeleinden:

  • XML is gemaakt om gegevens te beschrijven en richt zich op welke gegevens worden overgedragen
  • HTML is ontworpen voor gegevensweergave met de nadruk op gegevensweergave
  • HTML houdt zich dus meer bezig met het weergeven van informatie, terwijl XML zich meer bezighoudt met het beschrijven van informatie.

XML doet niets

XML is niet ontworpen om iets te doen.

Het is misschien niet gemakkelijk te begrijpen, maar XML doet niets. Deze opmaaktaal is gemaakt om informatie te structureren, op te slaan en te communiceren. Het volgende voorbeeld is een notitie van Anton Ire, weergegeven in XML:

Ira

Anton

Herinnering

Vergeet de bijeenkomst deze week niet!

Zoals u kunt zien, is XML erg beknopt.

Opmerking ( ) bestaat uit een koptekst ( ) en inhoud ( ) brieven. Het geeft de afzender aan (tag - “van wie de brief”) en ontvanger (tag - "aan wie"). Maar deze brief doet niets. Dit is pure informatie verpakt in tags. Om deze informatie te kunnen verzenden, ontvangen en weergeven, moet iemand een programma schrijven.

XML is een gratis uitbreidbare opmaaktaal

XML-tags zijn niet vooraf gedefinieerd. U kunt uw eigen tags invoeren.

Tags en documentstructuur in HTML zijn vooraf gedefinieerd. De maker van een HTML-document kan alleen tags gebruiken die door de standaarden zijn gedefinieerd.

Met XML kunt u uw tags en documentstructuur invoeren bij de auteur van het XML-document. De tags die in het voorbeeld worden getoond (bijvoorbeeld En ) worden niet gedefinieerd door de XML-standaard. Deze tags zijn ingevoerd door de auteur van het document.

XML is een aanvulling op HTML

XML is geen vervanging voor HTML.

Het is belangrijk om te begrijpen dat XML geen vervanging is voor HTML. In de toekomst zullen webontwikkelaars XML gebruiken om gegevens te beschrijven, terwijl HTML zal worden gebruikt om die gegevens op te maken en weer te geven.

Mijn beste XML-definitie is dit: XML is platformonafhankelijk, onafhankelijk van software en hardware hulpmiddel voor informatieoverdracht.

Opmerking: Cross-platform - geschikt voor elk besturingssysteem en elke hardware.

Als je weet dat er verschillende zijn besturingssystemen, behalve het bekende Windows. Dit zijn Linux OS, Mac en andere.

Wat de hardware betreft, kunnen we het volgende zeggen: dit kunnen gewone pc's, laptops, zakcomputers enz.

XML in de toekomst van webontwikkeling

XML zal overal gebruikt worden.

We zijn vanaf het begin getuige geweest van de ontwikkeling van XML. Het was verbazingwekkend om te zien hoe snel de XML-standaard werd ontwikkeld en hoe snel groot aantal leveranciers software deze norm geaccepteerd. Wij zijn ervan overtuigd dat XML een net zo belangrijk onderdeel van het toekomstige internet zal zijn als HTML, dat de basis van het internet vormt, en dat XML het meest gebruikte hulpmiddel zal zijn voor alle gegevensmanipulatie en -communicatie.

XML is erg populair en flexibel formaat in onze tijd. Elke programmeur zou het moeten begrijpen, het is gewoon een must-have. Veel technologieën zijn tegenwoordig met elkaar verbonden, ze maken er actief gebruik van, en moderne behoren daar ook toe.

Invoering

Hallo, beste lezers van mijn artikel. Ik wil meteen zeggen dat dit pas het eerste artikel is in mijn serie drie artikelen. Het belangrijkste doel van de hele serie is om elke lezer kennis te laten maken met XML en zo niet een volledige uitleg en begrip te geven, dan op zijn minst een goede duw in de richting ervan, waarbij de belangrijkste punten en zaken worden uitgelegd. De hele cyclus is voor één nominatie – “Aandacht voor detail”, en de verdeling in 3 artikelen werd gedaan om binnen de tekenlimiet in berichten te passen en een grote hoeveelheid materiaal in kleinere porties te verdelen voor een beter begrip. Het eerste artikel zal gewijd zijn aan XML zelf en wat het is, evenals aan een van de manieren om een ​​schema voor XML-bestanden te maken: DTD. Om te beginnen wil ik een klein voorwoord houden voor degenen die nog niet bekend zijn met XML: je hoeft niet bang te zijn. XML is niet erg ingewikkeld en zou door elke programmeur moeten worden begrepen, omdat het tegenwoordig een zeer flexibel, efficiënt en populair bestandsformaat is voor het opslaan van een verscheidenheid aan gewenste informatie. XML wordt gebruikt in Ant, Maven, Spring. Elke programmeur heeft kennis van XML nodig. Nu je de kracht en motivatie hebt verzameld, gaan we beginnen met studeren. Ik zal proberen al het materiaal zo eenvoudig mogelijk op te stellen, alleen het belangrijkste te verzamelen en niet in het onkruid te duiken.

XML

Voor een duidelijkere uitleg is het beter om de XML te visualiseren met een voorbeeld.< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> IT-hemel< / name> < offices> < office floor= "1" room= "1" > < employees> < employee> < name> Maxim< / name> < job> Middelste softwareontwikkelaar< / job> < / employee> < employee> < name> Iwan< / name> < job> Junior Softwareontwikkelaar< / job> < / employee> < employee> < name> Franklin< / name> < job> Junior Softwareontwikkelaar< / job> < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee> < name> Heraut< / name> < job> Middelste softwareontwikkelaar< / job> < / employee> < employee> < name> Adam< / name> < job> Middelste softwareontwikkelaar< / job> < / employee> < employee> < name> Leroy< / name> < job> Junior Softwareontwikkelaar< / job> < / employee> < / employees> < / office> < / offices> < / company>HTML en XML zijn qua syntaxis vergelijkbaar omdat ze een gemeenschappelijke ouder hebben: SGML. In HTML zijn er echter alleen vaste tags van een specifieke standaard, terwijl je in XML je eigen tags en attributen kunt maken en, in het algemeen, kunt doen wat je maar wilt om gegevens op te slaan op de manier die bij je past. In wezen kunnen XML-bestanden worden gelezen door iedereen die het weet Engelse taal. Afbeelden dit voorbeeld je kunt hout gebruiken. boom wortel- Bedrijf. Het is ook het root-element waaruit alle andere elementen voortkomen. Elk XML-bestand kan slechts één hoofdelement bevatten. Het zou daarna bekend moeten worden gemaakt XML-bestand declaratie(de eerste regel in het voorbeeld) en bevatten alle andere elementen. Iets over de verklaring: it verplicht en is nodig om het document als XML te identificeren. Het heeft drie pseudo-attributen (speciale vooraf gedefinieerde attributen): versie (volgens de 1.0-standaard), codering (codering) en standalone (autonomie: indien ja en verbonden met het document externe circuits, er zal een fout optreden, de standaardwaarde is nee). Elementen zijn entiteiten die gegevens opslaan met behulp van andere elementen en attributen. Kenmerken- Dit aanvullende informatie over het element, dat wordt opgegeven bij het toevoegen van een element. Als we de uitleg vertalen naar een OOP-veld, kunnen we het volgende voorbeeld geven: we hebben een auto, elke auto heeft kenmerken (kleur, capaciteit, merk, enz.) - dit zijn attributen en er zijn entiteiten die zich in de auto bevinden : deuren, ramen, motor, het stuur zijn andere elementen. U kunt eigenschappen opslaan als individuele elementen of als attributen, afhankelijk van uw wens. XML is tenslotte een uiterst flexibel formaat om informatie over wat dan ook op te slaan. Na de uitleg hoeven we alleen maar naar het bovenstaande voorbeeld te kijken om alles op zijn plaats te laten vallen. In het voorbeeld dat we beschreven eenvoudige structuur bedrijven: er is een bedrijf met een naam en kantoren, en in de kantoren zijn werknemers aanwezig. De elementen Werknemers en Kantoren zijn omhullende elementen: ze dienen om elementen van hetzelfde type te verzamelen, waarbij ze feitelijk in één set worden gecombineerd voor gemakkelijke verwerking. Vloer en ruimte verdienen speciale aandacht. Dit zijn de kenmerken van het kantoor (verdieping en nummer), oftewel de eigenschappen ervan. Als we een ‘beeld’-element hadden, zouden we de afmetingen ervan kunnen overbrengen. Het zal je misschien opvallen dat het bedrijf geen naamattribuut heeft, maar wel een naamelement. U kunt structuren eenvoudig beschrijven zoals u dat wilt. Niemand verplicht je om alle eigenschappen van elementen alleen in attributen te schrijven; je kunt alleen elementen gebruiken en er wat gegevens in schrijven. Zo kunnen wij de naam en functie van onze medewerkers als attributen vastleggen:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> IT-hemel< / name> < offices> < office floor= "1" room= "1" > < employees> < employee name= "Maksim" job= "Middle Software Developer" > < / employee> < employee name= "Ivan" job= "Junior Software Developer" > < / employee> < employee name= "Franklin" job= "Junior Software Developer" > < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" > < / employee> < employee name= "Adam" job= "Middle Software Developer" > < / employee> < employee name= "Leroy" job= "Junior Software Developer" > < / employee> < / employees> < / office> < / offices> < / company>Zoals u kunt zien, zijn de naam en functie van elke werknemer nu zijn attributen. En u kunt merken dat er niets in de werknemersentiteit (tag) staat, alle werknemerselementen zijn leeg. Vervolgens kunt u van werknemer een leeg element maken - sluit dit onmiddellijk na het declareren van de attributen. Dit gebeurt heel eenvoudig, voeg gewoon een schuine streep toe:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> IT-hemel< / name> < offices> < office floor= "1" room= "1" > < employees> < employee name= "Maksim" job= "Middle Software Developer" / > < employee name= "Ivan" job= "Junior Software Developer" / > < employee name= "Franklin" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company>Zoals u kunt zien, hebben we door het sluiten van de lege elementen de volledige integriteit van de informatie behouden en het record aanzienlijk ingekort, waardoor de informatie beknopter en leesbaarder is geworden. Toevoegen opmerking(tekst die wordt overgeslagen bij het parseren van het bestand) in XML is er de volgende syntaxis:< ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- >En het laatste ontwerp is CDATA , betekent "karaktergegevens". Dankzij dit ontwerp is het mogelijk om tekst te schrijven die niet als XML-opmaak wordt geïnterpreteerd. Dit is handig als u een entiteit in het XML-bestand hebt die XML-opmaak in de informatie opslaat. Voorbeeld:< ? xml version= "1.0" encoding= "UTF-8" ? > < bean> < information> < ! [ CDATA[ < name> Iwan< / name> < age> 26 < / age> ] ] > < / information> < / bean>Het mooie van XML is dat je het kunt uitbreiden zoals je wilt: gebruik je eigen elementen, je eigen attributen en structureer het zoals je wilt. U kunt zowel attributen als elementen gebruiken om gegevens op te slaan (zoals in het voorbeeld eerder werd getoond). U moet echter begrijpen dat u direct uw eigen elementen en attributen kunt bedenken en hoe u maar wilt, maar wat als u aan een project werkt waar een andere programmeur het naamelement naar attributen wil verplaatsen, en uw hele programmalogica? is zo geschreven dat de naam een ​​element was? Hoe u uw eigen kunt maken eigen regels welke elementen zouden er moeten zijn, welke attributen ze hebben en andere dingen, zodat u XML-bestanden kunt valideren en er zeker van kunt zijn dat de regels standaard worden in uw project en dat niemand ze zal overtreden? Om alle regels van uw eigen XML-opmaak te schrijven, is er speciale middelen. De bekendste: DTD en XML Schema. Dit artikel gaat alleen over de eerste.

DTD

DTD is gemaakt om soorten documenten te beschrijven. DTD is al verouderd en wordt nu actief verlaten in XML, maar er zijn nog steeds veel XML-bestanden die DTD gebruiken en in het algemeen is het nuttig om het te begrijpen. DTD is een technologie voor het valideren van XML-documenten. Een DTD declareert specifieke regels voor een documenttype: de elementen ervan, welke elementen zich in het element kunnen bevinden, attributen, of ze al dan niet vereist zijn, het aantal herhalingen ervan, evenals entiteiten. Net als bij XML kan een DTD worden gevisualiseerd met een voorbeeld voor een duidelijkere uitleg.< ! -- Объявление возможных элементов -- > < ! ELEMENT employee EMPTY> < ! ELEMENT employees (employee+ ) > < ! ELEMENT office (employees) > < ! ELEMENT offices (office+ ) > < ! ELEMENT name (#PCDATA) > < ! ELEMENT company (name, offices) > < ! -- Добавление атрибутов для элементов employee и office -- > < ! ATTLIST employee name CDATA #REQUIRED job CDATA #REQUIRED > < ! ATTLIST office floor CDATA #REQUIRED room CDATA #REQUIRED > < ! -- Добавление сущностей -- > < ! ENTITY M "Maksim" > < ! ENTITY I "Ivan" > < ! ENTITY F "Franklin" >Hier hebben we zo’n eenvoudig voorbeeld. In dit voorbeeld hebben we onze volledige hiërarchie uit het XML-voorbeeld gedeclareerd: werknemer, werknemers, kantoor, kantoren, naam, bedrijf. Om DTD-bestanden te maken, worden er 3 hoofdconstructies gebruikt om XML-bestanden te beschrijven: ELEMENT (om elementen te beschrijven), ATTLIST (om attributen voor elementen te beschrijven) en ENTITY (om tekst te vervangen door verkorte vormen). ELEMENT Wordt gebruikt om het element te beschrijven. De elementen die binnen het beschreven element kunnen worden gebruikt, worden in lijstvorm tussen haakjes vermeld. Je kunt kwantoren gebruiken om de hoeveelheid aan te geven (ze zijn vergelijkbaar met de kwantoren uit reguliere expressies): + betekent 1+ * betekent 0+ ? betekent 0 OF 1 Als er geen kwantoren zijn toegevoegd, wordt ervan uitgegaan dat er slechts één element zou moeten zijn. Als we één van een groep elementen nodig hadden, zouden we het als volgt kunnen schrijven:< ! ELEMENT company ((name | offices) ) >Vervolgens zou een van de elementen worden geselecteerd: naam of kantoren, maar als er twee binnen het bedrijf waren, zou de validatie niet slagen. Je kunt ook opmerken dat er in werknemer het woord EMPTY staat - dit betekent dat het element leeg moet zijn. Er is ook ELKE - alle elementen. #PCDATA – tekstgegevens. ATTLIST Wordt gebruikt om attributen aan elementen toe te voegen. ATTLIST wordt gevolgd door de naam gewenst onderdeel, en daarna een woordenboek van de vorm "attribuutnaam - attribuuttype", en aan het einde kun je #IMPLIED (optioneel) of #REQUIRED (vereist) toevoegen. CDATA – tekstgegevens. Er zijn nog andere typen, maar deze zijn allemaal in kleine letters. ENTITEIT ENTITY wordt gebruikt om afkortingen en de tekst die erop wordt geplaatst te declareren. In wezen kunnen we in plaats daarvan eenvoudigweg XML gebruiken volledige tekst alleen de naam van de entiteit met & vóór en; na. Bijvoorbeeld: om onderscheid te maken tussen HTML-opmaak en alleen tekens, wordt de linker punthaken vaak geëscaped met lt; , je hoeft alleen maar & voor lt te zetten. Dan gebruiken we geen markup, maar gewoon een symbool< . Как вы можете видеть, все довольно просто: объявляете элементы, объясняете, какие элементы объявленные элементы способны содержать, добавление атрибутов этим элементам и, по желанию, можете добавить сущности, чтобы сокращать какие-то записи. И тут вы должны были бы спросить: а как использовать наши правила в нашем XML файле? Ведь мы просто объявили правила, но мы не использовали их в XML. Er zijn twee manieren om ze in XML te gebruiken: 1. Implementatie - DTD-regels schrijven in het XML-bestand zelf, schrijf gewoon het root-element na het trefwoord DOCTYPE en plaats ons DTD-bestand tussen vierkante haakjes. < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company [ < ! -- Объявление возможных элементов -- > < ! ELEMENT employee EMPTY> < ! ELEMENT employees (employee+ ) > < ! ELEMENT office (employees) > < ! ELEMENT offices (office+ ) > < ! ELEMENT name (#PCDATA) > < ! ELEMENT company (name, offices) > < ! -- Добавление атрибутов для элементов employee и office -- > < ! ATTLIST employee name CDATA #REQUIRED job CDATA #REQUIRED > < ! ATTLIST office floor CDATA #REQUIRED room CDATA #REQUIRED > < ! -- Добавление сущностей -- > < ! ENTITY M "Maksim" > < ! ENTITY I "Ivan" > < ! ENTITY F "Franklin" > ] > < company> < name> IT-hemel< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < offices> < office floor= "1" room= "1" > < employees> < employee name= "&M;" job= "Middle Software Developer" / > < employee name= "&I;" job= "Junior Software Developer" / > < employee name= "&F;" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company> 2. Importeren - we schrijven al onze regels in een apart DTD-bestand, waarna we in het XML-bestand de DOCTYPE-constructie van de eerste methode gebruiken, alleen in plaats van vierkante haakjes moet je SYSTEM schrijven en een absoluut of relatief pad naar de huidige locatie van het bestand. < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company SYSTEM "dtd_example1.dtd" > < company> < name> IT-hemel< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < offices> < office floor= "1" room= "1" > < employees> < employee name= "&M;" job= "Middle Software Developer" / > < employee name= "&I;" job= "Junior Software Developer" / > < employee name= "&F;" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company>Je kunt ook gebruiken trefwoord OPENBAAR in plaats van SYSTEEM, maar het is onwaarschijnlijk dat u het nodig hebt. Als u geïnteresseerd bent, kunt u hier gedetailleerd over (en ook over SYSTEEM) lezen: link. Nu kunnen we geen andere elementen gebruiken zonder ze in de DTD te declareren, en alle XML is onderworpen aan onze regels. Je kunt proberen het op te schrijven deze code in IntelliJ IDEA apart bestand met de .xml-extensie en probeer enkele nieuwe elementen toe te voegen of een element uit onze DTD te verwijderen en merk op hoe de IDE een fout voor u zal aangeven. DTD heeft echter zijn nadelen:
  • Het heeft zijn eigen syntaxis, verschillend van de XML-syntaxis.
  • Een DTD heeft geen controle op het gegevenstype en kan alleen strings bevatten.
  • Er is geen naamruimte in een DTD.
Over het probleem van uw eigen syntaxis: u moet twee syntaxis tegelijk begrijpen: XML- en DTD-syntaxis. Ze zijn verschillend en dit kan u in de war brengen. Hierdoor is het bovendien moeilijker om fouten op te sporen in grote XML-bestanden in combinatie met dezelfde DTD-schema's. Als iets voor u niet werkt, moet u dit controleren enorm bedrag tekst met verschillende syntaxis. Het is alsof je twee boeken tegelijkertijd leest: in het Russisch en het Engels. En als uw kennis van één taal slechter is, zal het begrijpen van de tekst net zo moeilijk zijn. Over het probleem met het controleren van gegevenstypes: attributen in DTD's hebben dat ook verschillende soorten, maar het zijn in essentie allemaal stringrepresentaties van iets, lijsten of links. Je kunt echter niet alleen maar cijfers eisen, en vooral niet positieve of negatieve. En over objecttypen Je kunt het helemaal vergeten. Het laatste probleem zal worden besproken in het volgende artikel, dat zal worden gewijd aan naamruimten en XML-schema's, aangezien het hier zinloos is om dit probleem te bespreken. Bedankt iedereen voor jullie aandacht, het is mij gelukt geweldig werk en ik blijf het doen om de hele reeks artikelen op tijd af te ronden. Kortom, ik hoef alleen maar de XML-schema's uit te zoeken en ze in duidelijkere bewoordingen uit te leggen om het tweede artikel af te ronden. De helft is al klaar, dus je kunt het binnenkort verwachten. Het laatste artikel zal geheel gewijd zijn aan het werken met XML-bestanden met behulp van Java. Veel succes voor iedereen en succes met programmeren :) Volgend artikel:

In dit artikel beginnen we de XML-taal te bestuderen en gaan we gedetailleerd in op zaken als de opmaak en structuur van een XML-document. Deze informatie Er is een basiskennis van XML, dus ik raad u aan dit materiaal zorgvuldig te bestuderen, zodat er geen vragen blijven bestaan. Uw succes in de toekomst en de snelheid van het leren van zowel XML zelf als XSLT, die we onmiddellijk zullen bestuderen nadat we XML onder de knie hebben, hangen hiervan af.

Dus, XML (eXtensible Markup-taal) is een taal voor tekstuele expressie van informatie in standaard formulier. Op zichzelf heeft het geen operators en voert het geen berekeningen uit. XML is dus een metataal hoofdtaak die een beschrijving bevat van de nieuwe documenttalen.

Om de essentie van het bovenstaande beter te begrijpen, gaan we direct naar de voorbeelden en kijken we eerst naar de opmaak van XML-documenten.

Opmaak van XML-documenten

De opmaak van een XML-document verschilt praktisch niet van de opmaak van een gewoon HTML-document ( . ). Een van voordelen van XML is dat je hiermee een onbeperkt aantal tags kunt maken. Elke tag heeft dus zijn eigen semantiek, dat wil zeggen dat hij een bepaalde betekenis heeft. Laten we voor de duidelijkheid eens kijken naar een XML-document met een lijst met boeken.

Auteur 1 Titel 1 Prijs 1 Auteur 2 Titel 2 Prijs 2 Auteur 3 Titel 3 Prijs 3

Zoals je uit het bovenstaande voorbeeld kunt zien, is alles heel banaal en eenvoudig. Tegelijkertijd bevat het XML-document veel meer gedetailleerde informatie vergeleken met een gewoon HTML-document. In ons voorbeeld is het heel gemakkelijk te begrijpen dat de tag verantwoordelijk voor de auteur van het boek, tag - voor de titel, tag - voor de prijs enz. Zo heeft elke tag zijn eigen betekenis.

Een van de meest belangrijke kenmerken Het voordeel van XML-documenten is dat ze eenvoudig programmatisch kunnen worden verwerkt. Door bijvoorbeeld de bovenstaande voorbeeldtekst te verwerken, kunt u eenvoudig krijgen noodzakelijke informatie op boeken, geef prijzen voor boeken weer op basis van hun titel, enz. Tegelijkertijd bestaat de mogelijkheid van visuele representatie document. Om dit te doen, hoeft u alleen maar te bepalen hoe dit of dat element eruit zal zien.

XML maakt het dus mogelijk dat gegevens worden gescheiden van de representatie ervan en worden aangemaakt tekstvorm documenten met een expliciete structuur. Om precies te zijn, door het aantal tags uit te breiden, hebben we het volgende gedaan:

  1. Expliciet de structuur in het XML-document geïdentificeerd, wat het op zijn beurt mogelijk maakte om verder te gaan softwarematige verwerking documenteren, bijvoorbeeld met behulp van XSLT-technologie, die we later zullen bestuderen. Tegelijkertijd is een van de belangrijkste kenmerken dat dit document begrijpelijk blijft voor de gemiddelde persoon.
  2. De gegevens in het XML-document zijn gescheiden van de manier waarop deze visueel moeten worden gepresenteerd. Dit gaf op zijn beurt volop mogelijkheden voor het publiceren van gegevens op verschillende media, bijvoorbeeld op papier of op internet.

Om het bovenstaande samen te vatten kunnen we concluderen dat er syntactisch gezien vrijwel niets nieuws is in XML vergeleken met HTML. XML is dezelfde tekst, gemarkeerd met tags. Het enige verschil is dat je met XML alle markeringen kunt maken die nodig zijn om een ​​document te beschrijven, terwijl er in HTML alleen beperkte reeks labels die gebruikt kunnen worden.

Kortom, XML is erg in eenvoudige taal met een klein aantal basisontwerpen, maar tegelijkertijd biedt het onbeperkte mogelijkheden om de gegevens te beschrijven. Zo bedenkt elke ontwikkelaar zijn eigen taal, die alleen wordt beperkt door de verbeeldingskracht van de ontwikkelaar zelf.

Structuur van XML-documenten

Om de structuur te presenteren XML-documenten Laten we eens kijken naar een heel eenvoudig voorbeeld van een XML-document.

Boek 1 Auteur 1 Prijs 1 Boek 2 Auteur 2 Prijs 2 Boek 3 Auteur 3 Prijs 3

We zien dus dat dit voorbeeld praktisch niet verschilt van het vorige, met uitzondering van enigszins gewijzigde tags en een paar attributen. Het belangrijkste verschil hier is de eerste regel, die het bestand definieert als een XML-document dat is gebouwd in overeenstemming met de eerste versie van de taal. We zullen hier meer in detail over praten in de volgende artikelen in de sectie “XML- en XSLT-lessen”.

Op op dit moment Het belangrijkste dat we moeten begrijpen is dat het een heel eenvoudige taal is die sterk lijkt op gewone HTML. In het bovenstaande voorbeeld zien we dat XML ook tags heeft die genest kunnen worden, dat wil zeggen dat ze andere tags erin kunnen bevatten. Tegelijkertijd beperken tags in XML niet alleen een deel van de tekst, maar ook de vorm afzonderlijk onderdeel. Op basis hiervan wordt wat met tags wordt gemarkeerd in XML gewoonlijk elementen genoemd.

Het is ook vermeldenswaard dat XML ook attributen, opmerkingen en vele andere elementen en constructies bevat. Helaas is één artikel niet genoeg om alles in detail te beschrijven, dus over elk onderwerp zullen afzonderlijke artikelen worden geschreven. Als u ze niet wilt missen, raad ik u aan zich op de voor u geschikte manier op de nieuwsbrief te abonneren in de sectie “” of via het onderstaande formulier.

Dat is alles. Veel succes en succes bij het leren van de basisprincipes van XML.

Inleiding tot de juiste opmaak

XML middelen Uitbreidbare opmaaktaal met nadruk op opmaak(markering). U kunt tekst maken en deze markeren met framing-tags, waardoor elk woord, zin of fragment wordt omgezet in identificeerbare, sorteerbare informatie. Bestanden die u maakt, of kopieën van het document, bestaan ​​uit elementen (tags) en tekst, en de elementen helpen om het document correct te begrijpen bij het lezen op papier of zelfs bij het verwerken ervan in elektronische vorm. 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 het verloren gaat computersysteem afgedrukt gegevens blijven toch leesbaar dankzij tags.

Opmaaktalen zijn geëvolueerd van de eerste vormen die door bedrijven en overheidsinstanties zijn gemaakt naar de Standard Generalized Markup Language (SGML), Hypertext-taal markup (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 bestand maken eigen elementen, waardoor 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 markeringen. Meest tekst wordt geplaatst in elementen waarin de tekst wordt omgeven door tags. Stel dat u bijvoorbeeld een kookboek wilt maken XML-formaat. We hebben een recept genaamd Ijscoupe, dat moet worden geconverteerd 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 afsluitende tag, die de naam van het element vertegenwoordigt hoekbeugels, plus een schuine streep (/) vóór de elementnaam, zoals deze:. Deze tags vormen element, waarin u tekst en zelfs andere elementen kunt invoeren.

Er kunnen elementnamen voor worden gemaakt individuele documenten en 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. Creëer 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 kan een XML-declaratie zijn. Dit optionele deel van het bestand definieert het als XML-bestand wat zou kunnen helpen automatische gereedschappen en laat mensen het bestand herkennen als XML in plaats van als SGML of andere opmaak.

De verklaring zou er eenvoudig zo uit kunnen zien of omvatten XML-versie () en zelfs tekencodering, bijvoorbeeldvoor Unicode. Aangezien deze declaratie helemaal aan het begin van het bestand moet staan, kunt u dit doen als u van plan bent kleine XML-bestanden te combineren tot een groter bestand optioneel onderdeel Het is beter om het over te slaan.

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. toont een fragment van het voorbeeld dat ik hier gebruik, met een rootelement (recept). ( Volledig bestand XML wordt gegeven in .)

Lijst 1. Root-element

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

Namen van elementen

Case-respect in tags

Bij het maken van XML moeten de hoofdletters en kleine letters van de begin- en eindtags overeenkomen. Anders krijgt u mogelijk een foutmelding wanneer u of gebruikt XML-viewer. Bijvoorbeeld, Internet Explorer geeft geen tekst weer als de hoofdletters niet overeenkomen. In plaats daarvan worden berichten weergegeven over een discrepantie tussen de begin- en eindtags.

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 borden, 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 hoofdletter maakt niet uit, 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 tag zijn HTML-stijl . Het bevat er geen kind 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

Bijlage is de plaatsing van elementen in andere elementen. Deze nieuwe elementen worden genoemd dochterondernemingen elementen, en de elementen die hen omringen zijn hun ouders elementen. In het wortelelement 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.

Typisch syntaxisfout geassocieerd met het nesten van ouder- en kindelementen. Elk kindelement moet zich volledig tussen de openings- en sluitingstags van zijn element bevinden ouderelement. Onderliggende elementen moeten eindigen voordat het volgende kind begint.

Een voorbeeld van een correcte bijlage vindt u in. Tags beginnen en eindigen zonder weven met andere labels.

Listing 3. Correcte nesting van XML-elementen.
Ijscoupe 3 chocoladesiroop of chocoladefudge 1 noten 1 kers 5 minuten

Attributen toevoegen

Soms worden er elementen toegevoegd Kenmerken. Attributen bestaan ​​uit een naam-waarde-paar, waaruit de waarde wordt gehaald dubbele aanhalingstekens("), zoals dit: type="dessert" . Met attributen kunt u samen met het element opslaan extra opties, waarbij de waarden van deze parameters van element tot element in hetzelfde document worden gewijzigd.

Een attribuut (of zelfs meerdere attributen) wordt gespecificeerd binnen de starttag van het element: . Wanneer u meerdere attributen toevoegt, worden deze gescheiden door spaties: . 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. Correcte XML is XML-code die is samengesteld in overeenstemming met alle XML-regels: correcte naamgeving van elementen, bijlage, 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 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. Onder verificatie (validatie) verwijst naar het controleren van de documentstructuur op naleving van de daarvoor vastgestelde regels en de definitie van onderliggende elementen voor elk ouderelement. Deze regels zijn vastgelegd in Beschrijving van het documenttype

(DTD) of in het diagram. 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 voor verificatie wordt gebruikt van dit document

. De DOCTYPE-tekenreeks zou zoiets kunnen zijn als die in .

Lijst 5. DOCTYPE Dit voorbeeld betekent dat uw itemlijstbestand de naam op uw computer (dat wil zeggen in de map SYSTEM, niet in algemene catalogus OPENBAAR).

Entiteiten gebruiken

Entiteiten 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. Voor gebruik in tekst speciale karakters er moeten entiteiten van worden gemaakt en de codes van deze karakters moeten worden gebruikt. 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). Plaats deze code vervolgens in uw DOCTYPE-regel vierkante haakjes(), zoals in . 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 hoe u XML-bestanden kunt maken, opent u ze in XML-editor om hun formele juistheid te verifiëren en ervoor te zorgen 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.

Conclusie

Heb er een paar geleerd eenvoudige regels, kun je flexibel je eigen ontwikkeling ontwikkelen XML-elementen en hun attributen. 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 het doel goed begrijpt en weet hoe u uw tekst moet markeren, kunt u creëren effectieve elementen en attributen. Vanuit dit perspectief is zorgvuldige opmaak alles wat nodig is om een ​​goed opgemaakt en bruikbaar XML-document te creëren.