Лекция Създаване на валидни XML документи
Задаване на дъщерно съдържание на елемент
Ако елемент има дъщерно съдържание, той може директно да съдържа само определени дъщерни елементи, но не и данни за символи. В текста на документ можете да отделите деца с интервал, табулация, връщане на карета или подаване на редове, за да подобрите четливостта на документа, но процесорът ще игнорира тези символи и няма да ги предаде на приложението.
Да разгледаме следния примерен XML документ, описващ една книга:
Аленото писмо
Моделът на съдържанието може да има една от следните основни форми.
- Последователен. Последователната форма на модела на съдържанието указва, че елементът трябва да има определена поредица от дъщери. Разделяте имената на типовете на дъщерните елементи със запетаи. Например, следният DTD показва, че елементът MOUNTAIN трябва да има едно дъще ИМЕ, последвано от едно дете HEIGHT, последвано от едно дете STATE:
Следователно, следният елемент на документа ще бъде валиден:
Следният елемент на Document обаче няма да е валиден, тъй като редът на децата не съвпада с декларирания:
- Персонализиран. Селективната форма на модела на съдържанието показва, че елемент може да има всеки от поредица от валидни дъщерни елементи, разделени с |. Например, следният DTD показва, че елементът FILM може да се състои от едно дете STAR, или едно дете NARRATOR, или едно дете INSTRUCTOR:
Следователно, следният елемент на документа ще бъде валиден:
Сър Григорий Парслое
а също и елемента:
Следният елемент Document няма да е валиден, защото можете да включите само един от дъщерните елементи:
Сър Григорий Парслое
Можете да модифицирате всяка от тези форми на модела на съдържанието, като използвате въпросителен знак (?), Знак Плюс (+) и звездичка (*), чиито значения са описани в следната таблица:
По този начин следният елемент ще бъде правилен:
Съответно, всеки от следните три елемента ще бъде правилен:
Сър Григорий Парслое
И накрая, можете да изградите по-сложни модели на съдържание, като вложите примерен модел на съдържание в последователен модел или последователен модел в примерен модел. Например, следващият DTD указва, че всеки FILM елемент трябва да има един дъщерен елемент TITLE; трябва да бъде последвано от едно дете от КЛАС; той трябва да бъде последван от едно дете от ЗВЕЗДА, НАРАТОР или ИНСТРУКТОР:
Съгласно този DTD, следният елемент на документа ще бъде правилен:
просто така:
Тип атрибут
Типът атрибут е вторият задължителен компонент в дефиницията на атрибута. Той определя вида на стойностите, които можете да присвоите на атрибут в рамките на документ, както е показано на Фигура 5.4.
Фигура: 5.4.
Можете да посочите тип атрибут по три различни начина.
- Тип низ. Типът атрибут може да бъде присвоен на всеки цитиран низ (литерал), който следва общите правила, описани в раздела "Правила за правилно определяне на стойностите на атрибутите" в Глава 3. Трябва да декларирате типа низ на атрибута, използвайки ключовата дума CDATA, като направихте за дефиниране на атрибута Class в следния пример:
- Тип маркер. Стойностите, които можете да присвоите на атрибут тип маркер, имат редица ограничения (вижте следващия раздел).
- Номериран тип. За номериран тип атрибут можете да зададете единична стойност или списък на конкретни стойности. Ще научите за този тип в раздела "Задаване на номерирани типове" по-нататък в тази глава.
Задаване на тип маркер