XML-versjoner. Grunnleggende XML-konstruksjoner - XML-elementer, tagger, attributter, behandlingsinstruksjoner, CDATA-seksjoner, kommentarer

(eng. Standard generalisert markup Language - standard generaliserte markup language) har erklært seg som et fleksibelt, komplekst og altomfattende metaspråk for å lage markup languages. Selv om konseptet med hypertekst dateres tilbake til 1965, har ikke SGML en hypertekstmodell. Opprettelsen av SGML kan trygt kalles et forsøk på å forstå omfanget, siden det kombinerer funksjoner som sjelden brukes sammen. Dette er dens største ulempe - kompleksiteten og, som et resultat, de høye kostnadene ved dette språket begrenser bruken til store selskaper som har råd til å kjøpe riktig programvare og ansette høyt betalte spesialister. I tillegg har små selskaper sjelden så komplekse problemer at de involverer SGML i løsningen.

SGML er mest brukt for å lage andre markup-språk, det var med dens hjelp at markup-språket for hypertekstdokumenter - HTML, ble opprettet, hvis spesifikasjon ble godkjent i 1992. Utseendet var assosiert med behovet for å organisere et raskt voksende utvalg av dokumenter på Internett. Den eksplosive veksten i antall Internett-tilkoblinger og følgelig webservere har ført til et slikt behov for koding av elektroniske dokumenter som SGML ikke kunne takle på grunn av de høye vanskelighetene med å lære. Innkomsten av HTML, et veldig enkelt markup-språk, løste raskt dette problemet: dets enkle læring og rike dokumentasjonsverktøy gjorde det til det mest populære språket for Internett-brukere. Men etter hvert som antallet og kvaliteten på dokumenter på nettet vokste, vokste også kravene til dem, og HTMLs enkelhet ble den største ulempen. Det begrensede antallet tagger og fullstendig likegyldighet til strukturen til dokumentet fikk utviklerne i personen til W3C-konsortiet til å lage et markup-språk som ikke ville være så komplekst som SGML, og ikke så primitivt som HTML. Resultatet ble XML, et språk som kombinerer enkelheten til HTML med logikken til SGML-markering og oppfyller kravene til Internett.

Velutformede og gyldige XML-dokumenter

Standarden definerer to nivåer av XML-dokumentets gyldighet:

  • Velbygget(eng. velformet). Et godt utformet dokument følger alle de generelle XML-syntaksreglene som gjelder for ethvert XML-dokument. Og hvis for eksempel start-taggen ikke har en tilsvarende slutt-tag, så dette feil konstruert XML-dokument. Et dokument som ikke er godt utformet kan ikke betraktes som et XML-dokument; En XML-prosessor (parser) skal ikke behandle den på vanlig måte og er forpliktet til å klassifisere situasjonen som en fatal feil.
  • Gyldig(eng. gyldig). Et gyldig dokument samsvarer i tillegg med noen semantiske regler. Dette er en strengere tilleggskontroll av korrektheten til et dokument for overholdelse av forhåndsbestemte, men allerede eksterne regler, for å minimere antall feil, for eksempel strukturen og sammensetningen av et gitt dokument eller en familie av dokumenter. Disse reglene kan utvikles både av brukeren selv og av tredjepartsutviklere, for eksempel utviklere av ordbøker eller datautvekslingsstandarder. Vanligvis er slike regler lagret i spesielle filer - skjemaer, der strukturen til dokumentet, alle tillatte navn på elementer, attributter og mye mer er beskrevet på den mest detaljerte måten. Og hvis et dokument, for eksempel, inneholder et elementnavn som ikke er forhåndsdefinert i skjemaer, vurderes XML-dokumentet ugyldig; den validerende XML-prosessoren (validatoren), når den sjekker for samsvar med regler og skjemaer, er forpliktet (etter brukerens valg) til å rapportere en feil.

Disse to konseptene har ikke en tilstrekkelig godt etablert standardisert oversettelse til russisk, spesielt konseptet gyldig som også kan oversettes som gyldig, lovlig, pålitelig, passe, eller testet for samsvar med regler, standarder, lover... Noen programmerere bruker det veletablerte sporingspapiret i hverdagen. Validny».

XML-syntaks

Denne delen omhandler kun riktig konstruksjon XML-dokumenter, det vil si deres syntaks.

La oss se på et eksempel på en enkel XML-merket kulinarisk oppskrift:

> Enkelt brød > > Mel > Gjær > Varmt vann > Salt > > > > Bland alle ingrediensene og elt grundig. > > Dekk til med et klede og la stå i en time i et varmt rom. > > Elt igjen, legg på en bakeplate og sett i ovnen. > > >

XML-erklæring

Den første linjen i XML-dokumentet kalles XML-erklæring(eng. XML-erklæring) er en streng som indikerer XML-versjonen. I versjon 1.0 XML-erklæring kan utelates, det kreves i versjon 1.1. Også her kan du spesifisere tegnkodingen og tilstedeværelsen av eksterne avhengigheter.

Spesifikasjonen krever at XML-prosessorer støtter Unicode-kodingene UTF-8 og UTF-16 (UTF-32 er valgfritt). Andre kodinger basert på ISO / IEC 8859-standarden er anerkjent som akseptable, støttes og mye brukt (men ikke nødvendig), andre kodinger er også akseptable, for eksempel russisk Windows-1251, KOI-8. Ofte brukes ikke-latinske bokstaver i prinsippet i tagger, i dette tilfellet er UTF-8 en veldig praktisk koding - volumet er som regel mindre enn med UTF-16; dekoding kan utføres både for hele dokumentet og for spesifikke attributter og tekster; hele dokumentet inneholder ikke ulovlige tegn ved forsøk på å analysere med feil koding.

Rotelement

Det viktigste obligatoriske syntaktiske kravet er at dokumentet kun har ett rotelement(eng. rotelement) (også noen ganger kalt dokumentelement(eng. dokumentelement)). Dette betyr at tekst eller andre data for hele dokumentet må plasseres mellom en enkelt start-rot-tag og dens tilsvarende slutt-tag.

Følgende enkleste eksempel er et godt utformet XML-dokument:

Følgende eksempel er ikke et gyldig XML-dokument fordi det har to rotelement:

> Entitet nr. 1 > > Essens #2 >

En kommentar

Et element kan plasseres hvor som helst i treet. en kommentar... XML-kommentarer plasseres i en spesiell kode som begynner med tegn... De to bindestrekene (-) kan ikke være til stede i en kommentar.

Tagger i en kommentar skal ikke behandles.

Tagger

Resten av dette XML-dokumentet består av nestede elementer noen av dem har egenskaper og innhold. Element består vanligvis av start- og sluttkoder som rammer inn tekst og andre elementer. Åpningsbrikke omfatter gjenstandsnavn i vinkelparentes, for eksempel , a sluttmerke består av samme navn i vinkelparenteser, men en skråstrek legges til foran navnet, for eksempel,... Elementnavn, som attributtnavn, kan ikke inneholde hull, men kan være på et hvilket som helst språk som støttes av kodingen av XML-dokumentet. Navnet kan begynne med en bokstav, understrek, kolon. Resten av tegnene i navnet kan være de samme tegnene, samt tall, bindestrek, punktum.

XML har flere forhåndsdefinerte enheter som lt (du kan referere til det ved å skrive<) для левой угловой скобки и amp (ссылка - &) для амперсанда. Возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков.

Nedenfor er et eksempel på bruk av en forhåndsdefinert enhet for å unngå å bruke og-tegnet i navnet:

> AT&T >

Den komplette listen over forhåndsdefinerte enheter består av & (&),< (<), >(>), "(") og "(") - de to siste er nyttige for å skrive skilletegn inne i attributtverdier. Du kan definere enhetene dine i et DTD-dokument.

Noen ganger er det nødvendig å definere et ikke-brytende mellomrom, som veldig ofte brukes i HTML og betegnes som. Det er ingen slik forhåndsdefinert enhet i XML, den er skrevet, og bruk av den forårsaker en feil. Mangelen på denne svært vanlige essensen for mange programmerere er ofte overraskende og dette skaper noen vanskeligheter når de skal migrere HTML-utviklingen deres til XML.

Referanse etter symbolnummer(eng. referanse for numeriske tegn) ser ut som en referanse til en enhet, men i stedet for enhetsnavnet er symbolet # indikert og et tall (i desimal eller heksadesimal notasjon), som er nummeret til tegnet i Unicode-kodetabellen. Dette er vanligvis tegn som ikke kan kodes direkte, for eksempel en arabisk bokstav i et ASCII-kodet dokument. Et-tegnet kan representeres som følger:

> AT&T >

Det er andre regler for hvordan du skriver et godt utformet XML-dokument.

Fordeler og ulemper

Verdighet

ulemper

  • Tvetydighet ved modellering.
  • XML inneholder ikke morsmålsstøtte for datatyper. Den har ikke sterk skriving, det vil si begrepene "heltall", "strenger", "datoer", "booleanere", etc.
  • Den hierarkiske datamodellen som tilbys av XML er begrenset sammenlignet med relasjonsmodellen og objektorienterte grafer og nettverksdatamodellen.

Kartlegging av XML på World Wide Web

Det er tre vanligste måter å konvertere et XML-dokument til en brukersynlig visning:

  1. Bruk av CSS-stiler;
  2. XSL-applikasjon;
  3. Skrive en XML-dokumentbehandler i et programmeringsspråk.

For å definere en XSL-transformasjon (XSLT) på klientsiden, trenger du følgende setning i XML:

XML-ordbøker

Siden XML er et ganske abstrakt språk, har XML-vokabularer blitt utviklet.

En ordbok lar utviklere bli enige om et begrenset sett med kodenavn og attributter for disse kodene. Et av de tidligste vokabularene er XHTML, som forstås av de fleste nettlesere. XHTML brukes ofte til å lagre og redigere innhold i et CMS.

Mer spesialiserte vokabularer har blitt laget, for eksempel SOAP-kommunikasjonsprotokollen, som ikke er menneskesentrert og ganske vanskelig å lese. Det er kommersielle vokabularer som CommerceML, xCBL og cXML som brukes til å formidle data for handelsaktiviteter, disse vokabularene inkluderer beskrivelser av bestillingssystemet, leverandører, produkter og mer.

Vanligvis, når han beskriver et dokument, kommer en person opp med en slags ordforråd for seg selv, som deretter beskrives ved hjelp av DTD, XSD, eller bare forklarer "på fingrene" til interesserte parter.

En av de utbredte ordbøkene er FB2 – en ordbok som beskriver formatet til en bok, med alle slags fotnoter, sitater, til og med bilder.

XML-versjoner

  • XML 1.0
  • XML 1.1

se også

Notater (rediger)

Litteratur

  • David Hunter, Jeff Rafter, Joe Fausett, Eric van der Vlist, et al. XML. Arbeide med XML, 4. utgave = Begynnende XML, 4. utgave. - M .: "Dialektikk", 2009. - 1344 s. - ISBN 978-5-8459-1533-7
  • David Hunter, Jeff Rafter et al. XML. Grunnkurs = Begynnende XML. - M .: Williams, 2009 .-- 1344 s. - ISBN 978-5-8459-1533-7
  • Robert Tabor. Implementering av XML Web Services på Microsoft .NET Platform = Microsoft .NET XML Web Services. - M .: Williams, 2002 .-- 464 s. - ISBN 0-672-32088-6

Lenker

  • XML på nettstedet for World Wide Web Consortium (W3C).
  • XML 1.0 offisiell spesifikasjon
  • XML 1.1 Offisiell spesifikasjon
  • XML-dokumentasjon på IBMs nettstedsartikler, fora

I dag vil vi begynne å vurdere en veldig populær og praktisk XML-markeringsspråk... Siden dette datapresentasjonsformatet er veldig fleksibelt og universelt, og det kan brukes nesten overalt, mener jeg å skamme seg over noe. Derfor vil en nybegynner programmerer før eller siden måtte forholde seg til dette språket, og uansett hva du gjør, det være seg nettprogrammering eller databaseadministrasjon, fordi XML brukes av alle, og du vil også bruke det til å implementere oppgavene du trenger.

Vi starter som vanlig med teori, la oss se på hva slags språk det er, hvorfor det er bra, hvordan det brukes og hvor det brukes.

XML-språkdefinisjon

XML (eXtensible Markup Language) Er et universelt og utvidbart datamarkeringsspråk som ikke er avhengig av operativsystemet og prosessmiljøet. Xml tjener til å representere noen data i form av en struktur, og du kan utvikle denne strukturen selv eller justere den for et bestemt program eller en tjeneste. Det er derfor dette språket kalles utvidbart, og dette er dens viktigste fordel, som det er så verdsatt for.

Som du vet, er det ganske mange markup-språk, for eksempel HTML, men alle avhenger på en eller annen måte av behandleren, for eksempel den samme html-koden, hvis kode analyseres av nettleseren, er standardisert og ikke utvidbar, det er tydelige tagger, syntaksen som ikke kan brytes, og i xml kan du lage dine egne tagger, d.v.s. din markering. Hovedforskjellen mellom HTML og XML er at html kun beskriver markeringen for å vise data, og xml er en abstrakt datastruktur som kan behandles og vises som du vil og hvor som helst, og derfor trenger du ikke sammenligne disse språkene, de har helt andre formål.

Som nevnt ovenfor, er xml et veldig vanlig og universelt språk, der nesten alle applikasjoner, både web og bare for en datamaskin, bruker det som en utveksling av informasjon, siden det kan brukes til veldig enkelt å utveksle data mellom applikasjoner eller tjenester som er til og med skrevet forskjellige språk. I denne forbindelse bør enhver nybegynner programmerer som er engasjert i absolutt enhver programmering ha en forståelse av XML. Skal du bli webmaster, så må du rett og slett kunne XML, og vi har allerede vurdert hvordan du blir en WEB Master og hva du trenger å vite for dette.

For eksempel hadde jeg en gang i oppgave å skrive en tjeneste som skulle returnere data i form av xml på forespørsel, dvs. på en måte utvikle serversiden av applikasjonen, og jeg hadde ikke en anelse om hva klienten var skrevet på som ville behandle disse dataene, og det, jeg skrev en tjeneste som returnerte data i form av xml og det var det, applikasjonen fungerte fint. Og dette er bare et eksempel som jeg måtte se, og se for deg hvor mange forskjellige organisasjoner som samarbeider og samvittighetsfullt utvikler programvare og utveksler data, og jeg ville ikke bli overrasket over at disse dataene vil være i form av xml.

For eksempel hadde jeg en gang i oppgave å skrive en bestemt tjeneste som skulle returnere data i form av xml på forespørsel, dvs. på en måte utvikle serversiden av applikasjonen, og jeg hadde ikke en anelse om hva klienten var skrevet på som ville behandle disse dataene, og det, jeg skrev en tjeneste som returnerte data i form av xml og det var det, applikasjonen fungerte fint. Og dette er bare et eksempel som jeg måtte se, og se for deg hvor mange forskjellige organisasjoner som samarbeider og samvittighetsfullt utvikler programvare og utveksler data, og jeg ville ikke bli overrasket over at disse dataene vil være i form av xml.

Jeg måtte også en gang lagre xml-data i MS SQL 2008, for bedre å representere disse dataene og utveksle dem mellom serveren og klientdelen av applikasjonen, vi diskuterte dette i artikkelen - Transact-sql - jobber med xml.

Selve XML-språket er veldig enkelt, og det er rett og slett umulig å bli forvirret i det, all kompleksiteten oppstår nettopp i behandlingen og interaksjonen av xml med andre applikasjoner, teknologier, dvs. alt som omgir xml, som er akkurat det du lett kan bli forvirret over.

I dag snakker vi bare med deg om det grunnleggende om XML, og vi vil ikke fokusere på prosesseringsteknologier og interaksjon med dette språket, siden dette er sant, veldig omfangsrikt materiale, men jeg tror vi i fremtiden vil fortsette å bli kjent med relaterte teknologier.

La oss gå ned for å øve. Og alle eksemplene som vi vil vurdere, vil jeg skrive i Notepad ++ bare fordi det er veldig praktisk, men vi vil ikke snakke om det nå, siden vi allerede har vurdert dette i artikkelen - Hva er bra med Notepad ++ for en nybegynner utvikler.

XML-koder

XML for markering bruker tagger ( koder skiller mellom store og små bokstaver), men ikke slike tagger som i html, men de som du kommer på selv, men xml-dokumentet har også en tydelig struktur, dvs. det er en åpningskode og en sluttkode, det er nestede tagger og selvfølgelig er det verdier som er plassert i disse taggene. Alt som skal til for å komme i gang med xml er med andre ord å holde seg til disse reglene. Til sammen kalles åpnings-, avslutningstaggen og verdien et element, og hele xml-dokumentet består av elementer som til sammen danner en datastruktur. Et xml-dokument kan bare ha ett rotelement, husk dette, for hvis du skriver to rotelementer vil det være en feil.

Og det er på tide å gi et eksempel på xml-markering, og det første eksemplet så langt for syntaksen:

<Начало элемента> <Начало вложенного элемента>Verdien til det nestede elementet

Som du kan se, er alt ganske enkelt, og det kan være mange slike nestede elementer.

La oss nå gi et eksempel, et ekte xml-dokument:

Som du kan se, ga jeg bare et eksempel på en slags bokkatalog her, men jeg erklærte ikke dette dokumentet, dvs. skrev ikke en XML-erklæring som forteller applikasjonen som skal behandle disse dataene at xml-dataene ligger her og i hvilken koding de presenteres. Du kan også skrive kommentarer og attributter, så la oss gi et eksempel på et slikt dokument:

Bok 1 Ivan Bare bok 1 Bok 2 Sergey Bare bok 2 Bok 3 roman Bare bok 3

Der første linje er erklæringen om at dette er et XML-dokument og må leses i UTF-8-koding.

Disse dataene uten behandling vil for eksempel se ut i en nettleser (Mozilla Firefox) som følger:

Jeg håper du forstår at her er katalog rotelementet, som består av bokelementene, som igjen består av navn, forfatter og kommentarelementer, også setter jeg for eksempel flere attributter for katalogelementet og bokelementet.

For det grunnleggende tror jeg det er nok, for hvis vi dykker dypere og dypere inn i XML, og inn i alle teknologiene knyttet til dette språket, vil denne artikkelen aldri ta slutt. Så det var alt for i dag. Ha det!

Vi vil fortsette vår studie av XML igjen, og i denne artikkelen vil vi bli kjent med slike XML-konstruksjoner som behandlingsinstruksjoner, kommentarer, attributter og andre XML-elementer. Disse elementene er grunnleggende og lar deg fleksibelt merke dokumenter av absolutt hvilken som helst kompleksitet i strengt samsvar med standarden.

Noen punkter, for eksempel XML-koder, har vi allerede delvis vurdert i forrige artikkel "". Nå skal vi berøre dette emnet igjen og analysere det mer detaljert. Dette er gjort med vilje for å gjøre det lettere for deg å forstå hele bildet av XML-konstruksjoner.

XML-elementer. Tomme og ikke-tomme XML-elementer

Som nevnt i forrige artikkel, markerer ikke tagger i XML bare tekst, slik tilfellet er i HTML, men fremhever enkeltelementer (objekter). På sin side organiserer elementer informasjon hierarkisk i et dokument, som igjen gjorde dem til de viktigste strukturelle enhetene i XML-språket.

I XML kan elementer være av to typer - tomme og ikke-tomme. Tomme elementer inneholder ingen data, for eksempel tekst eller andre konstruksjoner. I motsetning til tomme elementer, kan ikke-tomme elementer inneholde alle data, for eksempel tekst eller andre elementer og strukturer i XML-språket. For å forstå det ovenstående, la oss se på eksempler på tomme og ikke-tomme XML-elementer.

Tomt XML-element

Ikke-tomt XML-element

Vareinnhold...

Som vi kan se fra eksempelet ovenfor, er hovedforskjellen mellom tomme og ikke-tomme elementer at de kun består av én tag. Det er også verdt å merke seg at i XML er alle navn sensitive for store og små bokstaver. Dette betyr at navnene myElement, MyElement, MYELEMENT, etc. skiller seg fra hverandre, så dette øyeblikket er verdt å huske med en gang for å unngå feil i fremtiden.
Så vi fant ut elementene. La oss nå gå videre til neste punkt, for eksempel den logiske organiseringen av XML-dokumenter.

Den logiske organiseringen av XML-dokumenter. XML-datatrestruktur

Som du husker er hovedkonstruksjonen til XML elementer som kan inneholde andre nestede konstruksjoner og dermed danne en hierarkisk struktur i form av et tre. I dette tilfellet vil det overordnede elementet være roten, og alle andre barn vil være grenene og bladene til XML-treet.

For å gjøre det lettere å forstå essensen av ovenstående, la oss se på følgende bilde med et eksempel.

Som vi kan se, er organisering av et XML-dokument som et tre en ganske enkel struktur å behandle. Samtidig er den uttrykksfulle kompleksiteten til selve treet ganske stor. Det er trevisningen som er den mest optimale måten å beskrive objekter i XML.

XML-attributter. Skriveregler for XML-attributter

I XML kan elementer også inneholde attributter med tildelte verdier, som er omsluttet av enkle eller doble anførselstegn. Attributtet for et element er satt som følger:

I dette tilfellet ble et attributt kalt "attributt" og verdien "verdi" brukt. Det skal bemerkes med en gang at XML-attributtet må inneholde en viss verdi og ikke kan være tomt. Ellers vil koden være feil fra XML-synspunkt.

Vær også oppmerksom på bruken av sitater. Attributtverdier kan omsluttes av enten enkle eller doble anførselstegn. I tillegg er det også mulig å bruke noen sitater inne i andre. Tenk på følgende eksempler for demonstrasjon.

Før du ser på andre XML-konstruksjoner, er det også verdt å merke seg at spesialtegn som og-tegnet "&" eller vinkelparentesene "<>". Disse tegnene er reservert som kontrolltegn ("&" er en enhet, og "<» и «>"Åpne og lukk en element-tag) og kan ikke brukes i sin" rene form ". For å bruke dem, må du ty til å erstatte spesialtegn.

XML-behandlingsinstruksjoner (behandlingsinstruksjoner). XML-erklæring

XML har muligheten til å inkludere instruksjoner i et dokument som inneholder spesifikk informasjon for applikasjoner som skal behandle et bestemt dokument. XML-behandlingsinstruksjoner lages som følger.

Som du kan se i eksempelet ovenfor, er behandlingsinstruksjoner i XML omsluttet av vinkelanførselstegn med et spørsmålstegn. Dette er litt som det vanlige vi så på i de første PHP-opplæringene. Den første delen av en behandlingsinstruksjon definerer applikasjonen eller systemet som den andre delen av denne instruksen eller innholdet er ment for. Behandlingsinstruksen er imidlertid kun gyldig for søknadene de er stilt til. Et eksempel på en behandlingsinstruksjon vil være følgende instruksjon.

Det er verdt å merke seg at det er en spesiell konstruksjon i XML som er veldig lik en prosesseringsinstruksjon, men det er den ikke. Dette er en XML-erklæring som formidler til behandlingsprogramvaren noe informasjon om egenskapene til XML-dokumentet, for eksempel kodingen, språkversjonen som dokumentet er skrevet i, etc.

Som du kan se fra eksempelet ovenfor, inneholder XML-deklarasjonen såkalte pseudo-attributter, som er veldig like de vanlige attributtene som vi snakket om rett ovenfor. Faktum er at per definisjon kan en XML-deklarasjon og behandlingsinstruksjoner ikke inneholde attributter, så disse erklæringene ble kalt pseudoattributter. Dette er verdt å huske for fremtiden for å unngå ulike feil.

Siden vi har behandlet pseudo-attributter, la oss se på hva de betyr.

  • Encoding - er ansvarlig for å kode et XML-dokument. Vanligvis brukes UTF8-koding.
  • Versjon - Versjonen av XML-språket som dette dokumentet er skrevet på. Dette er vanligvis XML versjon 1.0.

La oss nå gå videre til den siste delen av artikkelen og se på slike XML-konstruksjoner som kommentarer og CDATA-seksjoner.

Et godt utformet dokument er et dokument som oppfyller minimumssettet med samsvarskriterier for et XML-dokument. Et godt utformet XML-dokument kan inneholde kommentarer, behandlingsinstruksjoner, mellomrom.

Helt i begynnelsen er det XML-dokumentoverskrift ... Tittelen i eksemplet er universell, det eneste er at kodingen noen ganger er annerledes

Neste er delen DOKTYPE , som beskriver ulike enheter. En enhet er på en måte en konstant som vi kan bruke i kroppen til et XML-dokument for å forkorte notasjonen og gjøre det lettere å vedlikeholde senere.

DOCTYPE-delen etterfølges av brødteksten til xml-dokumentet ... Alt her ligner syntaksen til HTML-språket, det vil si at det er tagger (de er også elementer), de har attributter, så vel som interne tagger. Men i motsetning til HTML, her kommer du opp med navnene på elementene selv, også i XML er det en veldig streng syntaks, det vil si at det ikke skal være noen ikke-lukkende tagger eller manglende anførselstegn i attributtverdiene til taggene .

Vær oppmerksom på hvordan avsnittene beskrevet av oss brukes. CDATA enheter. Hvis du vil vise et spesialtegn, for eksempel, & eller < , så må de tilsvarende reserverte enhetene brukes.

Med hensyn til forholdet mellom de ulike elementene. Det er 5 typer tilkoblinger:

  • Foreldre. Forelderen for det gitte er elementet som er nøyaktig 1 nivå høyere.
  • Barneelement. Det motsatte av forelderen. Et underordnet element er et som er nøyaktig 1 nivå under og innenfor det gitte elementet. Merk at det alltid er én forelder, mens det kan være mange barn.
  • Stamfar. Stamfaren er elementet for det gitte elementet som er plassert på mer enn 1 nivå høyere.
  • Etterkommer. Ligner på underordnet element, bortsett fra at elementer må nestes under 1. neste-nivå i det gitte elementet.
  • Bror. Et element kalles et søsken til et annet element hvis det er på samme nivå som et annet. Selvfølgelig, i tillegg til ett nivå, kreves det også tilstedeværelse av en felles forelder.

Et XML-dokument har to hoveddeler: en prolog og et rotelement, som vist i figur 2.1.



Ris. 2.1

Prolog

I dette eksempeldokumentet består prologen av tre linjer:

Den første linjen er en XML-erklæring som indikerer at dette er et XML-dokument og inneholder et versjonsnummer. (På tidspunktet dette kurset ble opprettet var siste versjon av XML 1.0.) XML-erklæringen er valgfri, selv om spesifikasjonen krever at den er inkludert. Hvis du inkluderer en XML-erklæring, må den vises i begynnelsen av dokumentet.

Den andre linjen i prologen består av et mellomrom. For å forbedre utseendet til dokumentet kan du sette inn et hvilket som helst antall tomme linjer mellom elementene i prologen. De vil bli ignorert under behandlingen.

Den tredje linjen i prologen er en kommentar. Å legge til kommentarer til XML-dokumentet er valgfritt, men gjør det klarere. Kommentar starter med symboler... Du kan plassere hvilken som helst tekst mellom disse to gruppene av symboler (unntatt ->); XML-prosessoren vil ignorere det.

Prologen kan også inneholde følgende valgfrie komponenter:

  • en dokumenttypeerklæring som definerer typen og strukturen til dokumentet.
  • dokumenttypeerklæringen må følge XML-erklæringen;
  • en eller flere behandlingsinstruksjoner som inneholder informasjon om rekkefølgen av passeringer ved behandling av en søknad av en XML-behandler.

Rotelement

Den andre hoveddelen av XML-dokumentet er en enkelt rotelement , som igjen inneholder tilleggselementer.

I et XML-dokument definerer elementer dens logiske struktur og bærer informasjonen i dokumentet (i vårt eksempel er dette informasjon om bøker, for eksempel tittel, forfatter, pris). Et generisk element består av en start-tag, elementinnhold og en slutt-tag. Innholdet i et element kan være tegndata, andre (nestede) elementer eller en kombinasjon av data og nestede elementer.

I dette eksemplet er rotelementet INVENTORY. Startkoden er , er sluttkoden og innholdet er åtte nestede BOK-elementer.

Merk. Tekst i et XML-dokument er sammenflettede tegn- og markupdata. Markup er tekst avgrenset av skilletegn som beskriver strukturen til et dokument. Nemlig element start- og sluttkoder, tomme elementkoder, dokumenttypedeklarasjoner, behandlingsinstruksjoner, CDATA-seksjonsavgrensere, symbolske lenker, enhetsreferanser. Resten av teksten er symbolske data - det virkelige informasjonsinnholdet i dokumentet (i vårt eksempel er dette titler, forfatternavn, pris og annen informasjon om boken).

Rotelementet i et XML-dokument ligner på BODY-elementet på en HTML-side, bortsett fra at du kan gi det et hvilket som helst gyldig navn.

På sin side inneholder hvert BOOK-element et antall nestede elementer, som vist i figur 2.2.

XML (Extensible Markup Language) er et nytt SGML-avledet dokumentmarkeringsspråk som lar deg strukturere ulike typer informasjon ved hjelp av et vilkårlig sett med instruksjoner. Utviklere av Internett-applikasjoner som prøver å bruke den nye teknologien i praksis, kan være interessert i spesifikke problemer knyttet til problemene med å lage, behandle XML-dokumenter og vise dem på klientsiden. Denne artikkelen gir en kort ide om hva et XML-dokument er og hva det er for, og praktiske eksempler illustrerer noen enkle, men dessverre lite beskrevne mekanismer for behandlingen.

Hva er XML

I dag kan XML brukes i alle applikasjoner som trenger strukturert informasjon - fra komplekse geografiske informasjonssystemer med gigantiske volumer av overført informasjon til vanlige "én-datamaskin"-programmer som bruker dette språket for å beskrive tjenesteinformasjon. Ved å se nærmere på informasjonsverdenen rundt oss, kan man skille mange oppgaver knyttet til opprettelse og behandling av strukturert informasjon, som XML kan brukes til:

  • For det første kan denne teknologien være nyttig for utviklere av komplekse informasjonssystemer, med et stort antall applikasjoner forbundet med informasjonsstrømmer med de mest varierte strukturene. I dette tilfellet fungerer XML-dokumenter som et universelt format for utveksling av informasjon mellom individuelle komponenter i et stort program.
  • XML er den grunnleggende standarden for et nytt ressursbeskrivelsesspråk, RDF, som forenkler mange av problemene på nettet knyttet til å finne informasjonen du trenger, kontrollere innholdet i nettverksressurser, lage digitale biblioteker og mer.
  • XML-språk lar deg beskrive data av enhver type og brukes til å representere spesialisert informasjon som kjemiske, matematiske, fysiske formler, medisinske oppskrifter, musikalske notasjoner, etc. Dette betyr at XML kan være et kraftig supplement til HTML for distribusjon av "ikke-standard" informasjon på nettet. Kanskje vil XML helt i nær fremtid erstatte HTML, i det minste blir de første forsøkene på å integrere disse to språkene allerede gjort (spesifikasjon).
  • XML-dokumenter kan brukes som et mellomdataformat i trelagssystemer. Vanligvis avhenger interaksjonen mellom applikasjonstjenere og databaser av den spesifikke DBMS og SQL-dialekten som brukes for å få tilgang til dataene. Hvis søkeresultatene presenteres i et eller annet universelt tekstformat, vil DBMS-lenken som sådan bli "gjennomsiktig" for applikasjonen. I tillegg har W3C i dag foreslått en spesifikasjon for et nytt databasespørringsspråk, XQL, som kan bli et alternativ til SQL i fremtiden.
  • Informasjonen i XML-dokumenter kan endres, overføres til klientmaskinen og oppdateres i deler. XLink- og Xpointer-spesifikasjonene som utvikles vil tillate deg å referere til individuelle dokumentelementer, med hensyn til deres neste- og attributtverdier.
  • Bruken av stilark (XSL) lar deg gjengi XML-dokumenter uavhengig av en bestemt utenhet.
  • XML kan brukes i vanlige applikasjoner for å lagre og behandle strukturerte data i ett enkelt format.

Et XML-dokument er en ren tekstfil der dataelementer opprettes ved hjelp av spesielle markører, hvis rekkefølge og neste bestemmer strukturen til dokumentet og innholdet. Hovedfordelen med XML-dokumenter er at de med en relativt enkel måte å lage og behandle på (ren tekst kan redigeres av enhver testprosessor og behandles av standard XML-analysatorer), lar deg lage strukturert informasjon som datamaskiner "forstår" godt.

Hvordan lager jeg et XML-dokument?

I det enkleste tilfellet trenger du ikke noe mer enn et enkelt tekstredigeringsprogram for å lage et XML-dokument (i følge mange webdesignere, det beste verktøyet for å lage websider). Her er et eksempel på et lite XML-dokument som brukes i stedet for en vanlig notatbok:

Et viktig forretningsmøte Må møtes med Ivan Ivanovich, etter å ha ringt ham på telefonen tidligere 123-12-12 ... Ring hjem 124-13-13

Når du oppretter ditt eget markup-språk, kan du komme opp med hvilket som helst elementnavn (nesten alle, siden listen over tillatte symboler er begrenset og gitt inn), som tilsvarer konteksten for deres bruk. Vårt eksempel er bare en av mange måter å lage en dagbokstruktur på. Dette er fleksibiliteten og utvidbarheten til XML-avledede språk - de lages på farten av utvikleren, i henhold til hans ideer om strukturen til dokumentet, og kan deretter brukes av universelle seere på lik linje med enhver annen XML -avledede språk. all informasjonen som kreves for å analysere, finnes i dokumentet.

Når du oppretter et nytt format, er det nødvendig å ta hensyn til det faktum at det ikke kan være noen dokumenter "skrevet i XML" i prinsippet - i alle fall bruker forfatterne av dokumentet for dets markering en XML-basert (såkalt XML-avledet) språk, men ikke XML i seg selv. Derfor, når du lagrer den opprettede filen, kan du velge en utvidelse som passer for navnet (for eksempel noteML).

XML kan brukes av deg til å lage dokumenter av en bestemt type og struktur som kreves for en bestemt applikasjon. Imidlertid, hvis omfanget av språket er bredt nok og det begynner å være av interesse for et stort antall utviklere, kan spesifikasjonen godt sendes inn for vurdering til W3C og, etter avtale med alle interesserte parter, godkjennes av konsortiet som en offisiell anbefaling.

Det skal bemerkes at prosessen med å lage en ny spesifikasjon er veldig lang og komplisert. Ethvert dokument foreslått av W3C går gjennom flere stadier før det blir en standard. For det første formaliseres ønsker og anbefalinger fra ulike selskaper som deltar i utviklingen i form av et notert notat (Note), en slags intensjonsprotokoll. Informasjonen i slike dokumenter er kun ment for diskusjon av medlemmene av konsortiet, og ingen kan garantere at disse kommentarene senere vil bli en anbefaling.

Det neste trinnet i å promotere dokumentet er en fungerende versjon av spesifikasjonen, som er utarbeidet og endret i fremtiden av en spesielt opprettet arbeidsgruppe, som inkluderer representanter for selskaper som er interessert i ideen. Alle endringer som gjøres i dette dokumentet må publiseres på konsortiets server www.w3.org og inntil den fungerende versjonen blir en anbefaling, kan den kun tjene som en "ledestjerne" for utviklere som selskapet kan sjekke planene sine med, men ikke bør brukes i programvareutvikling.

I tilfelle partene er enige om alle hovedspørsmål og det gjøres betydelige endringer i dokumentet, blir arbeidsversjonen en foreslått anbefaling, og etter avstemning fra medlemmene av arbeidsgruppen kan den allerede bli de offisielle anbefalingene fra W3C, som statusmessig tilsvarer standarden i WWW.

XML-generatorer

XML-dokumenter kan tjene som et mellomformat for overføring av informasjon fra en applikasjon til en annen (for eksempel som et resultat av en databasespørring), så innholdet deres blir noen ganger automatisk generert og behandlet av programmer. Det er ikke alltid nødvendig å lage et XML-dokument manuelt.

Anta for eksempel at vår oppgave er å lage et format for lagring av data for registrering av enkelte hendelser som skjer i systemet (loggfil). I det enkleste tilfellet kan du begrense deg til å registrere vellykkede og feilaktige forespørsler til ressursene våre - et slikt dokument bør inneholde informasjon om tidspunktet for hendelsen, resultatet (suksess / feil), IP-adressen til forespørselskilden, ressursen URI og resultatkoden.

XML-dokumentet vårt kan se slik ut:

195.151.62.18 / diverse / 200 195.209.248.12 /soft.htm 200

Strukturen til dokumentet er ganske enkel - rotelementet i dette tilfellet er loggelementet, hver hendelse som oppstår blir registrert i hendelseselementet og beskrevet ved hjelp av dets attributter (dato er klokkeslett og resultat er typen hendelse) og intern elementer (metoden er tilgangsmetoden, ip-fra er adressekilden, url-to er den forespurte ressursen, respons er svarkoden). Genereringen av dette dokumentet kan for eksempel håndteres av en modul for autentisering av forespørsler til systemet, og bruk av et program for behandling av registreringsdata (loggvisning).

Hva er DTD?

Så vi opprettet et XML-dokument og sørget for at settet med tagger som brukes i dette tilfellet lar oss utføre eventuelle manipulasjoner med informasjonen vår. I dette tilfellet, for å etablere reglene for vårt nye språk, dvs. en liste over gyldige elementer, deres mulige innhold og attributter, må vi lage DTD - definisjoner (i skrivende stund er spesifikasjonen for XML-dokumenter ennå ikke godkjent og så langt er DTD den eneste standard måten å beskrive grammatikk på).

Et lite eksempel for vårt XML-dokument:

Lagre denne filen som log.dtd og ta med en ny linje i XML-dokumentet:

Nå, når du behandler et dokument, vil den bekreftende XML-parseren sjekke rekkefølgen av definisjon av elementer og deres attributter med måten det er spesifisert i våre DTD-notasjoner og, i tilfelle brudd på den interne strukturen (som bestemmer "semantikken" " i dokumentet), gi en feilmelding.

Hva er navnerom?

Som nevnt tidligere, ligger det fine med å bruke XML i muligheten til å komme opp med dine egne tagger, hvis navn stemmer best med det tiltenkte formålet. Men folks fantasi og vokabular er ikke ubegrenset, så det er absolutt ingen garanti for at elementnavnene du gir ikke vil bli brukt av noen andre. Så lenge søknaden din kun behandler opprinnelige XML-dokumenter, vil det ikke være noe problem. Men det er godt mulig at samme dokument vil inneholde informasjon for flere behandlere samtidig. I dette tilfellet kan navnene på enkelte elementer eller deres attributter falle sammen, noe som vil føre til enten en feil i XML-parseren eller feil presentasjon av dokumentet. For eksempel, i vårt tilfelle, kan hendelseselementet godt brukes til å registrere andre hendelser og håndteres av en annen applikasjon.

For å avhjelpe denne situasjonen må vi definere unike navn for elementer og deres attributter, og legge til et universelt ikke-repeterende prefiks til deres vanlige navn. Til dette brukes Namespaces-mekanismen (Namespaces ble offisielt godkjent av W3C i januar 1999 og er nå en del av XML-standarden). I henhold til denne spesifikasjonen, for å definere "omfanget" til en tag (faktisk er dette begrepet, mye brukt i konvensjonelle programmeringsspråk, ubrukelig i XML, fordi det som sådan ikke er noe sett som et "omfang" kan bygges på inne i et strukturert XML-dokument) er det nødvendig å definere et unikt attributt som beskriver navnet på elementet, ved hjelp av hvilken dokumentanalysatoren kan bestemme hvilken gruppe navn det tilhører (navneområdeidentifikatorer kan brukes til å beskrive de unike navnene til begge elementene og deres egenskaper). I vårt siste eksempel kan dette gjøres slik:

195.151.62.18

/ diverse /

200

195.209.248.12

/soft.htm

200

Det unike med navneattributtet sikrer at noen enhetlige ressursidentifikatorer (som URI eller ISBN) brukes som verdien.

Du kan finne fullstendig informasjon om bruk av navneområde i denne standarden. I fremtiden, for å forenkle eksemplene, vil vi navneområde - hoppe over beskrivelser.

Verktøy

Behandling av XML-dokumenter

Den viktigste begrensende faktoren i utviklingen av XML-teknologi på nettet i dag er mangelen på full støtte for dette formatet av alle produsenter av nettlesere - programmene som oftest brukes på klientsiden. En vei ut av denne situasjonen kan være en variant der serversiden tar for seg behandling av XML-dokumenter. Ved å bruke en hvilken som helst eksisterende XML-parser kan du generere nødvendig informasjon som allerede er på serveren og sende et normalt HTML-dokument til klienten. Imidlertid er denne metoden, selvfølgelig, mindre fleksibel, og tillater bruk av XML-teknologi kun for lagring av strukturert informasjon, men ikke for dynamisk endring på klientsiden.

I august 1997 godkjente RFC 2376 MIME-typene for XML-ressurser: tekst / xml og applikasjon / xml. Derfor kan XML-dokumenter overføres over HTTP og vises av seeren akkurat som vanlige HTML-sider. For å gjøre dette, må du endre konfigurasjonen av webserveren litt (i Apache - legg til linjen "text / xml xml ddt" i mime.types-filen), og på klientsiden ha en nettleser som støtter stilark eller JavaScript. I dag inkluderer disse nettleserne Microsoft Internet Explorer 5, den første nettleseren som støtter XML 1.0-spesifikasjonen og XSL-stilark; Amaya-nettleseren, som tilbys av konsortiet spesielt for testformål () og støtter nesten alle utviklende W3C-standarder. XML-støtte er også planlagt for fremtidige utgivelser av Netscape Navigator.

DOM-dokumentobjektmodell

Et av de kraftigste grensesnittene for å få tilgang til innholdet i XML-dokumenter er DOM.

Objektmodellen til XML-dokumenter er en representasjon av dens interne struktur som en samling av definerte objekter. For enkelhets skyld er disse objektene organisert i en eller annen trelignende datastruktur - hvert element i dokumentet kan tilordnes en separat gren, og alt innholdet, i form av et sett med nestede elementer, kommentarer, CDATA-seksjoner, etc. . er representert i denne strukturen av undertrær. Fordi ethvert velformet XML-dokument definerer nødvendigvis et hovedelement, da kan alt innhold betraktes som undertrær til dette hovedelementet, i dette tilfellet kalt roten til dokumenttreet. For følgende XML-dokument:

tekst tekst

Objektrepresentasjon av dokumentstruktur er ikke noe nytt for utviklere. For å få tilgang til innholdet på en HTML-side i skript, har en objektorientert tilnærming blitt brukt i lang tid - elementer av et HTML-dokument som er tilgjengelig for Java Script eller VBScript kan opprettes, endres og vises ved hjelp av de tilsvarende objektene. Men deres liste og sett med metoder er i stadig endring og avhenger av typen nettleser og versjonen av språket. For å gi et grensesnitt for tilgang til strukturert dokumentinnhold, uavhengig av et spesifikt programmeringsspråk og dokumenttype, i W3-konsortiet, ble DOM Level 1-objektmodellspesifikasjonen utviklet og offisielt godkjent.

DOM er en spesifikasjon for universell plattform- og programvareuavhengig tilgang til dokumentinnhold og er rett og slett en slags API for deres prosessorer. DOM er standardmåten for å bygge en objektmodell av ethvert HTML- eller XML-dokument, som du kan bruke til å søke etter de ønskede fragmentene, opprette, slette og endre elementene.

For å beskrive grensesnittene for å få tilgang til innholdet i XML-dokumenter i DOM-spesifikasjonen, brukes det plattformuavhengige språket IDL, og for å bruke dem er det nødvendig å "oversette" til et bestemt programmeringsspråk. Skaperne av analysatorene selv er imidlertid engasjert i dette, vi vet kanskje ikke noe om måten grensesnitt implementeres på - fra applikasjonsutviklernes synspunkt ser DOM ut som et sett med objekter med visse metoder og egenskaper. I neste avsnitt tar vi en rask titt på Microsoft Internet Explorer 5-objektmodellen som er tilgjengelig fra Java Script- og VBScript-skript.