Brug af XML til at skabe bedre, mere lydhøre websider

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


XML er en forkortelse for Extensible Markup Language. Det er et meget struktureret markup-sprog, der er designet til at være både menneskeligt og maskinlæseligt. Men XML er ikke et sprog på den måde, som HTML er et sprog. XML har ingen tags som

.

I stedet tillader XML koderen overhovedet at oprette eventuelle tags. Og, vigtigere, det tillader, at disse tags er relateret til hinanden. Så XML giver dig mulighed for at gemme data på en kraftfuld måde. Men det giver ingen oplysninger om, hvad der skal gøres med disse data. Det er her XML-baserede sprog kommer ind – ting som: XHTML, RSS og SOAP. Det er også en almindelig måde, at programmer som tekstprocessorer og regneark kan gemme data på en applikationsuafhængig måde.

Brug af XML

En kort historie med markeringssprog

Markup-sprog startede som en måde at kombinere de bedste elementer i tekstfiler (læsbarhed af data) og binære filer (præcis beskrivelse af data). Så i slutningen af ​​1980’erne blev Standard Generalized Markup Language (SGML) oprettet. Det var et tekstbaseret sprog, der gjorde det muligt at beskrive data og dets display nøjagtigt. HTML var et meget simpelt system, der var baseret på SGML.

Men da HTML blev enormt populært som grundlag for world wide web, viste det sig, at der var brug for noget bedre. HTML var begrænset og ikke godt formateret, så browsere måtte analysere alle slags koder. For eksempel blev lukning af tags ofte udeladt, og tagattributter blev ikke placeret i anførselstegn. Husk kode som denne?

  • Snurre Snup
  • Daffy Duck
  • Foghorn Leghorn

Indtast XML

Dårligt struktureret HTML kunne ikke erstattes med SGML, fordi det er latterligt kompliceret. Det ville have været noget som at udskifte HTML med PostScript. Så i midten af ​​1990’erne begyndte arbejdet med XML. Det er en undergruppe af SGML, der giver kodere mulighed for at beskrive data og dets forhold. Og med brug af typografiark kan det bruges til at formatere og transmittere data på næsten enhver tænkelig måde. Men i modsætning til SGML er det at skrive parsing-programmer til det temmelig enkelt. Og i begyndelsen af ​​1998 frigav W3C den første XML-standard.

Hvorfor bruge XML?

Alt dette lyder måske slags abstrakt. Uanset hvor kraftfuld XML er til at lagre data, hvordan viser en webbrowser alt andet end en liste over data? Men det er pointen. Det store problem med HTML i de tidlige dage var, at data og layoutoplysninger var spredt i et dokument. Kan du huske, hvornår nogen form for sidelayout skulle udføres med tabeller, hvilket gør HTML-kode næsten uleselig? I dag bruger vi stilark til at adskille layoutkoden fra de præsenterede oplysninger. Når layoutet er afsluttet, er det således en simpel sag at vedligeholde og tilføje data.

Men XML erstatter ikke HTML. I det mest generelle system er XML en slags menneskelig læsbar database. Men det kan omdannes til en HTML-webside (Og meget mere!) Ved at bruge en anden tag, Extensible Stylesheet Language Transformations (eller XSLT). Det konverterer XML-dokumenter til andre XML-dokumenter – for eksempel: XHTML-dokumenter. Men endnu mere interessant bruges XML til ting som RSS og SOAP.

Et grundlæggende eksempel

Lad os starte med et meget grundlæggende eksempel på, hvordan data indtastes i en XML-fil.

<?xml version ="1,0" ?>

Bullwinkle
2
10

Boris Badenov
4
0

Bemærk, at ingen af ​​disse tags er defineret af XML. De defineres af koderen. Hvad XML ved (og dette er kritisk) er, at karakter er en slags tegneseriefigurer, og at hver karakter har karakteristika navn, intelligens og held. Andre egenskaber (som arter) såvel som flere karakterer (som Wrongway Peachfuzz) kunne tilføjes, og det ville ikke påvirke nogen XML-parser.

Vi kan tage dette et skridt videre ved at oprette en XSL-transformationsfil, der opretter en XHTML-fil, der viser tegnnavne i en ikke-ordnet liste. Først skulle vi tilføje en ekstra kodelinje til den forrige XML-kode lige efter den første linje, der definerer filen som XML. Det ser sådan ud:

<?xml version ="1,0" ?>
<?xml-stilark type ="tekst / xsl" href ="bullwinkle.xsl"?>

.
.
.

Opret derefter en XSL-fil med navnet “bullwinkle.xsl”:

<?xml version ="1,0" encoding ="UTF-8"?>

Rocky and Bullwinkle Show

Tegnefilmsfigurer

Læg derefter den originale XML-fil, og den vises ligesom en XHTML-fil.

Du kan eksperimentere med disse filer for at få en bedre idé om, hvad der foregår. Men det vigtigste er, at du kan lade XSL-filen være i fred, mens du tilføjer flere og flere data til XML-filen.

Der er mere

XML er et kæmpe emne. Vi har lige dyppet en tå i nogle meget dybe farvande. Wikipedia viser ca. 200 XML-sprog. Disse inkluderer selvfølgelig ting som XHTML. Men de inkluderer også tæt beslægtede XML-værktøjer som XML-kryptering (til datakryptering) og XML-signatur (til digitale signaturer). Men mere end det er der forskellige vigtige aspekter ved sproget:

  • Navneområder: en måde at tillade forskellige datasæt at eksistere i en enkelt XML-fil uden at navngive konflikter.
  • Definitioner af dokumenttype: den frygtede DTD, som webstedskodere normalt kun kopierer og indsætter i deres dokumenter uden forståelse.
  • Skema: en måde at strukturere et XML-dokument for at begrænse, hvordan det bruges.
  • Database: en ikke-SQL tilgang til databaselagring. Der er et antal forskellige tilgængelige.

Online ressourcer

Der er en utrolig mængde XML-relateret materiale online. Faktisk er der så meget, at det er overvældende. Som et resultat har vi forsøgt at holde os til de centrale XML-emner. Men du vil finde links her, der vil svare næsten på ethvert spørgsmål, du nogensinde vil have i din XML-kodningskarriere.

Vejledninger

  • Introduktion til XML: grundlæggende W3-skoler-introduktion til XML – let at forstå med mange eksempler
  • Grundlæggende om XML – en introduktion til XML: en gammel introduktion, men en, der tager dig langt med nogle avancerede eksempler.
  • Møller og Schwartzbach XML Tutorial: en grundlæggende, men meget bred introduktion om XML.
  • XML Master Basic Edition: en certificeringsorienteret tutorial, der er meget klar.
  • Webucators XML-gratis tutorial: en detaljeret tutorial – et fremragende valg, når du har gennemgået en af ​​de mere enkle tutorials.
  • Skew.org XML-tutorial: en anden avanceret tutorial.

Video-tutorials

  • XML-tutorial for begyndere: Portnov Computer School’s introduktion til XLM.
  • XML med Java: et gratis onlinekursus, der består af 13 videoforelæsninger af David J Malan.
  • Computer Science E-75 Foredrag 3: fra Harvard-udvidelseskursen “Building Dynamic Websites.” Dette foredrag fokuserer på XML. På mindre end to timer giver det alt hvad du har brug for at vide for at oprette dine egne XML-baserede websider. Bemærk: det forudsætter kendskab til PHP.

Data kilder

  • W3C XML-side: alt om XML – især kommende begivenheder.
  • W3C Archive: masser af anbefalinger og gruppeanvisninger. Den generelle side har links til oplysninger om andre XML-relaterede emner.
  • Annoteret XML 1.0-specifikation: den rå specifikation kan være svær at få igennem, men denne version giver ekstra historie, tekniske detaljer, råd og meget mere.
  • Udvides Markup Language Ofte stillede spørgsmål: en meget grundlæggende FAQ for hurtige svar.
  • Ofte stillede spørgsmål om XML: en stor samling af spørgsmål og svar om grundlæggende og avancerede aspekter af XML.
  • Ofte stillede spørgsmål om XML-navneområder: detaljerede spørgsmål og svar om navneområder.

Avancerede emner

  • XML og databaser: Ronald Bourret’s grundige introduktion til XML-databaser. Det inkluderer en udtømmende liste over links. Mange af dem er døde, men kan findes på Internetarkivet.
  • Skew.org XML & XSLT-ressourcer: hovedsageligt en masse XSLT-eksempler, men også andre oplysninger, inklusive dens fremragende liste over links til alle ting, der er relateret til XML.

Bøger

I betragtning af hvad et stort emne XML er, kan det være meget nyttigt at have en bog eller to: at lære og som reference.

Læring af XML

  • Begyndende XML, 4. udgave af David Hunter og Jeff Rafter: fremragende introduktion med detaljerede sektioner om ting som RSS og SOAP.
  • Læring af XML, anden udgave af Erik Ray: en grundig introduktion til XML.
  • Begyndende XML af Fawcett og Ayers: en grundlæggende introduktion til XML.

XML-reference

  • XML i et nøddeskal fra Harold and Means: en klassiker, men forældet og generelt dyr. Men du kan muligvis finde en kopi ved et salg til gårdspladsen.
  • XML Pocket Reference af St Laurent og Fitzgerald: lige hvad det står – en pjece, du kan opbevare i din skjortelomme til reference.
  • XML: Den komplette reference af Heather Williamson: en gammel tusind sider henvisning; godt at have omkring.

XML-kodningsværktøjer

  • Altova XMLSpy: et komplet XML integreret udviklingsmiljø til Microsoft Windows. Det er ret dyrt, men for den professionelle udvikler er en god investering.
  • XML Editor: mere end en editor, det giver fejlfinding, profilering og andre værktøjer. Det er Java-baseret og vil således køre på enhver platform. Det er også dyrt, selv om det har rimelige priser tilgængelige akademiske og personlige licenser.
  • Stylus Studio: en Microsoft Windows-baseret XML-udviklingssuit inklusive redaktør og XSLT-visuelt kortlægningsværktøj. Det er temmelig dyrt, men tilbyder en rimelig pris på hjemmeproduktionen.
  • EditiX XML Edit: en rediger, debugger, der er rimeligt prissat osv. Det tilbyder også en gratis EditiX Lite-version.
  • Wikipedia’s liste over XML-redaktører: der er masser af redaktører tilgængelige fra open source til proprietær til webbaseret.

XML Validators

XML er et godt værktøj til dels, fordi det er stærkt standardiseret. Dette betyder, at det er betyder. Så det er vigtigt, at du sørger for, at din kode er gyldig XML. Mange af de værktøjer, som vi har fremhævet her, indeholder deres egne XML-validatorer. Men der er masser af gratis XML-validatorer, der kan hjælpe dig med dine kodningsprojekter.

  1. W3C Markup Validation Service: et generelt værktøj, der giver dig mulighed for at validere med URI, upload af filer og direkte input.
  2. W3 Schools XML Validator: en nem at bruge, online validator.
  3. XML Validation: en simpel online validator, der tillader direkte input eller fil upload.
  4. Kode Beautify XML Validator: en simpel validator, der også formaterer din kode, så den er let at læse.
  5. XML-kontrol: en uafhængig Windows XML-validator.
  6. XML Schema Validator: en validator til din XML og skema definition.

XML og dokumentobjektmodellen

På grund af XMLs kraftfulde brug af HTML, er det vigtigt at forstå, hvordan XML forholder sig til Document Object Model (DOM).

XML og HTML

Første gang du hørte om XML, har du måske tænkt på XML som et alternativ til Hypertext Markup Language (HTML). Selvom vi ved, at XML kan bruges på den måde, er det temmelig usædvanligt. Det er den største brug at trække data ind i et HTML-dokument.

Lad os se på et konceptuelt eksempel.

funktion getXMLData () {
/ * indsæt JavaScript-funktion for at hente data fra en XML-fil * /
}
document.getElementById ("data") .innerHTML = getXMLData ();

Okay, så den kode faktisk ikke gør noget, men vi kan bruge den til at forklare, hvordan HTML og XML kan bruges til at arbejde sammen. I koden ovenfor definerer HTML’en en tom div, der vil fungere som en container til data i en XML-fil. Derefter defineres en JavaScript-funktion. Funktionen er tom, men i praktisk anvendelse identificerer denne funktion en XML-fil, trækker data ud af filen og tilføjer HTML-tags til dataene, så de gengives korrekt af browseren.

Når en korrekt skrevet funktion var på plads, da denne bit af HTML blev indlæst, ville datadelen ikke være tom, men i stedet indeholde det indhold, der er defineret af JavaScript-funktionen.

Begynder du at se kraften i XML? Med dette arrangement kan dataene, der vises på en webside, opdateres dynamisk ved at opdatere den refererede XML-fil, meget på samme måde som en database kan bruges til at opdatere indholdet på en webside.

Hvad er dokumentobjektmodellen?

Document Object Model (DOM) er den programmeringsgrænseflade, der bruges til at manipulere HTML- og XML-dokumenter. Når du bruger JavaScript, eller et andet scriptsprog, til at manipulere et element på en webside, hvad du faktisk gør, er at manipulere DOM, ikke selve HTML-dokumentet.

DOM er det virtuelle lag mellem kildedokumenterne, der bruges til at oprette en webside og scriptet, der ændrer denne webside. Tænk på DOM som den version af en webside, der er gengivet af en browser og gemt i browserens hukommelse. DOM er en dynamisk repræsentation af en webside, der findes i en webbrowser og kan åbnes og ændres ved scripting – oftest JavaScript.

Konceptualisering af XML DOM

Indholdet af XML DOM kan manipuleres med scripting. Vi må dog forstå forholdet mellem XML DOM-elementer, kaldet knudepunkter, inden vi kan gøre noget med dem.

Lad os se på en forenklet version af vores tidligere XML-eksempelkode:

<?xml version ="1,0" encoding ="UTF-8"?>

Max
Hund
7. juli 2014

XML DOM er bygget af noder. Hver del af XML DOM er en knude.

  • Dokumentknudepunkt: Hele indholdet af XML-dokumentet repræsenterer dokumentnoden.
  • Rodnode: Det første element i et XML-dokument kaldes rodnoden. I dette tilfælde er rodnoden .
  • Forældre og børn knudepunkter: Udtrykkene forælder og barn bruges til at beskrive forholdet mellem DOM-elementer og elementerne, der er indlejret i dem. I vores eksempelkode er elementknuden forældre til noden, og noden har tre børn: navn, type og fødselsdag. Hver knude i et XML-dokument bortset fra rodnoden har nøjagtigt en overordnet knude og kan have et hvilket som helst antal børnknudepunkter.
  • Søskende knudepunkter: Når to noder begge er børn af den samme forælder, kaldes de søsknoder. I vores eksempel er navn, type og fødselsdag søsknoder.
  • Tekstknude: Teksten indeholdt i et element defineres som en tekstknudepunkt i XML DOM. Dette er en vigtig sondring. Hvis vi ønsker at komme til teksten i en tekstknude, er vi nødt til at referere til den som værdien af ​​tekstknuden, ikke værdien af ​​underordnede knudepunkter. Med andre ord, stien til teksten “Max” ser sådan ud: kæledyr > kæledyr > navn > tekstnode > værdi:”Max”

Manipulering af XML DOM

Generelt bruges dit JavaScript til at manipulere XML DOM. JavaScript kan bruges til at hente en række egenskaber fra noderne i XML DOM. Almindeligt tilgængelige XML DOM-egenskaber inkluderer:

  • nodeValue: Henter værdien indeholdt i noden.
  • parentNode: Henviser til overordnernoden. Hvis vi skulle anvende denne egenskab på navnetoden i vores XML-prøve, henviser vi til kæledyrsnoden.
  • childNodes: Henviser til en nodes børn. Hvis den anvendes til kæledyrsnoden i vores kode ovenfor, vil denne egenskab returnere navn, type og fødselsdagsnoder.

JavaScript kan bruges til at gøre mere end blot at henvise til egenskaberne for XML DOM-noder. Her er nogle af de mest almindelige JavaScript-metoder, der bruges til aktivt at manipulere XML DOM.

  • getElementsByTagName: Du kan genkende denne metode, hvis du nogensinde har brugt JavaScript til at manipulere HTML-elementer. Indtast navnet på ethvert XML DOM-element, f.eks. “Kæledyr” eller “navn” fra vores eksempel XML-kode, for at få adgang til disse elementer.
  • appendChild: Denne metode bruges til at føje underordnede noder til en knude.
  • removeChild: Fjern en knude fra en overordnet knude. Husk, at dataene forbliver i den originale XML-fil, de er lige fjernet fra den DOM, der er opbygget af browseren.

Der er mange yderligere XML DOM-metoder og egenskaber. Dog skal du virkelig have et godt greb om JavaScript, XML, og vide, hvordan du planlægger at bruge XML-data til at komme meget videre med dette emne.

Ressourcer

Der ser ud til at være et utalligt antal online-tutorials, og nogle er meget bedre end andre. Efter at have kigget på snesevis af XML DOM-tutorials, tror vi, at følgende tutorials får dig hurtigst muligt.

  • W3Schools: XML Tutorial og XML DOM Tutorial.
  • Microsoft Developer Network: En begynderguide til XML DOM
  • Sitepoint: En virkelig, virkelig, virkelig god introduktion til XML, en 25.000 ord lang introduktion til XML, der dækker DOM-manipulation. Denne tutorial er faktisk de første fire kapitler i en meget længere bog kaldet No Nonsense XML Web Development With PHP af Thomas Myer.
  • Tutorials Point: XML DOM Tutorial.
  • Mozilla Developer Network: Introduktion til DOM.

Hvis du foretrækker et læringsformat, der tilbyder en smule mere struktur end en tutorial, er du måske interesseret i et af de følgende online kurser, der dækker XML og XML DOM.

  • Udemy: XML fra begyndere til ekspert
  • Lynda: XML Essential Training.

XML har eksisteret i lang tid. Som et resultat er der skrevet mange XML-tekster gennem årene. Herunder er nogle moderne XML-titler, der dækker XML DOM og er meget bedømt af læsere:

  • Begyndende XML af Fawcett et al.
  • Nye perspektiver på HTML, CSS og XML af Patrick Carey
  • XML-programmering af succes på en dag af Sam Key
  • XML i et nøddeskal af Harold and Means
  • Begyndende XML med DOM og Ajax af Sas Jacobs.

Alvorlige HTML-kodere skal kende XML

XML er et kraftfuldt og enkelt sprog til transport af data i et format, der kan bruges på mange forskellige måder. XML DOM er den model, der er opbygget af browseren til at interagere med og manipulere XML-data. Når du først har forstået, hvordan du arbejder med XML DOM, kan du få, ændre og style XML-data til brug på websider og applikationer.

MSXML: Microsofts XML

Microsoft XML Core-tjenester (MSXML) er et sæt Microsoft-værktøjer og -tjenester til oprettelse af XML-baserede applikationer ved hjælp af Microsoft-udviklingsværktøjer.

MSXML er faktisk et sæt World Wide Web Consortium (W3C) -kompatible applikationsprogrammeringsgrænseflader (API’er), der i vid udstrækning bruges af utallige softwareudviklere.

Kort MSXML-historie

I årenes løb har MSXML gennemgået adskillige opdateringer og udgivelser, som normalt frigives sammen med andre Microsoft-produkter som Internet Explorer eller Microsoft Office.

  • MSXML 1.0 blev frigivet i 1997 og sendt med Internet Explorer 4.0.
  • MSXML 2.0a blev frigivet i 1999 og sendt med Internet Explorer 5.0.
  • MSXML 2.5 blev frigivet i 2000 og sendt med Windows 2000, Internet Explorer 5.01 og MDAC 2.5.
  • MSXML 2.6 blev frigivet i 2000 og sendt med Microsoft SQL Server 2000 og MDAC 2.6.
  • MSXML 3.0 blev frigivet i 2001 og blev sendt med Windows XP, Internet Explorer 6.0 og MDAC 2.7.
  • MSXML 4.0 blev frigivet i 2001 som et uafhængigt softwareudviklingssæt (SDK).
  • MSXML 5.0 blev frigivet i 2003 og sendt med Microsoft Office 2003 og Office 2007.
  • MSXML 6.0 blev frigivet i 2005 og sendt med Microsoft SQL Server 2005, Visual Studio 2005, .NET Framework 3.0, Windows Vista, Windows 7 og Windows XP Service Pack 3.

MSXML version 1.0, 2.0a, 2.5, 2.6 og 4.0 er forældede og forældede, mens version 3.0, 5.0 og 6.0 fortsat understøttes af Microsoft.

MSXML-funktioner

MSXML er det oprindelige Windows API for XML-baserede applikationer, der overholder XML 1.0-standarden.

Nogle af de tjenester, der leveres af MSXML inkluderer Document Object Model (DOM) – et bibliotek til adgang til XML-dokumenter; Simple API for XML (SAX) – et programmatisk alternativ til DOM-behandling; XMLHttpRequest og Server XMLHTTPRequest til implementering af AJAX og RESTful applikationer; brug af XPath 1.0-forespørgsler over DOM-dokumenter; XML-transformationer ved hjælp af XSLT 1.0; og support til XSD 1.0-specifikationen med XmlSchemaCache.

Alle nye applikationer skal skrives for at overholde MSXML 6.0, den seneste version af MSXML eller XmlLite, en letvægts XML-parser til native kodeprojekter.

Brug af MSXML

MSXML-tjenester eksponeres programmatisk som Object Linking and Embedding (OLE) automatiseringskomponenter og kan bruges af udviklere, der bruger C, C ++ native programmeringssprog, eller Jscript og VBScript aktive scripting sprog.

Brug af MSXML Component Object Model (COM) -komponenter anbefales eller understøttes ikke, hvis du skriver administreret kodemålretning. NET Framework i C #, Visual Basic, administreret C ++ eller et andet administreret programmeringssprog. MSXML bruger specifikke trådtilstande og opsamlingsrutiner for skrald, der ikke er kompatible med .NET Framework. XML-funktionalitet skal implementeres i .NET-applikationer ved hjælp af klasser fra System.Xml-navneområdet eller LINQ til XML, begge hjemmehørende i .NET-rammen. Brug af MSXML i .NET-applikationer gennem COM-interoperabilitet kan resultere i uventede problemer, der er vanskelige at fejlsøge.

MSXML bruges ofte til behandling af XML i webapplikationer eller som en enkeltstående proces ved hjælp af Document Object Model (DOM). DOM og Simple API to XML (SAX2) kan bruges på ethvert programmeringssprog, der er i stand til at bruge ActiveX- eller COM-objekter.

Skal jeg bruge og lære MSXML?

Hvis dit programmeringsarbejde drejer sig om applikationer, der bruger .NET Framework, behøver du ikke at bekymre dig om MSXML, da det ikke anbefales at bruge det i .NET-projekter..

På den anden side, hvis du arbejder med native code eller scripting-programmeringssprogprojekter, der interagerer med XML, bruger du sandsynligvis MSXML eller dets lette alternativ, XmlLite.

Der findes mange open source-alternativer til MSXML, f.eks. NativeXML, men du skal vælge et alternativ, der understøtter dit programmeringssprog.

MSXML-ressourcer

Hvis du arbejder med programmer, der interagerer med XML, og disse programmer ikke er afhængige af .NET Framework, skal du tage et kig på følgende ressourcer på MSXML:

  • Afsnittet Microsoft Developer Network MSXML Documentation giver en fuld oversigt og dokumentation for MSXML.
  • Sektionen Microsoft Developer Network Learn MSXML indeholder nyttige ressourcer som en begyndervejledning, tutorials og et brugerforum, der dækker brugen af ​​MSXML. Du kan også downloade MSXML6 fra denne side.
  • ASP / Gratis websted har en dejlig MSXML-tutorial. Denne tutorial forklarer, hvad MSXML er, og hvordan man får adgang til et XML-dokument ved hjælp af JavaScript. Det er uddraget fra kapitel 10 i XML DeMYSTified (2005) af Jim Keogh og Ken Davidson.

MSXML-bøger

Bøger, der specifikt dækker MSXML, er ganske sjældne, delvis på grund af det faktum, at der er rigelige MSXML-ressourcer tilgængelige online. Mange bøger om programmering af scriptsprog har også kapitler om MSXML. I nogle tilfælde er disse kapitler ret omfattende og dybtgående, mens andre kun giver et grundlæggende overblik over MSXML.

  • XML Application Development med Msxml 4.0 (2002) af Ayers et al: denne bog dækker MSXML 4.0, nu betragtet som forældet. På trods af dette kan læsere muligvis finde mange eksempler nyttige.

Bør du investere tid i at lære MSXML?

Selvom MSXML ikke er blevet afskrevet og stadig er i udbredt brug, er dens langsigtede relevans op til debat. Udviklingen er aftaget til en gennemgang, og MSXMLs tid er tydeligvis kommet og gået.

Imidlertid bruges MSXML stadig i mange projekter, selvom rækkevidden af ​​dets potentielle applikationer aftager. Til at begynde med skal det ikke bruges med .NET Framework. Det er heller ikke den eneste måde at sikre XML-interaktion på. Der er forskellige open source-alternativer tilgængelige, men det at behandle hver enkelt af dem var uden for denne artikels rækkevidde.

I tilfælde af at du stadig vil mestre MSXML eller blot udjævne dine gamle færdigheder, har du måske svært ved at finde friske ressourcer. En masse MSXML-ressourcer, især bøger og andre udskriftsressourcer, er desværre forældede og dækker forældede versioner af MSXML. Dette gør dem ikke ubrugelige, men det begrænser deres nytte og tvinger dig til at kontrollere meget af det, du læser, bare for at sikre dig, at det gælder MSXML 6.0.

MSXML 6.0 blev frigivet for mere end et årti siden, og selvom Microsoft stadig understøtter det (teknisk), er det åbenlyst, at slutningen af ​​vejen for MSXML er nær.

Definition af dokumenttype

En dokumenttype-definition (DTD) giver en måde at definere strukturen på SGML-sprogtyper – især XML.

XML

Så du vil bruge XML til at markere en e-mail? Du bruger muligvis, og. Eller, hvis du bruger XML til at gemme detaljer om en pladesamling, har du muligvis tags som osv.

Men der er et problem. Hvordan definerer du et sæt tags, så alle bruger (for eksempel) i stedet for eller i stedet for ?

Definition af dokumenttype

Løsningen er en DTD – en definition af dokumenttype.

En DTD er et dokument, der specificerer hvilke elementer et XML-dokument kan have. Det inkluderer information om, hvilke elementer der kan indlejres i en anden, hvilke elementer der er obligatoriske eller valgfri, og hvilke attributter der kan inkluderes i et element.

DTD-sproget (i sig selv et derivat af SGML) giver en måde at specificere denne struktur af elementnavne og attributter. Den resulterende definition kan bruges til at validere et XML-dokument for at sikre, at det er i overensstemmelse med definitionen.

Hvorfor validere?

HTML-dokumenter er (normalt) beregnet til at blive læst af mennesker. Markeringen er primært til semantiske og præsentative formål og bruges af en webbrowser til at gengive dokumentet – men den endelige bruger af HTML er næsten altid en person, der kigger på en webside.

Selvom validering af HTML er vigtig og nyttig, er det ikke strengt nødvendigt. Browsere er tilbøjelige til at tilgi, og mennesker kan finde ud af at have mening, selvom markeringen er lidt slukket.

Men XML bruges til at transmittere data, ikke websider. XML forbruges normalt af et andet stykke software, ikke et menneske.

Der er normalt ikke plads til uklarhed eller fejl. Derudover er det muligt for angribere at integrere ondsindet kode i XML, så applikationer, der accepterer XML-input, ikke kan stole på alt det input, de modtager.

HTML valideres ofte af forfatteren som et slags ”korrekturlæsning” -trin i udgivelsesprocessen. På den anden side valideres XML ofte af modtageren. Dette gøres for at sikre sikkerhed og undgå fejl, før en applikation faktisk gør noget med XML-data.

DTD vs. XSD

DTD var det første dokumentdefinitionsformat opfundet til XML. Det har visse begrænsninger, ikke mindst som at en DTD i sig selv ikke er XML. DTD-grammatik er noget svært at analysere, hvilket kræver et andet værktøjssæt end XML-parsning.

XSD – XML ​​Schema Definition – er en senere standard, der forbedrede DTD på flere måder. Et XSD-dokument er i sig selv gyldigt XML. XSD kan specificere datatyper for hvert element; for eksempel om et element skal indeholde en dato og tid, et nummer, en streng eller en anden type data.

Af disse grunde er XSD blevet mere populært til validering af transaktions XML – det vil sige XML, der genereres, sendes og modtages som en del af en API. XSD’er bruges for eksempel i SOAP.

Da DTD er lettere at oprette og læse (af mennesker, det vil sige), forblev det populært i sammenhænge, ​​hvor XML blev brugt til at offentliggøre information.

Denne måde at bruge XML er imidlertid stort set forældet med stigningen i HTML5 og den stigende divergens mellem HTML og XML. I dag er API-udviklere på udkig efter et letvægtsalternativ til XML + XSD mere tilbøjelige til blot at bruge JSON end de bruger XML og DTD’er.

Men der er stadig masser af DTD’er i brug. Hvis du arbejder med ældre webteknologi, især datasystemer, der er bygget i slutningen af ​​90’erne, vil du sandsynligvis finde dig selv i at arbejde med DTD’er på et tidspunkt. For at hjælpe dig med at finde din vej har vi sammensat de bedste DTD-tutorials, ressourcer og værktøjer, vi kunne finde.

DTD Tutorials

  • Constructing a Document Type Definition (DTD) for XML er en godt præsenteret oversigt over DTD’er fra New Mexico Institute of Mining and Technology.

  • DTD Tutorial fra W3Schools giver en metodisk introduktion til emnet, og er et godt sted at starte, hvis du bare kommer til dette emne.

  • XML og DTD’er (PDF) giver en forklaring af anatomi af en XML-fil og viser derefter, hvordan DTD’er definerer en bestemt XML-dokumenttype. Dette er en god tutorial, hvis du har brug for at uddybe XML-basics, mens du lærer om DTD’er.

  • XML DTD – En introduktion til XML-dokumenttypedefinitioner er en 7-delt tutorial, der leder læsere gennem oprettelsen af ​​en DTD og validerer XML-dokumenter imod det.

  • Vejledningen på 10 minutter til læsning af en XML DTD er en kort oversigt over, hvordan du læser og fortolker en XML-dokumenttype-definition, idet der ikke antages antagelser om, hvor meget du allerede ved om XML eller DTD’er.

  • DTD Tutorial er en community-skrevet ressource fra EduTech Wiki.

Andre DTD-læringsressourcer

  • XML-skema, DTD og entitetsangreb (PDF) er et papir, der beskriver sikkerhedssårbarheder, der kan forekomme i systemer, der bruger DTD’er til XML-validering.

  • XML-kodningsøvelser er en serie Java-baserede tutorials og øvelser, herunder dækning af opbygning og brug af DTD’er.

  • SGML-undtagelser og XML er en avanceret tutorial til opbygning af DTD’er med komplekse regler for inkludering og ekskludering.

  • Generisk programmering til XML-værktøjer er et avanceret dokument om implementering af DTD-opmærksomme XML-værktøjer som generiske programmer.

  • XML-DTD’er vs XML-skema forklarer forskellene mellem DTD’er og XSD’er, to måder at definere strukturen i et XML-dokument.

DTD-værktøjer

  • Online XML Validator giver dig mulighed for hurtigt at validere en XML-fil mod en DTD, der er nævnt i selve filen.

  • Xmllint er et kommandolinjeværktøj til at analysere og fole XML-filer. Det kan bruges til hurtigt at validere mod en DTD.

  • DTDGenerator er et værktøj, der producerer et DTD-dokument baseret på et givet XML-dokument.

  • DTD2Schema konverterer DTD-filer til XSD.

  • XML Tools by Platform er en omfattende liste over XML-værktøjer til forskellige sprog og platforme. De fleste af disse kan bruges til at konstruere DTD-filer eller til at validere XML-dokumenter mod DTD’er.

DTD Konklusion

Det kan se ud til, at DTD’er ikke bruges meget mere. I XML’s verden er de blevet erstattet af XSD. Og selve XML er stort set blevet erstattet med nyere teknologi.

Men mange ældre og store virksomhedssystemer bruger fortsat XML og DTD. Hvis du arbejder med store enterprise-systemer, eller udvikler ved hjælp af enterprise-webværktøjer som .NET, skal du sandsynligvis være bekendt med DTD og relaterede standarder.

ECMAScript til XML

ECMAScript til XML, der normalt kaldes E4X, var designet til at gøre XML-data lettere at arbejde med.

Selvom du muligvis ikke er meget fortrolig med ECMAScript, har du bestemt hørt om dets mest populære implementering: JavaScript.

Faktisk er E4X en bolt-on udvidelse til JavaScript, der tilføjer native support til XML-data meget på samme måde som JavaScript inkluderer native support til JSON-formatdata.

Mens E4X aldrig nød bred vedtagelse og er blevet fjernet fra alle moderne browsere, bruges den stadig i nogle andre Flash-Adobe-produkter.

Hvad er E4X?

Lige nu tænker du måske på dig selv: “Men JavaScript kan bruges til at få adgang til XML-data!” Og hvis du havde tænkt den, tillykke, har du ret! Der er imidlertid en stor forskel mellem den måde, hvorpå XML-data fås med JavaScript, og den måde, hvor XML-data fås med E4X.

Moderne JavaScript kan bruges til at krydse XML DOM. Dette betyder, at XML-data findes som en separat enhed, og JavaScript kan bruges til at interagere med disse data.

Imidlertid forbliver selve dataene altid en separat enhed – en ressource, der bruges af et script – snarere end at blive en del af selve scriptet.

På den anden side gør E4X det muligt at importere eller oprette XML-data i JavaScript og behandle dem som en primitiv datatype. Dette betyder, at XML-data faktisk er en del af selve scriptet og kan manipuleres meget på samme måde som andre datatyper, såsom arrays, strenge og objekter, kan manipuleres..

Kort sagt, E4X gør arbejdet med XML-data til en meget mere fleksibel proces og fremskynder parsning af data, da de findes som en primitiv datatype snarere end en ekstern ressource.

E4X lyder ret godt, ikke? Hvis du bruger XML regelmæssigt, kan du undre dig over, hvorfor E4X ikke understøttes naturligt af enhver browser. For at finde ud af, hvad der skete med E4X, lad os gå til båndet.

Historie om E4X

E4X blev oprindeligt udviklet på BEA Systems af Terry Lucas og John Schneider og implementeret for første gang i BEA WebLogic Platform 7.0 i 2002.

Dette foregik faktisk for den formelle færdiggørelse af E4X-specifikationen, som blev frigivet mere end to år senere i 2004. Kort derefter derefter blev E4X implementeret af Firefox, og support blev også tilføjet Adobes ActionScript 3.

På trods af denne tidlige vedtagelse var E4X-implementeringen ujævn og inkonsekvent. Brendan Eich, skaberen af ​​JavaScript og grundlægger af Mozilla, er blevet citeret for at sige, at “E4X er skøreland”.

Derudover bemærkede Mark S Miller, en forsker hos Google, at Firefox-implementeringen af ​​E4X afvigede “fra den (officielle E4X) spec på måder, der ikke er nedskrevet nogen steder.”

En anden faktor, der måske har bidraget til den lunkne accept af E4X, var den samtidige udvikling af JSON.

JSON løste mange af de samme problemer, som E4X forsøgte at løse med XML, men JSON løste dem uden at kræve en bolt-on ECMAScript-udvidelse og uden de konsekvensproblemer, der plagede E4X.

Med andre ord, mens E4X nød tidligt vedtagelse af Firefox og Adobe, blev den aldrig konsekvent implementeret og tabt mod rivaler som JSON. Som et resultat udvidede browsersupporten aldrig ud over Firefox.

Da E4X-understøttelse blev føjet til ActionScript 3, måtte support til E4X indbygges i hvert Adobe-program, der implementerer ActionScript 3. Som et resultat, lever E4X videre i Adobe-produkter.

Browsersupport til E4X

Mens E4X på én gang blev understøttet af Firefox, blev supporten udskrevet i Firefox version 16 i oktober 2012 og derefter fjernet fra Firefox i version 18 i januar 2013.

I dag understøttes E4X ikke af nogen af ​​JavaScript-motorerne bag førende browsere som Safari (Nitro-motor), Chrome (V8-motor) eller Microsoft-browsere Internet Explorer og Edge (begge bruger Chakra).

Som vi nævnte, er E4X imidlertid integreret i ActionScript 3, som er Adobe Flash-smagen af ​​ECMAScript. Som et resultat understøtter JavaScript-motorer, der er tilknyttet Flash, som Rhino og Tamarin, E4X.

Ingen af ​​disse motorer bruges dog af populære forbrugerwebbrowsere. Med andre ord kan du muligvis bruge E4X, hvis du skriver en Flash-applikation, men til almindelig webprogrammering skal du holde dig til standard JavaScript for at krydse XML DOM og springe E4X-udvidelsen over.

Moderne E4X-applikation

Hvis du har brug for at lære mere om E4X, er der en god chance for, at det er fordi du vil bruge det til en Adobe Flash-applikation. E4Xs mest synlige moderne brug forekommer i Adobe Flash-økosystemet.

E4X implementeres i ActionScript 3 og understøttes af flere moderne Adobe-produkter, herunder Flash CS3, Adobe AIR, Adobe Flex, Adobe Acrobat og Adobe Reader. Imidlertid er ikke-Adobe-implementering af E4X praktisk talt ikke-eksisterende.

E4X-ressourcer

Hvis du allerede kender ActionScript eller JavaScipt, vil det ikke være svært at lære at manipulere XLM-data med E4X. E4X er bare en bolt-on komponent til ECMAScript-gengivelsesmotoren. Som et resultat, skal du bare lære de XML-specifikke funktioner, og du er klar til at rulle.

De fleste E4X-ressourcer er temmelig dateret. Da udviklingen af ​​E4X ikke fortsætter, er disse daterede ressourcer dog stadig nøjagtige og nyttige. Vi har sporet nogle af de bedste E4X-ressourcer, så du kan lære, hvad du har brug for at vide, for at manipulere XML-data med E4X og ActionScript.

  • XML.com, introduktion af E4X af Kurt Cagle: en kort introduktion til E4X, der dækker det grundlæggende.

  • Mozilla Developer Network | E4X-tutorial: denne tutorial er blevet forældet. Indholdet er dog stadig solidt og nyttigt.

  • Mozilla Developer Network | Behandler XML med E4X: denne tutorial er et naturligt næste trin efter at have afsluttet den forrige MDN E4X tutorial.

  • E4X hurtigstartguide: denne vejledning dækker hurtigt E4X-grundlæggende.

  • IBM udviklerWorks | E4X: JavaScript på steroider: lær at oprette XML-objekter, få adgang til XML-data, manipulere XML-data, udføre beregninger med mere i denne vejledning til E4X fra IBM.

  • ECMA-357, 2. udgave, december 2005: ECMAScript til XML (E4X) specifikation: den officielle, nu forældede E4X specifikation. Hvis du har brug for at kende E4X indgående, er den officielle dokumentation de mest tilgængelige ressourcer.

E4X Konklusion

E4X var en god idé, der blev implementeret inkonsekvent og slået ud af konkurrerende teknologier. Den lever dog videre i produkter, der understøtter ActionScript 3 og er yderst nyttige til at oprette og manipulere XML-data med ECMAScript.

XUL

XUL- eller XML-brugergrænsefladesprog består af tags, der kan bruges til at oprette rige GUI’er til web- eller stand-alone-applikationer. Det bruges primært til at udvikle udvidelser til Mozilla-webbrowser og kræver ikke en internetforbindelse for at køre.

XUL giver brugeren mulighed for at specificere og vise flere GUI-elementer, herunder tekstbokse og billeder samt håndtere forskellige browserhændelser. Oprindeligt blev biblioteket udviklet af Mozilla-stiftelsen til at udfylde “hullerne i HTML-sproget til at bygge store webapplikationer.” Dog erstattes det snart, da producenterne af Firefox har besluttet at fokusere deres indsats på andre områder.

Selv stadig giver XUL en god introduktion til oprettelse af GUI-elementer ved hjælp af sprog og XML-type. Se de ressourcer, der er skitseret for at få flere oplysninger.

XUL Tutorials

Følgende tutorials er en fantastisk måde at lære XUL på. Brug de præsenterede eksempler, og tilpas dem til dine egne projekter.

  • XUL Tutorial fra Mozilla Developer Network præsenterer et omfattende sæt af links, der skitserer flere sprogfunktioner. Udviklere, der besøger stedet, vil se flere emner dækket, herunder hvordan man tilføjer knapper, oprette menuer og håndtere begivenheder.
  • XUL-vejledning med eksempler dækker forskellige elementer i biblioteket med letforståelige eksempler. Det er også muligt at downloade et omfattende sæt kildekodefiler, der let kan bruges til dine egne webapplikationer.
  • XUL: Fremtiden for brugergrænseflader på Internettet indeholder et abstrakt og link til en præsentation af lysbilleder til en XUL-tutorial, der blev givet på O’Reilly OpenSource Convention i 2005.
  • Introduktion af XUL indeholder en oversigt over XUL, og hvordan den binder sig sammen med andre websprog, herunder CSS, JavaScript og XML. Forfatteren har også et PHP-script, der indeholder XUL.
  • XULRunner-tutorial viser, hvordan du indstiller XULRunner-programmet, der bruges til at køre XUL-applikationer. Siden går gennem XULRunner-konfiguration efterfulgt af instruktioner om oprettelse og kørsel af XUL-kode.
  • XUL Manager har et downloadlink til firefox-udvidelsen, der giver udviklere mulighed for at “hvidliste” lokale og eksterne adresser, så XUL-applikationer kan vises og køre korrekt.

XUL Video Tutorials

Udviklere skal have mulighed for at visualisere, hvad de lærer. Her er nogle videotutorials på XUL, der gennemgår grundlæggende opsætning og nogle eksempler.

  • Firefox Extension Development er den første del af en række videoer, der viser udviklere, hvordan man opsætter deres system til XUL-udvikling. Videoserien viser også den overordnede struktur for en XUL-applikation og gennemgår nogle kodeeksempler.
  • Sådan udvikler du en grundlæggende Firefox-udvidelsesværktøjslinje er en trin-for-trin-tutorial, der demonstrerer de filer og kode, der er nødvendig for at udvikle en enkel værktøjslinje, inklusive RDF, XUL og manifestfiler..
  • Ian McKeller – Udvikling af XUL Applications præsenterer en oversigt over XUL og kontrasterer den med Gtk + til applikationsudvikling på GNOME, en grafisk manager for Linux.

XUL Bøger

Udover at læse og se onlinetutorials, kan udviklere læse bøger skrevet om XUL.

  • Programmering af Firefox: Bygning af rige internetapplikationer med XUL (2007) af Kenneth Feldt giver en introduktion til XUL og indeholder mange forskellige kodeeksempler. Udviklere kan bruge denne bog til at lære, hvordan man opretter UI-elementer, håndterer begivenheder og bygger grafiske applikationer. Bogen dækker også kørsel af XUL på yderligere platforme inklusive Chrome.
  • ZK Developer’s Guide (2008) af Staeuble og Schumacher demonstrerer ZK-rammebiblioteket, og hvordan det kan bruges i kombination med XUL og AJAX til at opbygge webapplikationer.
  • Essential XUL Programming (2001) af Bullard, Smith og Daconta præsenterer en dybdegående ressource om XUL. Udviklere, der læser denne bog, lærer ikke kun det grundlæggende, de lærer også, hvordan man bruger andre sprog som JavaScript, CSS og RDF sammen med XUL. Forfatterne giver trinvise instruktioner om oprettelse af XUL-applikationer og eksempler på XUL i den virkelige verden.
  • Introduktion XUL (2015) af John Richardson er en anden, nyere e-bog, der giver en ressource for udviklere til hurtigt at komme i gang med at udvikle XUL-applikationer. Bogen dækker bygning af fristående applikationer i forbindelse med XULRunner, XPCOM, JavaScript, HTML og CSS.

Alternative XUL-ressourcer

Udover XUL tilbyder andre biblioteker, herunder XAML for WPF (Windows Presentation Foundation) og FXML til JavaFX lignende funktionalitet. Det kan være værd at tage et kig på følgende ressourcer for en hurtig introduktion til disse biblioteker.

  • XAML-tutorial fra TutorialsPoint præsenterer den grundlæggende struktur i XAML såvel som forskellige komponenter, der kan bruges til at opbygge lydhøre applikationsgrænseflade, herunder kontroller, layout og begivenhedshåndtering. Vejledningen gennemgår også miljøopsætning og går gennem installationsprocessen i Visual Studio komplet med skærmbilleder.
  • WPF Tutorial præsenterer en række tutorials om, hvordan man bruger WPF-biblioteket sammen med XAML til at oprette brugerdefinerede kontroller og specificere opførsel. WPF er en del af .NET-rammen og giver udviklere mulighed for at skrive applikationer ved hjælp af C # eller VB.NET, mens de specificerer GUI-elementer gennem XAML.
  • FXML-vejledning fra Oracle lærer udviklere, hvordan man bruger FXML til at specificere GUI-elementer, herunder tekstbokse, knapper og layout. Udviklere vil bruge de lektioner, der læres i denne tutorial, til at oprette en enkel loginskærm.
  • JavaFX-tutorial dækker mange aspekter af JavaFX-biblioteket, der kan hjælpe udviklere med at få et overblik over funktioner, herunder specificering af GUI-elementer og håndtering af begivenheder.

Skal jeg lære XUL?

XUL giver udviklere mulighed for at specificere GUI-elementer i webapplikationer og browserudvidelser til Firefox-browseren. Det kombineres ofte med JavaScript, CSS og HTML-kode for at oprette brugerdefinerede layout og begivenhedsstyrede applikationer.

Selvom Mozilla har besluttet at fokusere på andre områder, er det at lære XUL at være en indsats værd. Mange applikationer, inklusive til Windows- og mobiltelefonapper, bruger XML til at specificere GUI-elementer. Det at gøre dig bekendt med XUL gør det lettere at lære andre biblioteker som XAML meget lettere og hurtigere.

At lære XUL vil også hjælpe udviklere med at vænne sig til MVC (model view controller) metoden til at bygge applikationer, der adskiller applikationens logik fra layoutet eller visningen. I stedet for at inkludere GUI og logiske elementer i en enkelt fil, lærer XUL at tilføre den nødvendige disciplin til at hjælpe med at udvikle mere robuste applikationer.

Konklusion

XML i sig selv er ret ligetil. For en erfaren XHTML-kode kan det virke næsten trivielt. Men der er så mange relaterede teknologier, og så meget, der kan gøres med det, at du kan bruge resten af ​​dit liv på ikke at gøre andet. Vi har lige ridset overfladen her.

Andre interessante ting

Vi har flere guider, tutorials og infografik relateret til kodning og udvikling:

  • Microsoft Visual Basic / Visual Studio: dette er vores grundlæggende primer på Visual Studio med fokus på Visual Basic.
  • HTML til begyndere: denne artikel tager dig fra stjernen. Men i betragtning af at det er boglængde, er der masser, som erfarne kodere kan lære.
  • C # Ressourcer: som et af de mest populære sprog i .NET firmament er C # meget nyttigt at vide.

Hvilken kode skal du lære?

Forvirret over hvilket programmeringssprog du skal lære at kode i? Se vores infographic, hvilken kode skal du lære? Det diskuterer ikke kun forskellige aspekter af sprogene, det besvarer vigtige spørgsmål som ”Hvor mange penge vil jeg tjene til at programmere Java til en levevej?”

Hvilken kode skal du lære?
Hvilken kode skal du lære?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map