XML schema vs DTD
DTD, arba dokumento tipo apibrėžimas, ir XML schema, dar vadinama XSD, yra du būdai aprašyti XML dokumento struktūrą ir turinį. DTD yra senesnis iš dviejų, ir todėl jis turi apribojimų, kuriuos XML schema bandė patobulinti. Pirmasis skirtumas tarp DTD ir XML schemos yra žinomumas erdvėje; XML schema yra, o DTD nėra. Vardų erdvės suvokimas pašalina dviprasmybes, kurios gali sukelti tam tikrus elementus ir atributus iš daugelio XML žodynų, suteikiant jiems vardų sritis, kurios įtraukia elementą ar atributą į kontekstą.
Viena iš priežasčių, kodėl XML schema žino vardų sritį, o DTD nėra, yra ta, kad XML schema parašyta XML, o DTD nėra. Todėl XML schemas galima apdoroti programiškai, kaip ir bet kurį XML dokumentą. XML schema taip pat neleidžia mokytis kitos kalbos, nes ji, kitaip nei DTD, parašyta XML formatu.
Kitas svarbus XML schemos pranašumas yra jos sugebėjimas įgyvendinti stiprią teksto rinkimo funkciją. XML schema gali apibrėžti tam tikrų elementų duomenų tipą ir netgi riboti jį iki tam tikro ilgio ar reikšmių. Ši galimybė užtikrina, kad XML dokumente saugomi duomenys yra tikslūs. DTD trūksta didelių spausdinimo galimybių ir jis neturi būdo patvirtinti turinio pagal duomenų tipus. XML schema turi daugybę išvestinių ir įmontuotų duomenų tipų turiniui patvirtinti. Tai suteikia aukščiau nurodytą pranašumą. Ji taip pat turi vienodus duomenų tipus, tačiau, kadangi visi duomenų tvarkytojai ir patvirtintojai turi palaikyti šiuos duomenų tipus, dėl to senesni XML analizatoriai dažnai sugenda.
DTD bruožas, kurį žmonės dažnai laiko ir pranašumu, ir trūkumu, yra gebėjimas apibrėžti DTD inline, kurio trūksta XML schemai. Tai gerai, kai dirbate su mažais failais, nes tai leidžia tame pačiame dokumente turėti ir turinį, ir schemą, tačiau, kai kalbama apie didesnius dokumentus, tai gali būti trūkumas, nes kiekvieną kartą gaudami schemą traukiate turinį. . Tai gali sukelti rimtų pridėtinių išlaidų, kurios gali pabloginti našumą.
Santrauka:
1. XML schema yra žinoma vardų srityje, o DTD - ne.
2. XML schemos rašomos XML formatu, o DTD - ne.
3. XML schema yra griežtai įvedama, o DTD ne.
4. XML schemoje yra daugybė išvestinių ir įmontuotų duomenų tipų, kurių nėra DTD.
5. XML schema neleidžia įterpti apibrėžimų, o DTD tai daro.