Створення валідатора розширюваної мови гіпертекстової розмітки (XHTML)
Завантажити презентаціюПрезентація по слайдам:
Створення валідатора розширюваної мови гіпертекстової розмітки (XHTML) Презентація до курсової роботи Гребенюка С.В.
Історія XHTML (англ. Extensible Hypertext Markup Language — укр. Розширювана мова розмітки гіпертексту ) — мова розмітки, що має таку ж виразну силу як і HTML, але відповідає синтаксичним правилам XML. XHTML 1.0 став рекомендацією консорціуму W3C 26 січня 2000. XHTML 1.1 став рекомендацією W3C 31 травня 2001.
Версії XHTML XHTML-1.0-Strict – тип, що не дозволяє використання елементів, що відповідають за графічне відображення документу (напр. ); XHTML-1.0-Transitional – тип, що дозволяє «графічні» елементи; XHTML-1.0-Frameset – це тип, який додатково до можливостей XHTML-1.0-Transitional підтримує фрейми.
Дві популярні техніки парсингу SAX (англ. «Simple API for XML») — спосіб послідовного зчитування. Парсер повідомляє програму, що його викликала, про елементи розмітки та помилки. DOM (англ. Document Object Model — «об’єктна модель документу») – програмний інтерфейс, що дає доступ до змісту XML, XHTML, HTML-документу. Парсер представляє документ у вигляді дерева вузлів, кожен вузол якого є елементом, атрибутом або об’єктом.
Реалізація на С++ class XHTMLValidator { struct tag { tag(const string&,string,const bool,const bool); const string _name; list _attributes; const bool _paired,_Inline; }; struct placedTag { string _tag; size_t _line; }; public: static XHTMLValidator& instance(); ~XHTMLValidator(); bool validate(const char* const,const bool=false,const bool=false); }; private: XHTMLValidator(const XHTMLValidator&); XHTMLValidator& operator=(const XHTMLValidator&); list _tags; list _mnemonics; bool valid; void initializeTags(); void initialize(); void initializeMnemonics(); const list& tags() const {return _tags;} list& tags(){return _tags;} const list& mnemonics() const {return _mnemonics;} list& mnemonics(){return _mnemonics;} bool checkTag(const placedTag&,const bool,const bool,ofstream&); bool checkmnemonics(const string&) const; bool pair(const placedTag&,const placedTag&) const; static bool tagpred(const tag&,const tag&); bool ifinline(const placedTag&) const; XHTMLValidator(); };
Переваги синглтонів Гарантовано створиться лише один екземпляр класу Не доводиться думати про порядок створення глобальних об’єктів Не доводиться думати про знищення глобальних об’єктів
Стратегії проектування синглтонів Creation – спосіб створення об’єкту, за якого об’єкт створюється під час першого звернення до нього; Lifetime – задає час народження і знищення об’єкту; ThreadingModel – задає поведінку указника на об’єкт.
Помилки, які фіксує програма Є елементи поза тілом документу Інлайн-елемент має бути всередині блочного Неправильне вкладення тегів або незакритий тег. Інлайнові елементи мають знаходитись всередині блокових Пряме використання символу ‘&’ замість “&” або некоректне вжиття мнемоніки Неочікуваний кінець файлу, незакритий тег Блоковий елемент всередині інлайнового Вкладення елементу самого в себе Повторне вжиття якоря (в тезі ) Тег має йти одразу після У тезі DOCTYPE не вказано абсолютний шлях до DTD-файлу (має бути вказаний саме абсолютний шлях, а не шлях до завантаженого файлу) XHTML вимагає вжиття всіх тегів і атрибутів у нижньому регістрі Неіснуючий атрибутXHTML вимагає альтернативний текст для кожного зображення Відсутня закривальна ‘”’ в атрибуті Атрибут без значення Не знайдено тегу Не знайдено тегу Текст поза В документі має бути лише один В документі має бути лише один В документі має бути лише один може містити лише , , , , , , , , , , , , , , можуть бути лише в
Додаткові можливості Опціональний вивід результату на екран Опціональний вивід результату в файл
Схожі презентації
Категорії