Разлика између КСМЛ шеме и ДТД

КСМЛ шема вс ДТД

ДТД, или Дефиниција типа документа и КСМЛ шема, која је такође позната као КССД, су два начина описивања структуре и садржаја КСМЛ документа. ДТД је старији од ова два, и као такав има ограничења која је КСМЛ шема покушала да побољша. Прва разлика између ДТД и КСМЛ схеме је свест о именима; КСМЛ шема је, док ДТД није. Освешћивање простора имена уклања нејасноћу која може резултирати стварањем одређених елемената и атрибута из више КСМЛ вокабулара, дајући им просторе имена који елемент или атрибут стављају у контекст.

Део разлога зашто је КСМЛ схема свесна имена све док ДТД није, је чињеница да је КСМЛ схема написана у КСМЛ, а ДТД није. Стога се КСМЛ схеме могу програмски обрадити као и било који КСМЛ документ. КСМЛ схема такође елиминише потребу за учењем другог језика, као што је написано у КСМЛ-у, за разлику од ДТД-а.

Још једна кључна предност КСМЛ шеме је његова способност да имплементира снажно куцање. КСМЛ схема може дефинирати врсту података одређених елемената, па чак и ограничити на одређене дужине или вриједности. Ова способност осигурава да су подаци похрањени у КСМЛ документу тачни. ДТД нема јаке могућности куцања и нема начин да потврди садржај према типовима података. КСМЛ схема има мноштво изведених и уграђених типова података за провјеру садржаја. То пружа горе наведену предност. Такође има једноличне типове података, али како сви процесори и проверавачи морају да подрже ове типове података, то често узрокује неуспех старијих КСМЛ анализатора.

Карактеристика ДТД-а коју људи често сматрају и предностом и недостатком је способност дефинисања ДТД-ова у линији, што недостаје КСМЛ шеми. То је добро када радите са малим датотекама, јер вам омогућава да садржавате и садржај и шему унутар истог документа, али када је реч о већим документима, ово може бити недостатак, јер повлачите садржај сваки пут када дохваћате шему. . То може довести до озбиљних трошкова који могу смањити перформансе.

Резиме:

1. КСМЛ схема је позната у простору имена, док ДТД није.

2. КСМЛ шеме се пишу у КСМЛ, док ДТД нису.

3. КСМЛ шема је снажно куцана, док ДТД није.

4. КСМЛ схема има мноштво изведених и уграђених типова података који нису доступни у ДТД-у.

5. КСМЛ схема не допушта инлине дефиниције, док ДТД то чини.