Ìîäóëÿðèçàöèÿ XHTML
Ìîäóëÿðèçàöèÿ XHTML
Ìîäóëÿðèçàöèÿ XHTML(tm)
Ðåêîìåíäàöèÿ W3C îò 10 àïðåëÿ 2001 ã.
Íàñòîÿùàÿ âåðñèÿ:
http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410 (â îäíîì ôàéëå HTML, âåðñèÿ PostScript, âåðñèÿ PDF, àðõèâ ZIP, èëè àðõèâ TAR Gzip)
Ïîñëåäíÿÿ âåðñèÿ:
http://www.w3.org/TR/xhtml-modularization
Ïðåäûäóùàÿ âåðñèÿ:
http://www.w3.org/TR/2001/PR-xhtml-modularization-20010222
Ðåäàêòîðû:
Ìþððåé Àëüòõàéì, Sun Microsystems Ôðýíê Áàìôðè, HTML Writers Guild Ñýì Äóëè, IBM Øýéí ÌàêÊàððîí, Applied Testing and Technology Ñåáàñòèàí Øíèòöåíáàóìåð, Mozquito Technologies AG Òåä Âóãîôñêè, Openwave (ðàíåå Gateway)
Copyright ©2001
W3C® (MIT, INRIA, Keio), ñ ñîõðàíåíèåì âñåõ ïðàâ. Ïðèìåíÿþòñÿ âñå íîðìàòèâû W3C, ñâÿçàííûå ñ îòâåòñòâåííîñòüþ, òîðãîâûìè ìàðêàìè, èñïîëüçîâàíèåì äîêóìåíòîâ è ëèöåíçèðîâàíèåì ïðîãðàììíîãî îáåñïå÷åíèÿ.
Ââåäåíèå
 íàñòîÿùåé ðåêîìåíäàöèè îïðåäåëÿåòñÿ àáñòðàêòíàÿ ìîäóëÿðèçàöèÿ XHTML è ðåàëèçàöèÿ åå ÷åðåç îïðåäåëåíèÿ òèïîâ äîêóìåíòîâ XML (DTD). Ìîäóëÿðèçàöèÿ îáåñïå÷èâàåò ñðåäñòâà âûäåëåíèÿ ïîäìíîæåñòâ èç ÿçûêà XHTML è åãî ðàñøèðåíèÿ - âîçìîæíîñòü, íåîáõîäèìóþ äëÿ ðàñïðîñòðàíåíèÿ XHTML íà äðóãèå ïëàòôîðìû.
Ñòàòóñ íàñòîÿùåãî äîêóìåíòà
 äàííîì ðàçäåëå îïèñàí ñòàòóñ íàñòîÿùåãî äîêóìåíòà íà ìîìåíò åãî ïóáëèêàöèè. Íàä ýòèì äîêóìåíòîì ìîãóò ïðåâàëèðîâàòü äðóãèå. Ñòàòóñ ñåðèè ýòèõ äîêóìåíòîâ ïîääåðæèâàåòñÿ W3C.
Íàñòîÿùèé äîêóìåíò ðàññìàòðèâàëñÿ ÷ëåíàìè W3C è äðóãèìè çàèíòåðåñîâàííûìè ñòîðîíàìè è îäîáðåí Äèðåêòîðîì â êà÷åñòâå Ðåêîìåíäàöèè W3C. Ýòî ïîñòîÿííûé äîêóìåíò. Îí ìîæåò èñïîëüçîâàòüñÿ â êà÷åñòâå ñïðàâî÷íèêà èëè ïðèâîäèòüñÿ â äðóãèõ äîêóìåíòàõ â êà÷åñòâå íîðìàòèâíîãî. Äàííàÿ Ðåêîìåíäàöèÿ ñîçäàâàëàñü W3C ñ öåëüþ ïðèâëå÷åíèÿ âíèìàíèÿ ê ñïåöèôèêàöèè è ðàñøèðåíèÿ ñôåðû åå ïðèìåíåíèÿ, ÷òî ïîçâîëèò ðàñøèðèòü ôóíêöèîíàëüíîñòü è âîçìîæíîñòü âçàèìîäåéñòâèÿ â Web.
Äàííûé äîêóìåíò ÿâëÿåòñÿ ðåçóëüòàòîì ðàáîòû Ðàáî÷åé ãðóïïû W3C ïî HTML (äîñòóï òîëüêî äëÿ ÷ëåíîâ êîíñîðöèóìà) â ðàìêàõ äåÿòåëüíîñòè W3C â îáëàñòè HTML. Öåëè ðàáî÷åé ãðóïïû ïî HTML îïðåäåëÿþòñÿ â õàðòèè ðàáî÷åé ãðóïïû ïî HTML. Êîíòàêòíîå ëèöî ïî ðàáîòå íàä HTML â W3C - Ìàñàÿñó Èøèêàâà (Masayasu Ishikawa).
Îòêðûòîå îáñóæäåíèå ôóíêöèé HTML âåäåòñÿ â ñïèñêå ðàññûëêè ïî àäðåñó www-html@w3.org (àðõèâ). ×òîáû ïîäïèñàòüñÿ íà ýòîò ñïèñîê, îòïðàâüòå ïèñüìî ïî àäðåñó www-html-request@w3.org, â òåìå óêàæèòå ñëîâî subscribe.
Îá îøèáêàõ, íàéäåííûõ â ýòîì äîêóìåíòå, ñîîáùàéòå ïî àäðåñó: www-html-editor@w3.org (àðõèâ). Ñïèñîê óæå îáíàðóæåííûõ â ñïåöèôèêàöèè îøèáîê ðàñïîëîæåí ïî àäðåñó http://www.w3.org/2001/04/REC-xhtml-modularization-20010410-errata.
Àíãëèéñêàÿ âåðñèÿ äàííîé ñïåöèôèêàöèè ÿâëÿåòñÿ åäèíñòâåííîé íîðìàòèâíîé âåðñèåé. Èíôîðìàöèÿ î ïåðåâåäåííûõ âåðñèÿõ äàííîãî äîêóìåíòà ðàñïîëàãàåòñÿ ïî àäðåñó http://www.w3.org/MarkUp/translations.
Ñïèñîê òåêóùèõ Ðåêîìåíäàöèé W3C è äðóãèõ òåõíè÷åñêèõ äîêóìåíòîâ ðàñïîëîæåí ïî àäðåñó http://www.w3.org/TR.
Êðàòêîå ñîäåðæàíèå
1. Ââåäåíèå
2. Òåðìèíû è îïðåäåëåíèÿ
3. Îïðåäåëåíèå êîíôîðìíîñòè
4. Îïðåäåëåíèå àáñòðàêòíûõ ìîäóëåé
5. Îïðåäåëåíèå àáñòðàêòíûõ ìîäóëåé
À. Ïîñòðîåíèå ìîäóëåé ñõåìû
Á. Ðàçðàáîòêà ñõåìû ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè
Â. Ðåàëèçàöèè ìîäóëåé ñõåìû XHTML
Ã. Ïîñòðîåíèå ìîäóëåé DTD
Ä. Ðàçðàáîòêà DTD ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè
Å. Ðåàëèçàöèè ìîäóëåé XHTML DTD
Æ. Ññûëêè
Ç. Öåëü ñîçäàíèÿ
È. Áëàãîäàðíîñòè
Ïîäðîáíîå ñîäåðæàíèå
1. Ââåäåíèå
1.1. ×òî òàêîå XHTML?
1.2. ×òî òàêîå Ìîäóëÿðèçàöèÿ XHTML?
1.3. Çà÷åì íóæíà Ìîäóëÿðèçàöèÿ XHTML?
1.3.1. Àáñòðàêòíûå ìîäóëè
1.3.2. Ðåàëèçàöèè ìîäóëåé
1.3.3. Ãèáðèäíûå òèïû äîêóìåíòîâ
1.3.4. Ïðîâåðêà êîððåêòíîñòè
1.3.5. Ìîäåëü ôîðìàòèðîâàíèÿ
2. Òåðìèíû è îïðåäåëåíèÿ
3. Îïðåäåëåíèå êîíôîðìíîñòè
3.1. Êîíôîðìíîñòü òèïîâ äîêóìåíòîâ ÿçûêó õîñòîâ XHTML
3.2. Êîíôîðìíîñòü òèïîâ äîêóìåíòîâ íàáîðó èíòåãðàöèè XHTML
3.3. Êîíôîðìíîñòü ìîäóëåé ñåìåéñòâà XHTML
3.4. Êîíôîðìíîñòü äîêóìåíòîâ ñåìåéñòâà XHTML
3.5. Êîíôîðìíîñòü ïîëüçîâàòåëüñêèõ àãåíòîâ ñåìåéñòâà XHTML
3.6. Ïðàâèëà èìåíîâàíèÿ
3.7. Ýâîëþöèÿ ìîäóëåé XHTML
4. Îïðåäåëåíèå àáñòðàêòíûõ ìîäóëåé
4.1. Ñèíòàêñè÷åñêèå ñîãëàøåíèÿ
4.2. Òèïû ñîäåðæèìîãî
4.3. Òèïû àòðèáóòîâ
4.4. Ïðèìåð îïðåäåëåíèÿ àáñòðàêòíîãî ìîäóëÿ
4.4.1. Ìîäóëü XHTML Skiing
5. Îïðåäåëåíèå àáñòðàêòíûõ ìîäóëåé
5.1. Íàáîðû àòðèáóòîâ
5.2. Îñíîâíûå ìîäóëè
5.2.1. Ìîäóëü Structure
5.2.2. Ìîäóëü Text
5.2.3. Ìîäóëü Hypertext
5.2.4. Ìîäóëü List
5.3. Ìîäóëü Applet
5.4. Äîïîëíèòåëüíûå òåêñòîâûå ìîäóëè
5.4.1. Ìîäóëü Presentation
5.4.2. Ìîäóëü Edit
5.4.3. Ìîäóëü Bi-directional Text
5.5. Ìîäóëè ôîðì
5.5.1. Ìîäóëü Basic Forms
5.5.2. Ìîäóëü Forms
5.6. Ìîäóëè òàáëèö
5.6.1. Ìîäóëü Basic Tables
5.6.2. Ìîäóëü Tables
5.7. Ìîäóëü Image
5.8. Ìîäóëü Client-side Image Map
5.9. Ìîäóëü Server-side Image Map
5.10. Ìîäóëü Object
5.11. Ìîäóëü Frames
5.12. Ìîäóëü Target
5.13. Ìîäóëü Iframe
5.14. Ìîäóëü Intrinsic Events
5.15. Ìîäóëü Metainformation
5.16. Ìîäóëü Scripting
5.17. Ìîäóëü Style Sheet
5.18. Ìîäóëü Style Attribute
5.19. Ìîäóëü Link
5.20. Ìîäóëü Base
5.21. Ìîäóëü Name Identification
5.22. Ìîäóëü Legacy
À. Ïîñòðîåíèå ìîäóëåé ñõåìû
Á. Ðàçðàáîòêà ñõåìû ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè
Â. Ðåàëèçàöèè ìîäóëåé ñõåìû XHTML
Ã. Ïîñòðîåíèå ìîäóëåé DTD
Ã.1. Èìåíîâàíèå ñóùíîñòåé ïàðàìåòðîâ
Ã.2. Îïðåäåëåíèå ïðîñòðàíñòâà èìåí ìîäóëÿ
Ã.2.1. Ïîäìîäóëü êâàëèôèöèðîâàííûõ èìåí
Ã.2.2. Ïîäìîäóëè îáúÿâëåíèé
Ã.2.3. Èñïîëüçîâàíèå ìîäóëÿ êàê àâòîíîìíîãî DTD
Ã.2.4. Îòëè÷èòåëüíûå îñîáåííîñòè ïðîñòðàíñòâ èìåí
Ä. Ðàçðàáîòêà DTD ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè
Ä.1. Îïðåäåëåíèå äîïîëíèòåëüíûõ àòðèáóòîâ
Ä.2. Îïðåäåëåíèå äîïîëíèòåëüíûõ ýëåìåíòîâ
Ä.3. Îïðåäåëåíèå ìîäåëè ñîäåðæèìîãî äëÿ íàáîðà ìîäóëåé
Ä.3.1. Èíòåãðàöèÿ àâòîíîìíîãî ìîäóëÿ â XHTML
Ä.3.2. Èñïîëüçîâàíèå íîâîãî ìîäóëÿ â ìîäóëÿõ XHTML
Ä.4. Ñîçäàíèå íîâîãî DTD
Ä.4.1. Ñîçäàíèå ïðîñòîãî DTD
Ä.4.2. Ñîçäàíèå DTD ïóòåì ðàñøèðåíèÿ XHTML
Ä.4.3. Ñîçäàíèå DTD ïóòåì óäàëåíèÿ è çàìåíû ìîäóëåé XHTML
Ä.4.4. Ñîçäàíèå íîâîãî DTD
Ä.5. Èñïîëüçîâàíèå íîâîãî DTD
Å. Ðåàëèçàöèè ìîäóëåé XHTML DTD
Å.1. Ñèìâîëüíûå ñóùíîñòè XHTML
Å.1.1. Ñèìâîëüíûå ñóùíîñòè XHTML Latin 1
Å.1.2. Ñïåöèàëüíûå ñèìâîëû XHTML
Å.1.3. Ìàòåìàòè÷åñêèå, ãðå÷åñêèå è ïðî÷èå ñèìâîëû XHTML
Å.2. Ìîäóëüíàÿ ñòðóêòóðà XHTML
Å.2.1. Áàçîâàÿ àðõèòåêòóðà XHTML
Å.2.2. Íîòàöèè XHTML
Å.2.3. Òèïû äàííûõ XHTML
Å.2.4. Îïðåäåëåíèÿ îáùèõ àòðèáóòîâ XHTML
Å.2.5. Êâàëèôèöèðîâàííûå èìåíà XHTML
Å.2.6. Ñèìâîëüíûå ñóùíîñòè XHTML
Å.3. Ðåàëèçàöèè ìîäóëåé XHTML
Å.3.1. Ìîäóëè ÿäðà XHTML
Å.3.2. Àïïëåòû
Å.3.3. Òåêñòîâûå ìîäóëè
Å.3.4. Ôîðìû
Å.3.5. Òàáëèöû
Å.3.6. Èçîáðàæåíèÿ
Å.3.7. Êëèåíòñêèå èçîáðàæåíèÿ-êàðòû
Å.3.8. Ñåðâåðíûå èçîáðàæåíèÿ-êàðòû
Å.3.9. Îáúåêòû
Å.3.10. Ôðåéìû
Å.3.11. Íàçíà÷åíèÿ
Å.3.12. Iframe
Å.3.13. Âíóòðåííèå ñîáûòèÿ
Å.3.14. Ìåòàèíôîðìàöèÿ
Å.3.15. Ñêðèïòû
Å.3.16. Òàáëèöû ñòèëåé
Å.3.17. Àòðèáóòû ñòèëÿ
Å.3.18. Ññûëêè
Å.3.19. Áàçîâûé URI
Å.3.20. Èäåíòèôèêàöèÿ èìåí
Å.3.21. Òðàäèöèîííûå ýëåìåíòû
Å.4. Ìîäóëè ïîääåðæêè XHTML DTD
Å.4.1. Ôðàçîâûå ýëåìåíòû óðîâíÿ áëîêà
Å.4.2. Ýëåìåíòû îôîðìëåíèÿ óðîâíÿ áëîêà
Å.4.3. Ñòðóêòóðíûå ýëåìåíòû óðîâíÿ áëîêà
Å.4.4. Âñòðîåííûå ôðàçîâûå ýëåìåíòû
Å.4.5. Âñòðîåííûå ýëåìåíòû îôîðìëåíèÿ
Å.4.6. Âñòðîåííûå ñòðóêòóðíûå ýëåìåíòû
Å.4.7. Ýëåìåíòû ïàðàìåòðîâ
Å.4.8. Òðàäèöèîííûå ýëåìåíòû
Æ. Ññûëêè
Æ.1. Íîðìàòèâíûå ññûëêè
Æ.2. Èíôîðìàòèâíûå ññûëêè
Ç. Öåëü ñîçäàíèÿ
Ç.1. Òðåáîâàíèÿ
Ç.1.1. Óðîâåíü ìîäóëüíîñòè
Ç.1.2. Ñîñòàâëÿåìîñòü
Ç.1.3. Ïðîñòîòà èñïîëüçîâàíèÿ
Ç.1.4. Ñîâìåñòèìîñòü
Ç.1.5. Êîíôîðìíîñòü
È. Áëàãîäàðíîñòè
1. Ââåäåíèå
Äàííûé ðàçäåë ÿâëÿåòñÿ èíôîðìàòèâíûì.
1.1. ×òî òàêîå XHTML?
XHTML ïðåäñòàâëÿåò ñîáîé ïåðåôîðìóëèðîâêó HTML 4 êàê ïðèëîæåíèÿ XML. Â XHTML 1.0 [XHTML1] îïðåäåëåíû òðè òèïà äîêóìåíòîâ XML, ñîîòâåòñòâóþùèõ òðåì DTD HTML 4: Strict (ñòðîãîå), Transitional (ïåðåõîäíîå) è Frameset (ñ ôðåéìàìè). XHTML 1.0 ïðåäñòàâëÿåò ñîáîé îñíîâó ñåìåéñòâà òèïîâ äîêóìåíòîâ - ïîäìíîæåñòâ è íàäìíîæåñòâ HTML.
1.2. ×òî òàêîå ìîäóëÿðèçàöèÿ XHTML?
Ìîäóëÿðèçàöèÿ XHTML ïðåäñòàâëÿåò ñîáîé ðàçëîæåíèå XHTML 1.0 è HTML 4 íà íàáîð àáñòðàêòíûõ ìîäóëåé, îáåñïå÷èâàþùèõ îïðåäåëåííóþ ôóíêöèîíàëüíîñòü. Òàêèå àáñòðàêòíûå ìîäóëè ðåàëèçóþòñÿ â íàñòîÿùåé ñïåöèôèêàöèè ñ ïîìîùüþ ÿçûêà îïðåäåëåíèÿ òèïîâ äîêóìåíòîâ XML, íî îæèäàåòñÿ èõ ðåàëèçàöèÿ ñ ïîìîùüþ Ñõåì XML.  íàñòîÿùåì äîêóìåíòå òàêæå îïðåäåëÿþòñÿ ïðàâèëà îïðåäåëåíèÿ àáñòðàêòíûõ ìîäóëåé è ðåàëèçàöèè èõ ñ ïîìîùüþ XML DTD.
Ìîäóëè ìîãóò îáúåäèíÿòüñÿ äðóã ñ äðóãîì è ñ äðóãèìè ìîäóëÿìè, îáðàçóÿ òèïû äîêóìåíòîâ íà áàçå ïîäìíîæåñòâ è ðàñøèðåíèé XHTML, êîòîðûå ñ÷èòàþòñÿ ÷ëåíàìè ñåìåéñòâà òèïîâ äîêóìåíòîâ XHTML.
1.3. Çà÷åì íóæíà ìîäóëÿðèçàöèÿ XHTML?
Ìîäóëÿðèçàöèÿ XHTML ïðåäñòàâëÿåò ñîáîé çàäà÷ó òùàòåëüíîãî îïðåäåëåíèÿ ïîäìíîæåñòâ ýëåìåíòîâ XHTML, êîòîðûå àâòîðû äîêóìåíòîâ, àðõèòåêòîðû òèïîâ äîêóìåíòîâ, äðóãèå ñïåöèôèêàöèè ñòàíäàðòîâ XML è ðàçðàáîò÷èêè ïðèëîæåíèé è ïðîäóêòîâ ñìîãóò îáúåäèíÿòü è äîïîëíÿòü ñ öåëüþ ñäåëàòü ðàçðàáîòêó êîíòåíòà (ñîäåðæèìîãî) íà áîëüøåì êîëè÷åñòâå ðàçíîîáðàçíûõ ïëàòôîðì ýêîíîìè÷åñêè îñóùåñòâèìîé.
Çà ïîñëåäíèå äâà ãîäà ìíîãèå ñïåöèàëèçèðîâàííûå ðûíêè îáðàòèëèñü ê HTML â êà÷åñòâå ÿçûêà êîíòåíòà (ñîäåðæèìîãî). ×èñëî ðàçëè÷íûõ ïëàòôîðì, íà êîòîðûõ ïðîèñõîäèò ïåðåõîä ê èñïîëüçîâàíèþ HTML, ïîñòîÿííî ðàñòåò.  íàñòîÿùåå âðåìÿ HTML íà÷àë ðàñïðîñòðàíåíèå íà ìîáèëüíûå (íàëàäîííèêè, ìîáèëüíûå òåëåôîíû è ò.ä.), òåëåâèçèîííûå óñòðîéñòâà (öèôðîâûå òåëåâèçîðû, web-áðàóçåðû íà áàçå òåëåâèçîðîâ è ò.ä.) è íà áûòîâûå ïðèáîðû (óñòðîéñòâà ñ ôèêñèðîâàííûì íàáîðîì ôóíêöèé). Âñå ýòè óñòðîéñòâà èìåþò ñâîè òðåáîâàíèÿ è îãðàíè÷åíèÿ.
Ìîäóëÿðèçàöèÿ XHTML ïðåäîñòàâëÿåò ðàçðàáîò÷èêàì ïðîäóêòà ñïîñîá îïðåäåëåíèÿ ïîääåðæèâàåìûõ óñòðîéñòâîì ýëåìåíòîâ ñ èñïîëüçîâàíèåì ñòàíäàðòíûõ áëîêîâ è ìåòîäîâ îïðåäåëåíèÿ èñïîëüçóåìûõ áëîêîâ. Ìîäóëè ñëóæàò êàê áû "òî÷êàìè êîíôîðìíîñòè" äëÿ êîíòåíòà (ñîäåðæèìîãî). Ïðè ðàçðàáîòêå êîíòåíòà òåïåðü ìîæíî îðèåíòèðîâàòüñÿ íà óñòàíîâëåííóþ áàçó, êîòîðàÿ ïîääåðæèâàåò îïðåäåëåííûé íàáîð ìîäóëåé, è íå áåñïîêîèòüñÿ î òîì, ïîääåðæèâàåò ëè ýòà áàçà òó èëè èíóþ êîìïîçèöèþ ýëåìåíòîâ XHTML. Ñîîòâåòñòâèå ñòàíäàðòàì êðàéíå âàæíî äëÿ óñïåøíîé ðàáîòû ìîäóëÿðèçîâàííîãî XHTML â áîëüøîì ìàñøòàáå. Ðàçðàáîò÷èêè íå ìîãóò íàñòðàèâàòü êîíòåíò íà êàæäûé êîíêðåòíûé íàáîð ýëåìåíòîâ XHTML. Åñëè æå óêàçàí ñòàíäàðò, ïðîãðàììíûå ïðîöåññû ìîãóò àâòîíîìíî íàñòðîèòü êîíòåíò äëÿ êîíêðåòíîãî óñòðîéñòâà èëè ñàìî óñòðîéñòâî ìîæåò àâòîìàòè÷åñêè çàãðóçèòü ïðîãðàììíîå îáåñïå÷åíèå, íåîáõîäèìîå äëÿ îáðàáîòêè ìîäóëÿ.
Êðîìå òîãî, ìîäóëÿðèçàöèÿ ïîçâîëÿåò ðàñøèðèòü âîçìîæíîñòè êîìïîíîâêè è ïðåäñòàâëåíèÿ XHTML ñ èñïîëüçîâàíèåì ðàñøèðÿåìîñòè XML è áåç íàðóøåíèÿ ñòàíäàðòà XHTML. Òàêîé ïóòü ðàçâèòèÿ îáåñïå÷èâàåò ñòàáèëüíóþ, ïîëåçíóþ è ðåàëèçóåìóþ áàçó äëÿ ðàçðàáîò÷èêîâ è èçäàòåëåé êîíòåíòà, ïîçâîëÿþùóþ êîíòðîëèðîâàòü áûñòðûå òåõíîëîãè÷åñêèå èçìåíåíèÿ â Web.
1.3.1. Àáñòðàêòíûå ìîäóëè
Òèï äîêóìåíòà XHTML îïðåäåëÿåòñÿ êàê íàáîð àáñòðàêòíûõ ìîäóëåé. Àáñòðàêòíûé ìîäóëü îïðåäåëÿåò îäèí òèï äàííûõ, ñåìàíòè÷åñêè îòëè÷íûé îò âñåõ îñòàëüíûõ. Àáñòðàêòíûå ìîäóëè ìîæíî îáúåäèíÿòü â òèïû äîêóìåíòîâ, íå èìåÿ ãëóáîêîãî ïðåäñòàâëåíèÿ î ëåæàùèõ â îñíîâå îïðåäåëåíèÿ ìîäóëåé ñõåìàõ.
1.3.2. Ðåàëèçàöèè ìîäóëåé
Ðåàëèçàöèÿ ìîäóëÿ ñîñòîèò èç íàáîðà òèïîâ ýëåìåíòîâ, íàáîðà îáúÿâëåíèé ñïèñêîâ àòðèáóòîâ è íàáîðà îáúÿâëåíèé ìîäåëåé ñîäåðæèìîãî; ëþáîé èç íèõ ìîæåò áûòü ïóñòûì. Îáúÿâëåíèå ñïèñêà àòðèáóòîâ â ìîäóëå ìîæåò èçìåíÿòü òèï ýëåìåíòà, îïðåäåëåííîãî âíå ýòîãî ìîäóëÿ. Îáúÿâëåíèå ìîäåëè ñîäåðæèìîãî òàêæå ìîæåò èçìåíÿòü òèï ýëåìåíòà, îïðåäåëåííîãî âíå ýòîãî ìîäóëÿ.
Îäèí èç ìåõàíèçìîâ ðåàëèçàöèè - XML DTD. XML DTD ïðåäñòàâëÿåò ñîáîé ñðåäñòâî îïèñàíèÿ ñòðóêòóðû êëàññà äîêóìåíòîâ XML, âñåõ âìåñòå íàçûâàåìûõ òèïîì äîêóìåíòà XML. XML DTD îïèñàíû â Ðåêîìåíäàöèè XML 1.0 [XML]. Äðóãîé ìåõàíèçì ðåàëèçàöèè - Ñõåìà XML, [XMLSCHEMA].
1.3.3. Ãèáðèäíûå òèïû äîêóìåíòîâ
Ãèáðèäíûé òèï äîêóìåíòà - ýòî òèï, ñîñòàâëåííûé èç íàáîðà XML DTD èëè ìîäóëåé DTD. Ãëàâíûì ïðåäíàçíà÷åíèåì îïèñàííîé â íàñòîÿùåì äîêóìåíòå ìîäåëè ìîäóëÿðèçàöèè ÿâëÿåòñÿ ïðåäîñòàâëåíèå àâòîðàì DTD âîçìîæíîñòè îáúåäèíåíèÿ ýëåìåíòîâ èç íåñêîëüêèõ àáñòðàêòíûõ ìîäóëåé â ãèáðèäíûé òèï äîêóìåíòà, ðàçðàáîòêè äîêóìåíòîâ ãèáðèäíîãî òèïà è ïðîâåðêè êîððåêòíîñòè òàêèõ äîêóìåíòîâ â ñîîòâåòñòâèè ñî ñâÿçàííûìè ñ íèìè îïðåäåëåíèÿìè òèïîâ äîêóìåíòîâ.
Îäíèì èç ñàìûõ ãëàâíûõ ïðåèìóùåñòâ XML íàä SGML ÿâëÿåòñÿ òî, ÷òî XML ïîíèæàåò áàðüåð ñòàíäàðòèçàöèè íàáîðîâ ýëåìåíòîâ, ÷òî ïîçâîëÿåò ïîëüçîâàòåëÿì îáìåíèâàòüñÿ äàííûìè â îáùåì ôîðìàòå. Îäíàêî îòíîñèòåëüíî ñòàòè÷íàÿ ïðèðîäà HTML êàê ÿçûêà ñîäåðæèìîãî äëÿ Web îçíà÷àåò, ÷òî âñå ïîëüçîâàòåëè ðàíåå ïðàêòè÷åñêè íå íàäåÿëèñü íà âîçìîæíîñòü ðàñïðîñòðàíåíèÿ èõ òèïîâ äîêóìåíòîâ XML â êà÷åñòâå ÷àñòè ñòàíäàðòîâ Web. Ìîäóëÿðèçàöèÿ äàåò âîçìîæíîñòü äèíàìè÷åñêîãî âíåäðåíèÿ ðàçëè÷íûõ òèïîâ äîêóìåíòîâ â ñåìåéñòâî òèïîâ äîêóìåíòîâ XHTML, åùå áîëåå ñíèæàÿ áàðüåð äëÿ âíåäðåíèÿ ñïåöèàëèçèðîâàííûõ ñëîâàðåé â äîêóìåíòû XHTML.
1.3.4. Ïðîâåðêà êîððåêòíîñòè
Èñïîëüçîâàíèå ïðàâèëüíî ïîñòðîåííûõ, íî íåäîïóñòèìûõ äîêóìåíòîâ ÿâëÿåòñÿ âàæíûì ïðåèìóùåñòâîì XML.  ïðîöåññå ðàçðàáîòêè òèïà äîêóìåíòà, îäíàêî, âàæíà äîïîëíèòåëüíàÿ ïðîâåðêà îøèáîê ñèíòàêñè÷åñêèì àíàëèçàòîðîì ñ ïðîâåðêîé êîððåêòíîñòè. Òî æå óòâåðæäåíèå ïðèìåíÿåòñÿ è ê òèïàì äîêóìåíòîâ XHTML ñ ýëåìåíòàìè èç íåñêîëüêèõ àáñòðàêòíûõ ìîäóëåé.
Äîêóìåíò ïðåäñòàâëÿåò ñîáîé ýêçåìïëÿð îäíîãî êîíêðåòíîãî òèïà äîêóìåíòà, îïðåäåëÿåìîãî DTD, óêàçàííûì â íà÷àëüíîé ÷àñòè äîêóìåíòà. Ïðîâåðêà êîððåêòíîñòè äîêóìåíòà - ýòî ïðîöåññ ïðîâåðêè ñîîòâåòñòâèÿ äîêóìåíòà ïðàâèëàì îïðåäåëåíèÿ òèïà.
Îäèí äîêóìåíò ìîæåò ñîñòîÿòü èç íåñêîëüêèõ ôðàãìåíòîâ. Ïðîâåðêà êîððåêòíîñòè ôðàãìåíòîâ äîêóìåíòà, ãäå âñå ôðàãìåíòû èìåþò ðàçíûå òèïû, íå îáñóæäàåòñÿ â äàííîé ìîäåëè - íåîáõîäèìàÿ äëÿ ýòîãî òåõíîëîãèÿ åùå íå îïðåäåëåíà.
Îäíàêî ìîäóëÿðèçàöèÿ ïîçâîëÿåò îáúåäèíÿòü íåñêîëüêî îïðåäåëåíèé òèïîâ äîêóìåíòîâ è îáðàçîâûâàòü íîâûå òèïû (íàïðèìåð, èíòåãðèðîâàííûé â XHTML SVG). Íîâîå îïðåäåëåíèå òèïà äîêóìåíòà ìîæåò èñïîëüçîâàòüñÿ äëÿ îáû÷íîé ïðîâåðêè êîððåêòíîñòè XML 1.0.
1.3.5. Ìîäåëü ôîðìàòèðîâàíèÿ
 ðàííèõ âåðñèÿõ ÿçûêà HTML ïðåäïðèíèìàëèñü ïîïûòêè îïðåäåëåíèÿ ÷àñòåé ìîäåëè, êîòîðûå ïîëüçîâàòåëüñêèå àãåíòû îáÿçàòåëüíî äîëæíû èñïîëüçîâàòü ïðè ôîðìàòèðîâàíèè äîêóìåíòà. Ñ ïðèõîäîì HTML 4 W3C íà÷àë ïðîöåññ ðàçäåëåíèÿ ïðåäñòàâëåíèÿ è ñòðóêòóðû.  XHTML 1.0 ýòî ðàçäåëåíèå ïðîäîëæàåòñÿ, à â äàííîì äîêóìåíòå ðàçâèâàåòñÿ åùå áîëüøå. Ïîýòîìó â íàñòîÿùåì äîêóìåíòå íå ôîðìóëèðóþòñÿ òðåáîâàíèÿ ê ìîäåëè ôîðìàòèðîâàíèÿ, ñâÿçàííîé ñ ïðåäñòàâëåíèåì äîêóìåíòîâ, ðàçìå÷åííûõ ñ èñïîëüçîâàíèåì òèïîâ äîêóìåíòîâ XHTML.
Âìåñòî ýòîãî íàñòîÿùèé äîêóìåíò ðåêîìåíäóåò àâòîðàì êîíòåíòà äëÿ îïðåäåëåíèÿ ìîäåëåé ôîðìàòèðîâàíèÿ ïîëàãàòüñÿ íà ìåõàíèçìû ñ èñïîëüçîâàíèåì ñòèëåé, òàêèå êàê CSS. Åñëè ïîëüçîâàòåëüñêèå àãåíòû ïîääåðæèâàþò ìåõàíèçìû ðàáîòû ñî ñòèëÿìè, äîêóìåíòû áóäóò ôîðìàòèðîâàòüñÿ äîëæíûì îáðàçîì. Åñëè ïîëüçîâàòåëüñêèå àãåíòû íå ïîääåðæèâàþò ìåõàíèçìû ðàáîòû ñî ñòèëÿìè, äîêóìåíòû áóäóò ôîðìàòèðîâàòüñÿ ïîäõîäÿùèì äëÿ ïîëüçîâàòåëüñêîãî àãåíòà îáðàçîì. Ýòî îáåñïå÷èâàåò ïîëüçîâàòåëüñêèì àãåíòàì ñåìåéñòâà XHTML ïîääåðæêó áîãàòûõ ìîäåëåé ôîðìàòèðîâàíèÿ íà òåõ óñòðîéñòâàõ, íà êîòîðûõ îíè ìîãóò èñïîëüçîâàòüñÿ, è ìåíåå áîãàòûõ ìîäåëåé ôîðìàòèðîâàíèÿ íà óñòðîéñòâàõ, íà êîòîðûõ ýòî íåîáõîäèìî.
2. Òåðìèíû è îïðåäåëåíèÿ
Äàííûé ðàçäåë ÿâëÿåòñÿ èíôîðìàòèâíûì.
Îïðåäåëåíèÿ íåêîòîðûì òåðìèíàì äàþòñÿ â òåêñòå äîêóìåíòà, íåêîòîðûå æå èñïîëüçóþòñÿ ïî âñåìó äîêóìåíòó. Íàñòîÿòåëüíî ðåêîìåíäóåòñÿ îçíàêîìèòüñÿ ñ Ðåêîìåíäàöèåé W3C XML 1.0 [XML].
àáñòðàêòíûé ìîäóëü
åäèíèöà ñïåöèôèêàöèè òèïà äîêóìåíòà, ñîîòâåòñòâóþùàÿ èíäèâèäóàëüíîìó òèïó ñîäåðæèìîãî, ñîîòâåòñòâóþùåãî êîíñòðóêöèè ðàçìåòêè, îòðàæàþùåé ýòîò èíäèâèäóàëüíûé òèï.
ãèáðèäíûé äîêóìåíò
Ãèáðèäíûé äîêóìåíò - ýòî äîêóìåíò, â êîòîðîì èñïîëüçóåòñÿ íåñêîëüêî ïðîñòðàíñòâ èìåí XML. Ãèáðèäíûå äîêóìåíòû ìîãóò îïðåäåëÿòüñÿ êàê äîêóìåíòû, ñîäåðæàùèå ýëåìåíòû èëè àòðèáóòû ãèáðèäíûõ òèïîâ äîêóìåíòîâ.
äðàéâåð
îáû÷íî êîðîòêèé ôàéë, èñïîëüçóåìûé äëÿ îáúÿâëåíèÿ è èíèöèàëèçàöèè ìîäóëåé DTD. Ïðàêòè÷åñêîå ïðàâèëî: äðàéâåð DTD íå ñîäåðæèò îáúÿâëåíèé ðàçìåòêè, çàêëþ÷àþùèõ êàêóþ-ëèáî ÷àñòü ñàìîé ìîäåëè äîêóìåíòà.
èíèöèàëèçèðîâàòü
çàìåíèòü ññûëêè íà ñóùíîñòè ýêçåìïëÿðàìè èõ îáúÿâëåííîãî ñîäåðæèìîãî.
ìîäåëü äîêóìåíòà
ýôôåêòèâíàÿ ñòðóêòóðà è îãðàíè÷åíèÿ íà äàííûé òèï äîêóìåíòà. Ìîäåëü äîêóìåíòà îáðàçóåò àáñòðàêòíîå ïðåäñòàâëåíèå ôèçè÷åñêîé èëè ñåìàíòè÷åñêîé ñòðóêòóðû êëàññà äîêóìåíòîâ.
ìîäåëü ìîäóëÿðèçàöèè
àáñòðàêòíûé äèçàéí îïðåäåëåíèÿ òèïà äîêóìåíòà (DTD) äëÿ äîñòèæåíèÿ öåëåé ìîäóëÿðèçàöèè, òàêèõ êàê âîçìîæíîñòü ïîâòîðíîãî èñïîëüçîâàíèÿ, ðàñøèðÿåìîñòü, âûðàçèòåëüíîñòü, ïðîñòîòà äîêóìåíòèðîâàíèÿ, îáúåì êîäà, ïîñëåäîâàòåëüíîñòü è èíòóèòèâíîñòü èñïîëüçîâàíèÿ. Ñëåäóåò îòìåòèòü, ÷òî ìîäåëü ìîäóëÿðèçàöèè òîëüêî îðòîãîíàëüíî îòíîñèòñÿ ê îïèñûâàåìîé åþ ìîäåëè äîêóìåíòà, òàê ÷òî äâå ñîâåðøåííî ðàçíûå ìîäåëè ìîäóëÿðèçàöèè ìîãóò îïèñûâàòü îäèí è òîò æå òèïà äîêóìåíòà.
ìîäåëü ðàçìåòêè
ñëîâàðü ðàçìåòêè (ò.å. âñå èìåíà àòðèáóòîâ è ýëåìåíòîâ, íîòàöèè è ò.ä.) è ãðàììàòèêè (ò.å. îïèñàíèå èñïîëüçîâàíèÿ äàííîãî ñëîâàðÿ) â ñîîòâåòñòâèè ñ îïðåäåëåíèåì òèïà äîêóìåíòà (ò.å. ñõåìû). Ìîäåëü ðàçìåòêè - ýòî êîíêðåòíîå ïðåäñòàâëåíèå ìîäåëè äîêóìåíòà â ñèíòàêñèñå ðàçìåòêè, îíî ìîæåò îïðåäåëÿòüñÿ ñ ðàçëè÷íûìè óðîâíÿìè ñòðîãîé êîíôîðìíîñòè. Îäíà è òà æå ìîäåëü ðàçìåòêè ìîæåò ïðåäñòàâëÿòüñÿ ìíîæåñòâîì ðàçëè÷íûõ ìîäåëåé ðàçìåòêè.
ìîäåëü ñîäåðæèìîãî
îáúÿâëåííàÿ ñòðóêòóðà ðàçìåòêè, äîïóñòèìàÿ â ýêçåìïëÿðàõ ýëåìåíòà îïðåäåëåííîãî òèïà.  XML 1.0 ðàçëè÷àþòñÿ äâà òèïà: ýëåìåíòû, èìåþùèå òîëüêî ñîäåðæèìîå ýëåìåíòà (íå ñîäåðæàùèå ñèìâîëüíûõ äàííûõ) è ýëåìåíòû ñî ñìåøàííûì ñîäåðæèìûì (ýëåìåíòû ìîãóò ñîäåðæàòü ñèìâîëüíûå äàííûå è äî÷åðíèå ýëåìåíòû). Ïîñëåäíèå õàðàêòåðèçóþòñÿ ñïåöèôèêàöèåé ñîäåðæèìîãî, íà÷èíàþùåéñÿ ñî ñòðîêè "#PCDATA" (îòìå÷àþùåé ñèìâîëüíûå äàííûå).
ìîäóëü
àáñòðàêòíàÿ åäèíèöà ìîäåëè äîêóìåíòà, âûðàæàåìàÿ êàê ôðàãìåíò DTD è èñïîëüçóåìàÿ äëÿ îáúåäèíåíèÿ îáúÿâëåíèé ðàçìåòêè ñ öåëüþ ïîâûøåíèÿ ãèáêîñòè, èçìåíÿåìîñòè, âîçìîæíîñòè ïîâòîðíîãî èñïîëüçîâàíèÿ è ïîíèìàíèÿ êîíêðåòíûõ ëîãè÷åñêèõ èëè ñåìàíòè÷åñêèõ ñòðóêòóð.
ìîäóëÿðèçàöèÿ
ðåàëèçàöèÿ ìîäåëè ìîäóëÿðèçàöèè; ïðîöåññ êîìïîçèöèè èëè äåêîìïîçèöèè DTD ïóòåì ðàçäåëåíèÿ åãî îáúÿâëåíèé ðàçìåòêè íà åäèíèöû èëè ãðóïïû, ñîîòâåòñòâóþùèå îïðåäåëåííîé öåëè. Ìîäóëè ìîãóò, íî íå îáÿçàòåëüíî äîëæíû ñóùåñòâîâàòü êàê îòäåëüíûå ôàéëîâûå ñóùíîñòè (ò.å. ôèçè÷åñêàÿ è ëîãè÷åñêàÿ ñòðóêòóðû DTD ìîãóò áûòü îòðàæåíèåì äðóã äðóãà, íî ýòî íå ÿâëÿåòñÿ îáÿçàòåëüíûì òðåáîâàíèåì).
îáùèé èäåíòèôèêàòîð
èìÿ, èäåíòèôèöèðóþùåå òèï ýëåìåíòà, À òàêæå èìÿ òèïà ýëåìåíòà.
îáúÿâëåíèå ðàçìåòêè
ñèíòàêñè÷åñêàÿ êîíñòðóêöèÿ â DTD ñ îáúÿâëåíèåì ñóùíîñòè èëè îïðåäåëåíèåì ñòðóêòóðû ðàçìåòêè.  XML DTD èìååòñÿ ÷åòûðå ñïåöèàëüíûõ òèïà: îáúÿâëåíèå ñóùíîñòè îïðåäåëÿåò ñâÿçü ìåæäó ìíåìîíè÷åñêèì ñèìâîëîì è åãî çàìåíÿþùèì ñîäåðæèìûì; îáúÿâëåíèå ýëåìåíòà îãðàíè÷èâàåò òèïû ýëåìåíòîâ, ìîãóùèõ áûòü åãî ïîòîìêàìè (ñì. òàêæå ìîäåëü ñîäåðæèìîãî); îáúÿâëåíèå ñïèñêà îïðåäåëåíèé àòðèáóòîâ îïðåäåëÿåò íàáîð àòðèáóòîâ äëÿ äàííîãî òèïà ýëåìåíòà, à òàêæå ìîæåò óñòàíàâëèâàòü îãðàíè÷åíèÿ íà òèï è çíà÷åíèÿ ïî óìîë÷àíèþ; îáúÿâëåíèå íîòàöèè îïðåäåëÿåò ñâÿçü ìåæäó èìåíåì íîòàöèè è âíåøíèì èäåíòèôèêàòîðîì, îòíîñÿùèìñÿ ê ôîðìàòó íåàíàëèçèðóåìîé ñóùíîñòè.
îïðåäåëåíèå òèïà äîêóìåíòà (DTD)
ôîðìàëüíîå ìàøèíî÷èòàåìîå âûðàæåíèå ñòðóêòóðû è ïðàâèë ñèíòàêñèñà XML, êîòîðîìó äîëæåí ñîîòâåòñòâîâàòü ýêçåìïëÿð äîêóìåíòà êîíêðåòíîãî òèïà; òèï ñõåìû, èñïîëüçóåìîé â XML 1.0 äëÿ ïðîâåðêè êîíôîðìíîñòè ýêçåìïëÿðà äîêóìåíòà îáúÿâëåííîìó òèïó. Îäíà è òà æå ìîäåëü ðàçìåòêè ìîæåò ïðåäñòàâëÿòüñÿ ìíîæåñòâîì ðàçëè÷íûõ DTD.
ïàðàìåòðè÷åñêàÿ ñóùíîñòü
ñóùíîñòü, îáëàñòü èñïîëüçîâàíèÿ êîòîðîé íàõîäèòñÿ â ïðîëîãå äîêóìåíòà (ò.å. âíåøíåì ïîäìíîæåñòâå/DTD èëè âíóòðåííåì ïîäìíîæåñòâå). Ñóùíîñòè ïàðàìåòðîâ â ýêçåìïëÿðå äîêóìåíòà çàïðåùåíû.
ññûëêà íà ñóùíîñòü
ìíåìîíè÷åñêàÿ ñòðîêà, èñïîëüçóåìàÿ â êà÷åñòâå ññûëêè íà ñîäåðæèìîå îáúÿâëåííîé ñóùíîñòè (íàïðèìåð, "&" äëÿ "&", "<" äëÿ "<", "©" äëÿ "©".)
ñóùíîñòü
ñóùíîñòü - ýòî ëîãè÷åñêàÿ èëè ôèçè÷åñêàÿ åäèíèöà õðàíåíèÿ ñîäåðæèìîãî äîêóìåíòà. Ñóùíîñòè ìîãóò ñîñòàâëÿòüñÿ èç ïîääàþùèõñÿ ñèíòàêñè÷åñêîìó àíàëèçó ñèìâîëüíûõ äàííûõ èëè ðàçìåòêè XML èëè èç íåàíàëèçèðóåìîãî (ò.å. íå îòíîñÿùåãîñÿ ê XML, è, âîçìîæíî, íåòåêñòîâîãî) ñîäåðæèìîãî. Ñîäåðæèìîå ñóùíîñòè ìîæåò ïîëíîñòüþ îïðåäåëÿòüñÿ âíóòðè ñóùíîñòè äîêóìåíòà ("âíóòðåííèå ñóùíîñòè") èëè áûòü âíåøíèì ïî îòíîøåíèþ ê ñóùíîñòè äîêóìåíòà ("âíåøíèå ñóùíîñòè").  àíàëèçèðóåìûõ ñóùíîñòÿõ çàìåíÿþùèé òåêñò ìîæåò âêëþ÷àòü ññûëêè íà äðóãèå ñóùíîñòè.
òåã
îïèñàòåëüíàÿ ðàçìåòêà, îáîçíà÷àþùàÿ íà÷àëî è êîíåö (âêëþ÷àÿ îáùèé èäåíòèôèêàòîð è âñå àòðèáóòû) ýëåìåíòà.
òèï äîêóìåíòà
êëàññ äîêóìåíòîâ, èñïîëüçóþùèõ îäèíàêîâóþ àáñòðàêòíóþ ñòðóêòóðó. Îïðåäåëåíèå ISO 8879 [SGML]: "êëàññ äîêóìåíòîâ, èìåþùèõ ñõîäíûå õàðàêòåðèñòèêè; íàïðèìåð, æóðíàë, ñòàòüÿ, ðóêîâîäñòâî èëè çàïèñêà. (4.102)"
òèï ðîäèòåëüñêîãî äîêóìåíòà
Òèï ðîäèòåëüñêîãî äîêóìåíòà äëÿ ãèáðèäíîãî äîêóìåíòà - ýòî òèï äîêóìåíòà êîðíåâîãî ýëåìåíòà.
òèï ýëåìåíòà
îïðåäåëåíèå ýëåìåíòà, ò.å. êîíòåéíåð èíäèâèäóàëüíîãî ñåìàíòè÷åñêîãî êëàññà ñîäåðæèìîãî äîêóìåíòà.
ýëåìåíò
ýêçåìïëÿð òèïà ýëåìåíòà.
3. Îïðåäåëåíèå êîíôîðìíîñòè
Äàííûé ðàçäåë ÿâëÿåòñÿ íîðìàòèâíûì.
Äëÿ ãàðàíòèè ìàêñèìàëüíîé ïåðåíîñèìîñòè äîêóìåíòîâ ñåìåéñòâà XHTML ìåæäó ïîëüçîâàòåëüñêèìè àãåíòàìè ñåìåéñòâà XHTML â íàñòîÿùåé ñïåöèôèêàöèè æåñòêî îïðåäåëÿþòñÿ òðåáîâàíèÿ êîíôîðìíîñòè äëÿ íèõ îáîèõ è äëÿ òèïîâ äîêóìåíòîâ ñåìåéñòâà XHTML. Õîòÿ â äàííîì ðàçäåëå è èìåþòñÿ îïðåäåëåíèÿ êîíôîðìíîñòè, îíè îáÿçàòåëüíî ññûëàþòñÿ íà íîðìàòèâíûé òåêñò â íàñòîÿùåì äîêóìåíòå, â áàçîâîé ñïåöèôèêàöèè XHTML [XHTML1] è â äðóãèõ ñâÿçàííûõ ñ íèìè ñïåöèôèêàöèÿõ. ×òîáû ïîëíîñòüþ ïîíÿòü òðåáîâàíèÿ êîíôîðìíîñòè XHTML, íåîáõîäèìî ïîëíîñòüþ ïðî÷åñòü âñå íîðìàòèâíûå ññûëêè.
 ýòîì äîêóìåíòå òàêèå êëþ÷åâûå ñëîâà êàê "ÄÎËÆÅÍ", "ÍÅ ÄÎËÆÅÍ", "ÒÐÅÁÓÅÒÑß", "ÍÓÆÍÎ", "ÍÅ ÍÓÆÍÎ", "ÑËÅÄÓÅÒ", "ÐÅÊÎÌÅÍÄÓÅÒÑß", "ÌÎÆÅÒ ÁÛÒÜ" è "ÍÅÎÁßÇÀÒÅËÜÍÎ" èíòåðïðåòèðóþòñÿ àíàëîãè÷íî òîìó, êàê ýòî äåëàåòñÿ ñ àíãëèéñêèìè ýêâèâàëåíòàìè â ñòàíäàðòå RFC 2119 (ñì. [RFC2119]).
3.1. Êîíôîðìíîñòü òèïîâ äîêóìåíòîâ ÿçûêó õîñòîâ XHTML
Èñïîëüçóÿ êàê îïðåäåëåííûå â íàñòîÿùåé ñïåöèôèêàöèè, òàê è äðóãèå ìîäóëè, âû ìîæåòå èçìåíÿòü ñóùåñòâóþùèå è îïðåäåëÿòü ïîëíîñòüþ íîâûå òèïû äîêóìåíòîâ. Òàêîé òèï äîêóìåíòîâ ÿâëÿåòñÿ "êîíôîðìíûì ÿçûêó õîñòîâ XHTML", åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì êðèòåðèÿì:
Òèï äîêóìåíòà äîëæåí áûòü îïðåäåëåí ñ èñïîëüçîâàíèåì îäíîãî èç ìåòîäîâ ðåàëèçàöèè, îïðåäåëåííûõ W3C. Íà äàííûé ìîìåíò åäèíñòâåííûì ìåòîäîì ÿâëÿåòñÿ XML DTD, íî ñêîðî ïîÿâèòñÿ ñõåìà XML. Â äàííîì ðàçäåëå ìû áóäåì ãîâîðèòü "DTD", õîòÿ âîçìîæíû è äðóãèå ðåàëèçàöèè.
DTD, îïðåäåëÿþùåå òèï äîêóìåíòà, äîëæíî èìåòü óíèêàëüíûé èäåíòèôèêàòîð â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ïðàâèëàõ èìåíîâàíèÿ, èñïîëüçóþùèé â êà÷åñòâå ïåðâîé ìåòêè îòêðûòîãî òåêñòîâîãî îïèñàíèÿ ñòðîêó "XHTML".
DTD, îïðåäåëÿþùåå òèï äîêóìåíòà, äîëæíî âêëþ÷àòü, êàê ìèíèìóì, ìîäóëè Structure, Hypertext, Text è List, îïðåäåëåííûå â íàñòîÿùåé ñïåöèôèêàöèè.
Äëÿ êàæäîãî èç îïðåäåëåííûõ W3C âêëþ÷àåìûõ ìîäóëåé âñå ýëåìåíòû, àòðèáóòû, òèïû àòðèáóòîâ (âêëþ÷àÿ âñå îáÿçàòåëüíûå íóìåðîâàííûå ñïèñêè çíà÷åíèé) è âñå îáÿçàòåëüíûå ìèíèìàëüíûå ìîäåëè ñîäåðæèìîãî äîëæíû âêëþ÷àòüñÿ (è ìîãóò ðàñøèðÿòüñÿ) â ìîäåëü ñîäåðæèìîãî òèïà äîêóìåíòà. Ïðè ðàñøèðåíèè ìîäåëåé ñîäåðæèìîãî âñå ýëåìåíòû è àòðèáóòû (à òàêæå èõ òèïû èëè îáÿçàòåëüíûå íóìåðîâàííûå ñïèñêè çíà÷åíèé), îáÿçàòåëüíûå â èñõîäíîé ìîäåëè ñîäåðæèìîãî, äîëæíû áûòü îáÿçàòåëüíûìè.
 DTD, îïðåäåëÿþùåì òèï äîêóìåíòà, ìîãóò îïðåäåëÿòüñÿ äîïîëíèòåëüíûå ýëåìåíòû è àòðèáóòû. Îäíàêî îíè äîëæíû íàõîäèòüñÿ â ñîáñòâåííîì ïðîñòðàíñòâå èìåí XML [XMLNAMES].
3.2. Êîíôîðìíîñòü òèïîâ äîêóìåíòîâ íàáîðó èíòåãðàöèè XHTML
Âû ìîæåòå îïðåäåëèòü òèïû äîêóìåíòîâ, ïîñòðîåííûå íà îñíîâå íà XHTML, íî íå ñîáëþäàþùèå åãî ñòðóêòóðó. Òàêîé òèï äîêóìåíòîâ ÿâëÿåòñÿ "êîíôîðìíûì íàáîðó èíòåãðàöèè XHTML", åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì êðèòåðèÿì:
Òèï äîêóìåíòà äîëæåí áûòü îïðåäåëåí ñ èñïîëüçîâàíèåì îäíîãî èç ìåòîäîâ ðåàëèçàöèè, îïðåäåëåííûõ W3C. Íà äàííûé ìîìåíò åäèíñòâåííûì ìåòîäîì ÿâëÿåòñÿ XML DTD, íî ñêîðî ïîÿâèòñÿ ñõåìà XML. Â äàííîì ðàçäåëå ìû áóäåì ãîâîðèòü "DTD", õîòÿ âîçìîæíû è äðóãèå ðåàëèçàöèè.
DTD, îïðåäåëÿþùåå òèï äîêóìåíòà, äîëæíî èìåòü óíèêàëüíûé èäåíòèôèêàòîð â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ïðàâèëàõ èìåíîâàíèÿ, èñïîëüçóþùèé ñòðîêó "XHTML" ÍÅ â ïåðâîé ìåòêå îòêðûòîãî òåêñòîâîãî îïèñàíèÿ.
DTD, îïðåäåëÿþùåå òèï äîêóìåíòà, äîëæíî âêëþ÷àòü êàê ìèíèìóì ìîäóëè Hypertext, Text è List, îïðåäåëåííûå â íàñòîÿùåé ñïåöèôèêàöèè.
Äëÿ êàæäîãî èç îïðåäåëåííûõ W3C âêëþ÷àåìûõ ìîäóëåé âñå ýëåìåíòû, àòðèáóòû, òèïû àòðèáóòîâ (âêëþ÷àÿ âñå îáÿçàòåëüíûå íóìåðîâàííûå ñïèñêè çíà÷åíèé) è âñå îáÿçàòåëüíûå ìèíèìàëüíûå ìîäåëè ñîäåðæèìîãî äîëæíû âêëþ÷àòüñÿ (è ìîãóò ðàñøèðÿòüñÿ) â ìîäåëü ñîäåðæèìîãî òèïà äîêóìåíòà. Ïðè ðàñøèðåíèè ìîäåëåé ñîäåðæèìîãî âñå ýëåìåíòû è àòðèáóòû (à òàêæå èõ òèïû èëè îáÿçàòåëüíûå íóìåðîâàííûå ñïèñêè çíà÷åíèé), îáÿçàòåëüíûå â èñõîäíîé ìîäåëè ñîäåðæèìîãî, äîëæíû áûòü îáÿçàòåëüíûìè.
 DTD, îïðåäåëÿþùåì òèï äîêóìåíòà, ìîãóò îïðåäåëÿòüñÿ äîïîëíèòåëüíûå ýëåìåíòû è àòðèáóòû. Îäíàêî îíè äîëæíû íàõîäèòüñÿ â ñîáñòâåííîì ïðîñòðàíñòâå èìåí XML [XMLNAMES].
3.3. Êîíôîðìíîñòü ìîäóëåé ñåìåéñòâà XHTML
 íàñòîÿùåé ñïåöèôèêàöèè îïðåäåëÿåòñÿ ìåòîä îïðåäåëåíèÿ êîíôîðìíûõ XHTML ìîäóëåé. Ìîäóëü êîíôîðìåí äàííîé ñïåöèôèêàöèè, åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì óñëîâèÿì:
Òèï äîêóìåíòà äîëæåí áûòü îïðåäåëåí ñ èñïîëüçîâàíèåì îäíîãî èç ìåòîäîâ ðåàëèçàöèè, îïðåäåëåííûõ W3C. Íà äàííûé ìîìåíò åäèíñòâåííûì ìåòîäîì ÿâëÿåòñÿ XML DTD, íî ñêîðî ïîÿâèòñÿ ñõåìà XML. Â äàííîì ðàçäåëå ìû áóäåì ãîâîðèòü "DTD", õîòÿ âîçìîæíû è äðóãèå ðåàëèçàöèè.
Îïðåäåëÿþùåå ìîäóëü DTD äîëæíî èìåòü óíèêàëüíûé èäåíòèôèêàòîð â ñîîòâåòñòâèè ñ ïðàâèëàìè èìåíîâàíèÿ.
Åñëè ìîäóëü îïðåäåëåí ñ ïîìîùüþ XML DTD, èìåíà ïàðàìåòðè÷åñêèõ ñóùíîñòåé â íåì äîëæíû áûòü îòäåëåíû çà ñ÷åò èñïîëüçîâàíèÿ óíèêàëüíûõ ïðåôèêñîâ èëè ñ èñïîëüçîâàíèåì äðóãèõ àíàëîãè÷íûõ ìåòîäîâ.
Îïðåäåëåíèå ìîäóëÿ äîëæíî èìåòü îïðåäåëåíèå ñ îïèñàíèåì ñèíòàêñè÷åñêèõ è ñåìàíòè÷åñêèõ òðåáîâàíèé ê ýëåìåíòàì, àòðèáóòàì è/èëè ìîäåëÿì ñîäåðæèìîãî îáúÿâëÿåìîãî ìîäóëÿ.
 îïðåäåëåíèè ìîäóëÿ íå äîëæíû çàíîâî èñïîëüçîâàòüñÿ èìåíà ýëåìåíòîâ, îïðåäåëåííûå â äðóãèõ îïðåäåëåííûõ ìîäóëÿõ W3C, çà èñêëþ÷åíèåì ñëó÷àÿ, êîãäà ìîäåëü ñîäåðæèìîãî è ñåìàíòèêà ýòèõ ýëåìåíòîâ èäåíòè÷íû îðèãèíàëó èëè ðàñøèðåíèþ îðèãèíàëà èëè êîãäà èìåíà çàíîâî èñïîëüçóåìûõ ýëåìåíòîâ íàõîäÿòñÿ â ñîáñòâåííîì ïðîñòðàíñòâå èìåí (ñì. íèæå).
Ýëåìåíòû è àòðèáóòû â îïðåäåëåíèè ìîäóëÿ äîëæíû áûòü ÷àñòüþ ïðîñòðàíñòâà èìåí XML [XMLNAMES]. Åñëè ìîäóëü îïðåäåëåí íå W3C, à äðóãîé îðãàíèçàöèåé, ýòî ïðîñòðàíñòâî èìåí ÍÅ äîëæíî ñîâïàäàòü ñ ïðîñòðàíñòâîì èìåí, â êîòîðîì îïðåäåëåíû äðóãèå ìîäóëè W3C.
3.4. Êîíôîðìíîñòü äîêóìåíòîâ ñåìåéñòâà XHTML
Êîíôîðìíûé äîêóìåíò ñåìåéñòâà XHTML - ýòî äîïóñòèìûé ýêçåìïëÿð òèïà äîêóìåíòà, êîíôîðìíîãî ÿçûêó õîñòîâ XHTML.
3.5. Êîíôîðìíîñòü ïîëüçîâàòåëüñêèõ àãåíòîâ ñåìåéñòâà XHTML
Êîíôîðìíûé ïîëüçîâàòåëüñêèé àãåíò äîëæåí ñîîòâåòñòâîâàòü âñåì ïåðå÷èñëåííûì íèæå óñëîâèÿì (êàê îïðåäåëåíî â [XHTML1]):
Äëÿ ñîîòâåòñòâèÿ ðåêîìåíäàöèè XML 1.0 [XML] ïîëüçîâàòåëüñêèé àãåíò äîëæåí ïðîâîäèòü ñèíòàêñè÷åñêèé ðàçáîð äîêóìåíòà XHTML è îöåíèâàòü åãî ïðàâèëüíîñòü. Åñëè ïîëüçîâàòåëüñêèé àãåíò ñ÷èòàåòñÿ àãåíòîì ñ ïðîâåðêîé ïðàâèëüíîñòè, â ñîîòâåòñòâèè ñ [XML] îí äîëæåí òàêæå ïðîâåðÿòü ñîîòâåòñòâèå äîêóìåíòîâ DTD, íà êîòîðûå îíè ññûëàþòñÿ.
Åñëè ïîëüçîâàòåëüñêèé àãåíò ïîääåðæèâàåò âîçìîæíîñòè, îïðåäåëåííûå â íàñòîÿùåé ñïåöèôèêàöèè èëè îáÿçàòåëüíûå ñîãëàñíî íîðìàòèâíîé ññûëêå, îí äîëæåí ýòî äåëàòü â ñîîòâåòñòâèè ñî ñïîñîáàìè, îïèñàííûìè â îïðåäåëåíèè ýòîé âîçìîæíîñòè.
Åñëè ïîëüçîâàòåëüñêèé àãåíò îáðàáàòûâàåò äîêóìåíò XHTML êàê îáùèé äîêóìåíò [XML], â êà÷åñòâå èäåíòèôèêàòîðîâ ôðàãìåíòîâ îí äîëæåí ðàñïîçíàâàòü òîëüêî àòðèáóòû òèïà ID (íàïðèìåð, àòðèáóò id áîëüøèíñòâà ýëåìåíòîâ XHTML).
Åñëè ïîëüçîâàòåëüñêèé àãåíò íå ðàñïîçíàåò âñòðå÷åííûé ýëåìåíò, îí äîëæåí ïðîäîëæèòü îáðàáîòêó äî÷åðíåãî ýëåìåíòà.  ñëó÷àå òåêñòîâîãî ñîäåðæèìîãî òåêñò äîëæåí áûòü ïðåäñòàâëåí ïîëüçîâàòåëþ.
Åñëè ïîëüçîâàòåëüñêèé àãåíò íå ðàñïîçíàåò âñòðå÷åííûé àòðèáóò, îí äîëæåí ïðîèãíîðèðîâàòü âñþ ñïåöèôèêàöèþ àòðèáóòà (ò.å. àòðèáóò è åãî çíà÷åíèå).
Åñëè ïîëüçîâàòåëüñêèé àãåíò íå ðàñïîçíàåò çíà÷åíèå âñòðå÷åííîãî àòðèáóòà, îí äîëæåí èñïîëüçîâàòü çíà÷åíèå ýòîãî àòðèáóòà ïî óìîë÷àíèþ.
Åñëè ïîëüçîâàòåëüñêèé àãåíò âñòðå÷àåò ññûëêó íà ñóùíîñòü (îòëè÷íóþ îò çàðàíåå îïðåäåëåííûõ ñóùíîñòåé), äëÿ êîòîðîé îí íå îáðàáàòûâàë îáúÿâëåíèÿ (÷òî ìîãëî ïðîèçîéòè, åñëè îáúÿâëåíèå ðàñïîëîæåíî âî âíåøíåì ïîäìíîæåñòâå, êîòîðîå ïîëüçîâàòåëüñêèé àãåíò íå ïðî÷åë), ññûëêà íà ñóùíîñòü äîëæíà ãåíåðèðîâàòüñÿ â âèäå ñîñòàâëÿþùèõ åå ñèìâîëîâ (íà÷èíàÿ ñ àìïåðñàíäà è çàêàí÷èâàÿ òî÷êîé ñ çàïÿòîé).
Âî âðåìÿ ãåíåðàöèè ñîäåðæèìîãî ïîëüçîâàòåëüñêèå àãåíòû, åñëè îíè âñòðå÷àþò ðàñïîçíàâàåìûå, íî íåãåíåðèðóåìûå ñèìâîëû èëè ññûëêè íà ñèìâîëüíûå ñóùíîñòè, äîëæíû ïðåäñòàâëÿòü äîêóìåíò òàêèì îáðàçîì, ÷òîáû ïîëüçîâàòåëþ áûëî ïîíÿòíî, ÷òî êîððåêòíî ñãåíåðèðîâàòü äîêóìåíò íå óäàëîñü.
Ïðîáåëüíûå ñèìâîëû äîëæíû îáðàáàòûâàòüñÿ ïî ñëåäóþùèì ïðàâèëàì. Ñëåäóþùèå ñèìâîëû îïðåäåëåíû â [XML] êàê ïðîáåëüíûå:
ïðîáåë ( )
òàáóëÿöèÿ (	)
âîçâðàò êàðåòêè (
)
ïåðåâîä ñòðîêè (
)
Ïðîöåññîð XML ïðèâîäèò êîäû êîíöà ñòðîêè, ðàçëè÷íûå â ðàçëè÷íûõ â ñèñòåìàõ, ê îäíîìó ñèìâîëó ïåðåâîäà ñòðîêè, êîòîðûé ïåðåäàåòñÿ â ïðèëîæåíèå.
Ïîëüçîâàòåëüñêèé àãåíò äîëæåí îáðàáàòûâàòü ïðîáåëüíûå ñèìâîëû â ïîëó÷åííûõ îò ïðîöåññîðà XML äàííûõ ñëåäóþùèì îáðàçîì:
Âñå ïðîáåëüíûå ñèìâîëû, îêðóæàþùèå ýëåìåíòû áëîêà, äîëæíû óäàëÿòüñÿ.
Êîììåíòàðèè óäàëÿþòñÿ ïîëíîñòüþ è íå âëèÿþò íà îáðàáîòêó ïðîáåëîâ. Îäèí ïðîáåëüíûé ñèìâîë â íà÷àëå èëè â êîíöå êîììåíòàðèÿ îáðàáàòûâàåòñÿ êàê äâà ïðîáåëà.
Åñëè äëÿ àòðèáóòà 'xml:space' óñòàíîâëåíî çíà÷åíèå 'preserve', âñå ïðîáåëüíûå ñèìâîëû äîëæíû ñîõðàíÿòüñÿ, à ñèìâîëû ïåðåâîäà ñòðîêè â áëîêå íå äîëæíû ïðåîáðàçîâûâàòüñÿ.
Åñëè äëÿ àòðèáóòà 'xml:space' íå óñòàíîâëåíî çíà÷åíèå 'preserve':
Íà÷àëüíûå è êîíå÷íûå ïðîáåëüíûå ñèìâîëû âíóòðè ýëåìåíòà áëîêà äîëæíû óäàëÿòüñÿ.
Ñèìâîëû ïåðåâîäà ñòðîêè äîëæíû ïðåîáðàçîâûâàòüñÿ â îäèí ñëåäóþùèõ ñèìâîëîâ: ñèìâîë ïðîáåëà, ñèìâîë ïðîáåëà íóëåâîé øèðèíû (​) èëè íè â îäèí ñèìâîë (ò.å. óäàëÿòüñÿ). Âûáîð â ýòîì ñëó÷àå îïðåäåëÿåòñÿ ïîëüçîâàòåëüñêèì àãåíòîì è îáóñëîâëåí ñèñòåìîé ïèñüìà ñèìâîëîâ, ïðåäøåñòâóþùèõ ñèìâîëó ïåðåâîäà ñòðîêè è ñëåäóþùèõ çà íèì.
Ïîñëåäîâàòåëüíîñòü ïðîáåëüíûõ ñèìâîëîâ, íå âêëþ÷àþùàÿ ñèìâîëû ïåðåâîäà ñòðîêè, äîëæíà ñîêðàùàòüñÿ äî îäíîãî ñèìâîëà ïðîáåëà.
Ïîñëåäîâàòåëüíîñòü ïðîáåëüíûõ ñèìâîëîâ, âêëþ÷àþùàÿ îäèí èëè íåñêîëüêî ñèìâîëîâ ïåðåâîäà ñòðîêè, äîëæíà ñîêðàùàòüñÿ òî÷íî òàê æå, êàê îäèí ñèìâîë ïåðåâîäà ñòðîêè.
Ïðîáåëû â çíà÷åíèÿõ àòðèáóòîâ îáðàáàòûâàþòñÿ â ñîîòâåòñòâèè ñ [XML].
Ïðèìå÷àíèå (èíôîðìàòèâíîå): Îïðåäåëÿÿ ñïîñîá ïðåîáðàçîâàíèÿ ñèìâîëà ïåðåâîäà ñòðîêè, ïîëüçîâàòåëüñêèé àãåíò äîëæåí ðàññìîòðåòü ñëåäóþùèå ñëó÷àè, êîãäà ñèñòåìà ïèñüìà ñèìâîëîâ, ïðåäøåñòâóþùèõ ñèìâîëó ïåðåâîäà ñòðîêè è ñëåäóþùèõ çà íèì, îïðåäåëÿåò âûáîð çàìåíû. Îáðàáîòêà ñèìâîëîâ îáùåé ñèñòåìû ïèñüìà (íàïðèìåð, ïóíêòóàöèè) îïðåäåëÿåòñÿ ñèñòåìîé ïèñüìà ïî äðóãóþ ñòîðîíó ñèìâîëà ïåðåâîäà ñòðîêè:
Åñëè ñèìâîëû, ïðåäøåñòâóþùèå ñèìâîëó ïåðåâîäà ñòðîêè èëè ñëåäóþùèå çà íèì, îòíîñÿòñÿ ê ñèñòåìå ïèñüìà, â êîòîðîé ïðîáåë èñïîëüçóåòñÿ â êà÷åñòâå ðàçäåëèòåëÿ ñëîâ, ñèìâîë ïåðåâîäà ñòðîêè äîëæåí ïðåîáðàçîâûâàòüñÿ â ñèìâîë ïðîáåëà. Ïðèìåðàìè òàêèõ ñèñòåì ÿâëÿþòñÿ ëàòèíñêîå, ãðå÷åñêîå è êèðèëëè÷åñêîå ïèñüìî.
Åñëè ñèìâîëû, ïðåäøåñòâóþùèå ñèìâîëó ïåðåâîäà ñòðîêè èëè ñëåäóþùèå çà íèì, îòíîñÿòñÿ ê èäåîãðàôè÷åñêîé ñèñòåìå ïèñüìà èëè ê ñèñòåìå ïèñüìà áåç ðàçäåëåíèÿ ñëîâ, ñèìâîë ïåðåâîäà ñòðîêè äîëæåí ïðîñòî óäàëÿòüñÿ. Ïðèìåðàìè òàêèõ ñèñòåì ÿâëÿþòñÿ êèòàéñêîå è ÿïîíñêîå ïèñüìî.
Åñëè ñèìâîëû, ïðåäøåñòâóþùèå ñèìâîëó ïåðåâîäà ñòðîêè èëè ñëåäóþùèå çà íèì, îòíîñÿòñÿ ê íåèäåîãðàôè÷åñêîé ñèñòåìå ïèñüìà áåç ðàçäåëèòåëÿ ñëîâ, ñèìâîë ïåðåâîäà ñòðîêè äîëæåí ïðåîáðàçîâûâàòüñÿ â ïðîáåë íóëåâîé øèðèíû (​) èëè óäàëÿòüñÿ. Ïðèìåðàìè òàêèõ ñèñòåì ÿâëÿþòñÿ òàéñêîå è êõìåðñêîå ïèñüìî.
Åñëè íå ñîáëþäàåòñÿ íè îäíî èç óñëîâèé 1 -- 3, ñèìâîë ïåðåâîäà ñòðîêè äîëæåí ïðåîáðàçîâûâàòüñÿ â ïðîáåë.
Íàçâàíèÿ ñèñòåì ïèñüìà âñåì ñèìâîëàì íàçíà÷åíû â òåõíè÷åñêîì îò÷åòå TR#24 (Script Names [Íàçâàíèÿ ñèñòåì ïèñüìà]) Þíèêîäà [UNICODE].
3.6. Ïðàâèëà èìåíîâàíèÿ
×òîáû ïðîãðàììû è ïîëüçîâàòåëè ìîãëè ëåãêî îïðåäåëèòü îòíîøåíèå òèïîâ äîêóìåíòîâ ê XHTML, â òèïàõ äîêóìåíòîâ ÿçûêà õîñòîâ XHTML äîëæíû ñîáëþäàòüñÿ ñòðîãèì ïðàâèëàì èìåíîâàíèÿ. Èìåíà òèïîâ äîêóìåíòîâ, ðåàëèçîâàííûå êàê îïðåäåëåíèÿ òèïîâ äîêóìåíòîâ XML, îïðåäåëÿþòñÿ ñ èñïîëüçîâàíèåì ôîðìàëüíûõ îáùèõ èäåíòèôèêàòîðîâ (Formal Public Identifiers, FPI).  FPI ïîëÿ ðàçäåëÿþòñÿ äâóìÿ êîñûìè ÷åðòàìè (//). Ðàçíûå ïîëÿ äîëæíû ñîñòàâëÿòüñÿ ñëåäóþùèì îáðàçîì:
Ïåðâîå ïîëå äîëæíî ñîäåðæàòü òîëüêî ñèìâîë "-" äëÿ îáîçíà÷åíèÿ ÷àñòíûì îáðàçîì îïðåäåëåííîãî ðåñóðñà.
Âòîðîå ïîëå äîëæíî ñîäåðæàòü íàçâàíèå îðãàíèçàöèè, îòâåòñòâåííîé çà ïîääåðæêó ýòîãî ýëåìåíòà. Ôîðìàëüíàÿ ðåãèñòðàöèÿ íàçâàíèé òàêèõ îðãàíèçàöèé íå ïðèìåíÿåòñÿ. Êàæäàÿ îðãàíèçàöèÿ äîëæíà çàäàâàòü óíèêàëüíîå èìÿ. W3C, íàïðèìåð, èñïîëüçóåò èìÿ W3C.
Òðåòüå ïîëå ñîäåðæèò äâå êîíñòðóêöèè: îáùèé êëàññ òåêñòà, çà êîòîðûì ñëåäóåò îòêðûòîå îïèñàíèå òåêñòà. Ïåðâûé ñèìâîë â òðåòüåì ïîëå - îòêðûòûé êëàññ òåêñòà, îí äîëæåí ñîîòâåòñòâîâàòü ISO 8879 Clause 10.2.2.1 Public Text Class (ISO 8879, ïóíêò 10.2.2.1 Îòêðûòûé êëàññ òåêñòà). Òîëüêî ó êîíôîðìíûõ ÿçûêó õîñòîâ XHTML äîêóìåíòîâ îòêðûòîå îïèñàíèå òåêñòà äîëæíî íà÷èíàòüñÿ ñ ìåòêè XHTML. Åñëè òèï äîêóìåíòà êîíôîðìåí íàáîðó èíòåãðàöèè, îòêðûòîå îïèñàíèå òåêñòà äîëæíî ñîäåðæàòü ñòðîêó XHTML. Êðîìå òîãî, ýòî ïîëå äîëæíî ñîäåðæàòü îïðåäåëåííûé îðãàíèçàöèåé óíèêàëüíûé èäåíòèôèêàòîð (íàïðèìåð, MyML 1.0). Îí äîëæåí ñîñòîÿòü èç óíèêàëüíîãî èìåíè è èäåíòèôèêàòîðà âåðñèè, êîòîðûé ìîæåò îáíîâëÿòüñÿ ïî ìåðå ðàçâèòèÿ òèïà äîêóìåíòà.
×åòâåðòîå ïîëå îïðåäåëÿåò ÿçûê ýëåìåíòà (íàïðèìåð, EN).
Ñ èñïîëüçîâàíèåì ýòèõ ïðàâèë èìåíåì êîíôîðìíîãî ÿçûêó õîñòîâ XHTML äîêóìåíòà ìîæåò áûòü -//MyCompany//DTD XHTML MyML 1.0//EN. Èìåíåì êîíôîðìíîãî ñåìåéñòâó XHTML ìîäóëÿ ìîæåò áûòü -//MyCompany//ELEMENTS XHTML MyElements 1.0//EN. Èìåíåì êîíôîðìíîãî íàáîðó èíòåãðàöèè XHTML òèïà äîêóìåíòà ìîæåò áûòü -//MyCompany//DTD Special Markup with XHTML//EN.
3.7. Ýâîëþöèÿ ìîäóëåé XHTML
Êàæäîìó ìîäóëþ, îïðåäåëåííîìó â íàñòîÿùåé ñïåöèôèêàöèè ïî ïðàâèëàì èìåíîâàíèÿ, ïåðå÷èñëåííûì â ïðåäûäóùåì ðàçäåëå, äàåòñÿ óíèêàëüíûé èäåíòèôèêàòîð. Ñî âðåìåíåì ìîäóëü ìîæåò ðàçâèâàòüñÿ. Ëîãè÷åñêèì ñëåäñòâèåì òàêîé ýâîëþöèè ìîæåò áûòü òî, ÷òî íåêîòîðûå àñïåêòû ìîäóëÿ ïåðåñòàíóò áûòü ñîâìåñòèìûìè ñ ïðåäûäóùèì îïðåäåëåíèåì. ×òîáû ãàðàíòèðîâàòü äàëüíåéøóþ ðàáîòó òèïîâ äîêóìåíòîâ, îïðåäåëåííûõ â ñîîòâåòñòâèè ñ ìîäóëÿìè íàñòîÿùåé ñïåöèôèêàöèè, ñâÿçàííûå ñ èçìåíÿåìûì ìîäóëåì èäåíòèôèêàòîðû äîëæíû îáíîâëÿòüñÿ.  ÷àñòíîñòè, ôîðìàëüíûé îòêðûòûé èäåíòèôèêàòîð è ñèñòåìíûé èäåíòèôèêàòîð ìîäóëÿ èçìåíÿþòñÿ çà ñ÷åò èçìåíåíèÿ èäåíòèôèêàòîðà âåðñèè, âêëþ÷àåìîãî â êàæäûé èç íèõ. Òèïû äîêóìåíòîâ, â êîòîðûõ áóäåò èñïîëüçîâàòüñÿ íîâàÿ ôóíêöèîíàëüíîñòü, íóæíî áóäåò òàê æå îáíîâèòü.
Êðîìå òîãî, áîëåå ðàííèå âåðñèè ìîäóëÿ áóäóò ïî-ïðåæíåìó äîñòóïíû áëàãîäàðÿ áîëåå ñòàðûì óíèêàëüíûì èäåíòèôèêàòîðàì. Òàêèì îáðàçîì, òèïû äîêóìåíòîâ, ðàçðàáîòàííûå ñ èñïîëüçîâàíèåì ìîäóëåé XHTML, áóäóò ðàáîòàòü ñ èñïîëüçîâàíèåì ñâîèõ îðèãèíàëüíûõ îïðåäåëåíèé äàæå ïðè ðàçâèòèè è ðàñøèðåíèè íàáîðà. Àíàëîãè÷íî, ýêçåìïëÿðû äîêóìåíòîâ, íàïèñàííûå ïî òàêèì òèïàì, áóäóò ñîîòâåòñòâîâàòü áîëåå ðàííèì îïðåäåëåíèÿì ìîäóëÿ.
Äðóãèì àâòîðàì òèïîâ äîêóìåíòîâ è ìîäóëåé ñåìåéñòâà XHTML íàñòîÿòåëüíî ðåêîìåíäóåòñÿ èñïîëüçîâàòü ýòó æå ñòðàòåãèþ, ÷òîáû îáåñïå÷èòü ïîñòîÿííóþ ðàáîòó òèïîâ äîêóìåíòîâ, ïîñòðîåííûõ íà áàçå ýòèõ ìîäóëåé, è ýêçåìïëÿðîâ äîêóìåíòîâ íà áàçå ýòèõ òèïîâ.
4. Îïðåäåëåíèå àáñòðàêòíûõ ìîäóëåé
Äàííûé ðàçäåë ÿâëÿåòñÿ íîðìàòèâíûì.
Àáñòðàêòíûé ìîäóëü - ýòî îïðåäåëåíèå ìîäóëÿ XHTML ñ èñïîëüçîâàíèåì ïðîñòîãî òåêñòà è íåêîòîðûõ íåôîðìàëüíûõ ñîãëàøåíèé ðàçìåòêè. Õîòÿ òàêîå îïðåäåëåíèå îáû÷íî áåñïîëåçíî äëÿ ìàøèííîé îáðàáîòêè òèïîâ äîêóìåíòîâ, îíî î÷åíü âàæíî äëÿ ëþäåé è ïîìîãàåò ïîíÿòü, ÷òî ñîäåðæèòñÿ â ìîäóëå.  íàñòîÿùåì ðàçäåëå îïðåäåëÿåòñÿ ñïîñîá îïðåäåëåíèÿ àáñòðàêòíûõ ìîäóëåé XHTML. Êîíôîðìíûé XHTML ìîäóëü íå îáÿçàòåëüíî äîëæåí ñîäåðæàòü àáñòðàêòíîå îïðåäåëåíèå. Îäíàêî âñåì ðàçðàáîò÷èêàì ìîäóëåé XHTML íàñòîÿòåëüíî ðåêîìåíäóåòñÿ ñîñòàâëÿòü åãî äëÿ óïðîùåíèÿ ðàáîòû ñ ìîäóëåì.
4.1. Ñèíòàêñè÷åñêèå ñîãëàøåíèÿ
Àáñòðàêòíûå ìîäóëè íå îïðåäåëÿþòñÿ â ôîðìàëüíîé ãðàììàòèêå. Îäíàêî èõ îïðåäåëåíèÿ ïðèäåðæèâàþòñÿ ïåðå÷èñëåííûõ íèæå ñèíòàêñè÷åñêèõ ñîãëàøåíèé. Ýòè ñîãëàøåíèÿ àíàëîãè÷íû ñîãëàøåíèÿì äëÿ XML DTD è óæå çíàêîìû ðàçðàáîò÷èêàì XML DTD. Êàæäûé îòäåëüíûé ñèíòàêñè÷åñêèé ýëåìåíò ìîæåò îáúåäèíÿòüñÿ ñ äðóãèìè äëÿ ïîñòðîåíèÿ áîëåå ñëîæíûõ âûðàæåíèé, êîíôîðìíûõ îïðåäåëåííîé çäåñü àëãåáðå.
èìÿ ýëåìåíòà
Åñëè ýëåìåíò âêëþ÷àåòñÿ â ìîäåëü ñîäåðæèìîãî, äîëæíî áûòü óêàçàíî åãî ÿâíîå èìÿ.
íàáîð ñîäåðæèìîãî
 íåêîòîðûõ ìîäóëÿõ îïðåäåëÿþòñÿ ñïèñêè ÿâíûõ èìåí ýëåìåíòîâ, íàçûâàåìûå íàáîðàìè ñîäåðæèìîãî. Åñëè íàáîð ñîäåðæèìîãî âêëþ÷àåòñÿ â ìîäåëü ñîäåðæèìîãî, äîëæíî áûòü óêàçàíî åãî èìÿ.
expr ?
Äîïóñòèìû íîëü èëè îäèí ýêçåìïëÿð âûðàæåíèÿ expr.
expr +
Íåîáõîäèì êàê ìèíèìóì îäèí ýêçåìïëÿð âûðàæåíèÿ expr.
expr *
Äîïóñòèìî ïðîèçâîëüíîå ÷èñëî ýêçåìïëÿðîâ âûðàæåíèÿ expr (â òîì ÷èñëå âûðàæåíèå ìîæåò è îòñóòñòâîâàòü).
a , b
Íåîáõîäèìî âûðàæåíèå a, çà êîòîðûì äîëæíî ñëåäîâàòü âûðàæåíèå b.
a | b
Íåîáõîäèìî ëèáî âûðàæåíèå a, ëèáî âûðàæåíèå b.
a - b
Âûðàæåíèå a äîïóñòèìî, çà èñêëþ÷åíèåì ýëåìåíòîâ, ïðèñóòñòâóþùèõ â âûðàæåíèè b.
êðóãëûå ñêîáêè
Åñëè âûðàæåíèå çàêëþ÷åíî â êðóãëûå ñêîáêè, îíî îöåíèâàåòñÿ ïðåæäå âûðàæåíèé, íàõîäÿùèõñÿ çà ñêîáêàìè (íà÷èíàÿ ñ ñàìîãî ãëóáîêîãî óðîâíÿ âëîæåííîñòè).
ðàñêðûòèå ïðåäîïðåäåëåííûõ ýëåìåíòîâ
Èíîãäà â íåêîòîðîì ìîäóëå â ýëåìåíò ìîãóò äîáàâëÿòüñÿ àòðèáóòû.  òàêèõ ñëó÷àÿõ çà èìåíåì ýëåìåíòà äîëæåí ñëåäîâàòü àìïåðñàíä (&).
îïðåäåëåíèå îáÿçàòåëüíûõ àòðèáóòîâ
Åñëè äëÿ êàêîãî-ëèáî ýëåìåíòà îïðåäåëåíèå àòðèáóòà ÿâëÿåòñÿ îáÿçàòåëüíûì, çà èìåíåì ýòîãî àòðèáóòà äîëæíà ñëåäîâàòü çâåçäî÷êà (*).
îïðåäåëåíèå òèïà çíà÷åíèé àòðèáóòîâ
Åñëè â ìîäóëå îïðåäåëÿåòñÿ òèï çíà÷åíèÿ àòðèáóòà, ýòî äåëàåòñÿ ïóòåì óêàçàíèÿ òèïà â êðóãëûõ ñêîáêàõ ïîñëå èìåíè àòðèáóòà.
îïðåäåëåíèå äîïóñòèìûõ çíà÷åíèé àòðèáóòà
Åñëè â ìîäóëå îïðåäåëÿþòñÿ äîïóñòèìûå çíà÷åíèÿ àòðèáóòà, ýòî äåëàåòñÿ ïóòåì óêàçàíèÿ ÿâíûõ äîïóñòèìûõ çíà÷åíèé (â êàâû÷êàõ), ðàçäåëåííûõ âåðòèêàëüíîé ÷åðòîé (|), â êðóãëûõ ñêîáêàõ ïîñëå èìåíè àòðèáóòà. Åñëè àòðèáóò èìååò çíà÷åíèå ïî óìîë÷àíèþ, çà íèì äîëæíà ñëåäîâàòü çâåçäî÷êà (*). Åñëè çíà÷åíèå àòðèáóòà ôèêñèðîâàíî, çà èìåíåì àòðèáóòà äîëæåí ñëåäîâàòü çíàê ðàâåíñòâà (=), à ôèêñèðîâàííîå çíà÷åíèå äîëæíî áûòü çàêëþ÷åíî â êàâû÷êè.
4.2. Òèïû ñîäåðæèìîãî
 îïðåäåëåíèÿõ àáñòðàêòíûõ ìîäóëåé îïðåäåëÿþòñÿ ìèíèìàëüíûå, àòîìàðíûå ìîäåëè ñîäåðæèìîãî äëÿ êàæäîãî ìîäóëÿ. Îíè îòíîñÿòñÿ ê ýëåìåíòàì â ñàìîì ìîäóëå. Êðîìå òîãî, îíè ìîãóò îòíîñèòüñÿ ê ýëåìåíòàì äðóãèõ ìîäóëåé, îò êîòîðûõ çàâèñèò ýòîò àáñòðàêòíûé ìîäóëü. È, íàêîíåö, âî ìíîãèõ ñëó÷àÿõ â ìîäåëè ñîäåðæèìîãî â êà÷åñòâå ñîäåðæèìîãî îäíîãî èëè íåñêîëüêèõ ýëåìåíòîâ äîëæåí áûòü ðàçðåøåí òåêñò.  ýòèõ ñëó÷àÿõ äëÿ òåêñòà èñïîëüçóåòñÿ ñèìâîë PCDATA. Ýòîò òåðìèí îïðåäåëåí â Ðåêîìåíäàöèè XML 1.0 è îòíîñèòñÿ ê îáðàáàòûâàåìûì ñèìâîëüíûì äàííûì. Ìîæíî òàêæå îïðåäåëèòü òèï ñîäåðæèìîãî EMPTY, ÷òî îçíà÷àåò, ÷òî ýëåìåíò íå èìååò ñîäåðæèìîãî â ìèíèìàëüíîé ìîäåëè.
4.3. Òèïû àòðèáóòîâ
 íåêîòîðûõ ñëó÷àÿõ áûâàåò íåîáõîäèìî îïðåäåëèòü òèïû çíà÷åíèé àòðèáóòîâ èëè ÿâíûé íàáîð äîïóñòèìûõ çíà÷åíèé àòðèáóòîâ.  îïðåäåëåíèÿõ àáñòðàêòíûõ ìîäóëåé èñïîëüçóþòñÿ ñëåäóþùèå òèïû àòðèáóòîâ (îïðåäåëåííûå â Ðåêîìåíäàöèè XML 1.0):
Òèï àòðèáóòà
Îïðåäåëåíèå
CDATA
Ñèìâîëüíûå äàííûå
ID
Óíèêàëüíûé èäåíòèôèêàòîð â ïðåäåëàõ äîêóìåíòà
IDREF
Ññûëêà íà óíèêàëüíûé èäåíòèôèêàòîð â ïðåäåëàõ äîêóìåíòà
IDREFS
Ðàçäåëåííûé ïðîáåëàìè ñïèñîê ññûëîê íà óíèêàëüíûå â ïðåäåëàõ äîêóìåíòà èäåíòèôèêàòîðû
NAME
Èìÿ (íà âõîäÿùèå â åãî ñîñòàâ ñèìâîëû íàêëàäûâàþòñÿ òå æå îãðàíè÷åíèÿ, ÷òî è íà èäåíòèôèêàòîð)
NMTOKEN
Èìÿ, ñîñòîÿùåå òîëüêî èç ñèìâîëîâ èìåíè, êàê îïðåäåëåíî â XML 1.0 [XML]
NMTOKENS
Çíà÷åíèÿ NMTOKEN, ðàçäåëåííûå îäíèì èëè íåñêîëüêèìè ïðîáåëüíûìè ñèìâîëàìè
PCDATA
Îáðàáàòûâàåìûå ñèìâîëüíûå äàííûå
Ïîìèìî ýòèõ ïðåäîïðåäåëåííûõ òèïîâ äàííûõ, â Ìîäóëÿðèçàöèè XHTML îïðåäåëÿþòñÿ ñëåäóþùèå òèïû äàííûõ è èõ ñåìàíòèêà:
Òèï äàííûõ
Îïèñàíèå
Character
Îäèí ñèìâîë íàáîðà [ISO10646].
Charset
Êîäèðîâêà ñèìâîëîâ â ñîîòâåòñòâèè ñ [RFC2045].
Charsets
Ðàçäåëåííûé ïðîáåëàìè ñïèñîê êîäèðîâîê ñèìâîëîâ â ñîîòâåòñòâèè ñ [RFC2045].
Color
Çíà÷åíèåì àòðèáóòà òèïà "Color" ìîæåò áûòü îïðåäåëåíèå öâåòà â ñîîòâåòñòâèè ñ [SRGB]. Öâåò ìîæåò çàäàâàòüñÿ øåñòíàäöàòåðè÷íûì ÷èñëîì (íà÷èíàåòñÿ ñ ñèìâîëà ðåøåòêè) èëè îäíèì èç ñëåäóþùèõ êîäîâûõ ñëîâ. Íàçâàíèÿ öâåòîâ íå çàâèñÿò îò ðåãèñòðà.
Íàçâàíèÿ öâåòîâ è çíà÷åíèÿ â ôîðìàòå sRGB
Black = "#000000" (÷åðíûé)
Green = "#008000" (çåëåíûé)
Silver = "#C0C0C0" (ñåðåáðèñòûé)
Lime = "#00FF00"
Gray = "#808080" (ñåðûé)
Olive = "#808000" (îëèâêîâûé)
White = "#FFFFFF" (áåëûé)
Yellow = "#FFFF00" (æåëòûé)
Maroon = "#800000" (êîðè÷íåâûé)
Navy = "#000080" (ñèíèé)
Red = "#FF0000" (êðàñíûé)
Blue = "#0000FF" (ãîëóáîé)
Purple = "#800080" (ïóðïóðíûé)
Teal = "#008080"
Fuchsia = "#FF00FF" (ôóêñèÿ)
Aqua = "#00FFFF"
Òàêèì îáðàçîì, çíà÷åíèÿ "#800080" è "Purple" îáîçíà÷àþò îäèí è òîò æå öâåò - ïóðïóðíûé.
ContentType
Òèï óñòðîéñòâà â ñîîòâåòñòâèè ñ [RFC2045].
ContentTypes
Ðàçäåëåííûé çàïÿòûìè ñïèñîê òèïîâ óñòðîéñòâ â ñîîòâåòñòâèè ñ [RFC2045].
Coords
Ðàçäåëåííûé çàïÿòûìè ñïèñîê êîîðäèíàò äëÿ îïðåäåëåíèÿ îáëàñòåé.
Datetime
Äàòà è âðåìÿ.
FPI
Ñòðîêà ñèìâîëîâ, ïðåäñòàâëÿþùàÿ ñîáîé ôîðìàëüíûé îáùèé èäåíòèôèêàòîð (Formal Public Identifier) SGML.
FrameTarget
Èìÿ ôðåéìà, èñïîëüçóåìîãî äëÿ âûâîäà ðåçóëüòàòîâ îïðåäåëåííûõ äåéñòâèé.
LanguageCode
Êîä ÿçûêà â ñîîòâåòñòâèè ñ [RFC3066].
Length
Çíà÷åíèå ìîæåò óêàçûâàòüñÿ â ïèêñåëàõ èëè â ïðîöåíòàõ îò èìåþùåãîñÿ ãîðèçîíòàëüíîãî èëè âåðòèêàëüíîãî ïðîñòðàíñòâà. Òàêèì îáðàçîì, çíà÷åíèå "50%" îçíà÷àåò ïîëîâèíó èìåþùåãîñÿ ïðîñòðàíñòâà.
LinkTypes
Àâòîðû ìîãóò èñïîëüçîâàòü ðàñïîçíàâàåìûå òèïû ññûëîê. Òèïû ïåðå÷èñëåíû âìåñòå ñî ñâîèìè óñëîâíûìè èíòåðïðåòàöèÿìè. Çíà÷åíèå LinkTypes îçíà÷àåò ðàçäåëåííûé çàïÿòûìè ñïèñîê òèïîâ ññûëîê.  òèïàõ ññûëîê ïðîáåëüíûå ñèìâîëû çàïðåùåíû.
 òèïàõ ññûëîê íå ó÷èòûâàåòñÿ ðåãèñòð, ò.å. "Alternate" è "alternate" - îäíî è òî æå.
Ïîëüçîâàòåëüñêèå àãåíòû, ïîèñêîâûå ìàøèíû è ò.ä. ìîãóò èíòåðïðåòèðîâàòü òèïû ññûëîê ðàçëè÷íûìè ñïîñîáàìè. Íàïðèìåð, ïîëüçîâàòåëüñêèå àãåíòû ìîãóò ïðåäîñòàâëÿòü äîñòóï ê çàäàâàåìûì ññûëêàìè äîêóìåíòàì ñ ïîìîùüþ íàâèãàöèîííîé ïàíåëè.
Alternate
Îïðåäåëÿåò çàìåùàþùèå (àëüòåðíàòèâíûå) âåðñèè äîêóìåíòà, â êîòîðîì íàõîäèòñÿ ññûëêà. Åñëè èñïîëüçóåòñÿ ñ àòðèáóòîì hreflang, óêàçûâàåò íà ïåðåâåäåííóþ âåðñèþ äîêóìåíòà. Åñëè èñïîëüçóåòñÿ ñ àòðèáóòîì media, óêàçûâàåò íà âåðñèþ, ïðåäíàçíà÷åííóþ äëÿ äðóãîãî óñòðîéñòâà (èëè óñòðîéñòâ).
Stylesheet
Óêàçûâàåò íà âíåøíþþ òàáëèöó ñòèëåé. Ïîäðîáíåå ñì. â ðàçäåëå Ìîäóëü Style. Èñïîëüçóåòñÿ âìåñòå ñ òèïîì "Alternate" äëÿ îáåñïå÷åíèÿ âîçìîæíîñòè âûáîðà òàáëèöû ñòèëåé ïîëüçîâàòåëåì.
Start
Óêàçûâàåò íà ïåðâûé äîêóìåíò â íàáîðå äîêóìåíòîâ. Ýòîò òèï ñîîáùàåò ïîèñêîâûì ìàøèíàì î òîì, êàêîé äîêóìåíò ñ÷èòàåòñÿ íà÷àëüíîé òî÷êîé íàáîðà.
Next
Óêàçûâàåò íà ñëåäóþùèé äîêóìåíò â ëèíåéíîé ïîñëåäîâàòåëüíîñòè äîêóìåíòîâ. Ïîëüçîâàòåëüñêèå àãåíòû ìîãóò çàðàíåå çàãðóæàòü "ñëåäóþùèé" äîêóìåíò äëÿ ñîêðàùåíèÿ îáùåãî âðåìåíè çàãðóçêè.
Prev
Óêàçûâàåò íà ïðåäûäóùèé äîêóìåíò â óïîðÿäî÷åííîé ïîñëåäîâàòåëüíîñòè äîêóìåíòîâ. Íåêîòîðûå ïîëüçîâàòåëüñêèå àãåíòû ïîääåðæèâàþò òàêæå ñèíîíèì "Previous".
Contents
Óêàçûâàåò íà äîêóìåíò, ñëóæàùèé îãëàâëåíèåì. Íåêîòîðûå ïîëüçîâàòåëüñêèå àãåíòû ïîääåðæèâàþò òàêæå ñèíîíèì ToC (îò "Table of Contents").
Index
Óêàçûâàåò íà äîêóìåíò, ñëóæàùèé óêàçàòåëåì äëÿ òåêóùåãî äîêóìåíòà
Glossary
Óêàçûâàåò íà äîêóìåíò, ñîäåðæàùèé ãëîññàðèé òåðìèíîâ, îòíîñÿùèõñÿ ê òåêóùåìó äîêóìåíòó.
Copyright
Óêàçûâàåò íà èíôîðìàöèþ îá àâòîðñêîì ïðàâå, îòíîñÿùóþñÿ ê òåêóùåìó äîêóìåíòó
Chapter
Óêàçûâàåò íà äîêóìåíò, ñëóæàùèé ãëàâîé â íàáîðå äîêóìåíòîâ.
Section
Óêàçûâàåò íà äîêóìåíò, ñëóæàùèé ðàçäåëîì â íàáîðå äîêóìåíòîâ.
Subsection
Óêàçûâàåò íà äîêóìåíò, ñëóæàùèé ïîäðàçäåëîì â íàáîðå äîêóìåíòîâ.
Appendix
Óêàçûâàåò íà äîêóìåíò, ñëóæàùèé ïðèëîæåíèåì èëè äîïîëíåíèåì â íàáîðå äîêóìåíòîâ.
Help
Óêàçûâàåò íà äîêóìåíò, ñîäåðæàùèé ñïðàâî÷íóþ èíôîðìàöèþ (äîïîëíèòåëüíóþ èíôîðìàöèþ, ññûëêè íà äðóãèå èñòî÷íèêè èíôîðìàöèè è ò.ä.)
Bookmark
Óêàçûâàåò íà çàêëàäêó. Çàêëàäêà ïðåäñòàâëÿåò ñîáîé ññûëêó íà òî÷êó âõîäà â äîïîëíèòåëüíûé äîêóìåíò. Äëÿ îòìåòêè çàêëàäîê ìîæåò èñïîëüçîâàòüñÿ àòðèáóò title. Îáðàòèòå âíèìàíèå, ÷òî â êàæäîì äîêóìåíòå ìîãóò îïðåäåëÿòüñÿ íåñêîëüêî çàêëàäîê.
MediaDesc
Àòðèáóò MediaDesc ïðåäñòàâëÿåò ñîáîé ðàçäåëåííûé çàïÿòûìè ñïèñîê äåñêðèïòîðîâ óñòðîéñòâ. Íà äàííûé ìîìåíò ðàñïîçíàþòñÿ ñëåäóþùèå óñòðîéñòâà:
screen
Ïðåäíàçíà÷åí äëÿ äèñïëååâ áåç ïîñòðàíè÷íîé ðàçáèâêè.
tty
Ïðåäíàçíà÷åí äëÿ óñòðîéñòâ, èñïîëüçóþùèõ íàáîð ñèìâîëîâ ôèêñèðîâàííîé øèðèíû, íàïðèìåð, òåëåòàéïîâ, òåðìèíàëîâ èëè ïîðòàòèâíûõ óñòðîéñòâ ñ îãðàíè÷åííûìè âîçìîæíîñòÿìè âûâîäà èíôîðìàöèè.
tv
Ïðåäíàçíà÷åí äëÿ óñòðîéñòâ òèïà òåëåâèçîðà (äëÿ êîòîðûõ õàðàêòåðíû íèçêîå ðàçðåøåíèå, öâåòíîå èçîáðàæåíèå, îãðàíè÷åííàÿ ïðîêðóòêà íà ýêðàíå).
projection
Ïðåäíàçíà÷åí äëÿ ïðîåêòîðîâ.
handheld
Ïðåäíàçíà÷åí äëÿ ïîðòàòèâíûõ óñòðîéñòâ (íåáîëüøèå ìîíîõðîìíûå ýêðàíû ñ îãðàíè÷åííîé ïîëîñîé ÷àñòîò, ðàñòðîâàÿ ãðàôèêà).
print
Ïðåäíàçíà÷åí äëÿ ñòðàíè÷íûõ íåïðîçðà÷íûõ ìàòåðèàëîâ è äëÿ äîêóìåíòîâ, ïðîñìàòðèâàåìûõ íà ýêðàíå â ðåæèìå ïðåäâàðèòåëüíîãî ïðîñìîòðà ïå÷àòè.
braille
Ïðåäíàçíà÷åí äëÿ óñòðîéñòâ ÷òåíèÿ àçáóêè Áðàéëÿ.
aural
Ïðåäíàçíà÷åí äëÿ ðå÷åâûõ ñèíòåçàòîðîâ.
all
Ïðåäíàçíà÷åí äëÿ âñåõ óñòðîéñòâ.
 ïîñëåäóþùèõ âåðñèÿõ XHTML ìîãóò áûòü ââåäåíû íîâûå çíà÷åíèÿ è ìîãóò äîïóñêàòüñÿ ïàðàìåòðèçîâàííûå çíà÷åíèÿ. Äëÿ óïðîùåíèÿ ââåäåíèÿ ýòèõ çíà÷åíèé êîíôîðìíûå ïîëüçîâàòåëüñêèå àãåíòû äîëæíû èìåòü âîçìîæíîñòü ñèíòàêñè÷åñêîãî àíàëèçà çíà÷åíèÿ àòðèáóòà media ñëåäóþùèì îáðàçîì:
Çíà÷åíèå ïðåäñòàâëÿåò ñîáîé ðàçäåëåííûé çàïÿòûìè ñïèñîê. Íàïðèìåð,
media="screen, 3d-glasses, print and resolution > 90dpi"
ïðåäñòàâëÿåòñÿ êàê:
"screen"
"3d-glasses"
"print and resolution > 90dpi"
Êàæäûé ýëåìåíò îòñåêàåòñÿ ðîâíî ïåðåä ïåðâûì ñèìâîëîì, íå ÿâëÿþùèìñÿ áóêâîé íàáîðà US ASCII [a-zA-Z] (ISO 10646, øåñòíàäöàòåðè÷íûå êîäû 41-5a, 61-7a), öèôðîé [0-9] (øåñòíàäöàòåðè÷íûå êîäû 30-39) èëè ñèìâîëîì ïåðåíîñà (øåñòíàäöàòåðè÷íûé êîä 2d).  äàííîì ïðèìåðå ïîëó÷àåì:
"screen"
"3d-glasses"
"print"
Çàòåì ïðîâîäèòñÿ ñîïîñòàâëåíèå ñ íàáîðîì îïðåäåëåííûõ âûøå òèïîâ óñòðîéñòâ áåç ó÷åòà ðåãèñòðà. Ýëåìåíòû, ñîîòâåòñòâèå êîòîðûì íå íàéäåíî, ìîãóò èãíîðèðîâàòüñÿ.  äàííîì ïðèìåðå îñòàþòñÿ screen è print.
Ïðèìå÷àíèå. Òàáëèöû ñòèëåé ìîãóò âêëþ÷àòü çàâèñÿùèå îò óñòðîéñòâ âàðèàíòû (íàïðèìåð, êîíñòðóêöèÿ @media â CSS).  òàêèõ ñëó÷àÿõ ñòîèò èñïîëüçîâàòü "media =all".
MultiLength
Çíà÷åíèå ìîæåò èìåòü òèï Length èëè áûòü îòíîñèòåëüíîé äëèíîé. Îòíîñèòåëüíàÿ äëèíà èìååò âèä "i*", ãäå "i" - öåëîå ÷èñëî. Ïðè ðàñïðåäåëåíèè ïðîñòðàíñòâà ìåæäó ýëåìåíòàìè, ïðåòåíäóþùèìè íà îäíî è òî æå ïðîñòðàíñòâî, ïîëüçîâàòåëüñêèå àãåíòû ñíà÷àëà âûäåëÿþò ìåñòî ïîä äëèíû, âûðàæåííûå â ïèêñåëàõ è ïðîöåíòàõ, à çàòåì äåëÿò âñå îñòàâøååñÿ ïðîñòðàíñòâî ìåæäó îòíîñèòåëüíûìè äëèíàìè. Êàæäàÿ åäèíèöà îòíîñèòåëüíîé äëèíû ïîëó÷àåò ñâîáîäíîå ïðîñòðàíñòâî, ïðîïîðöèîíàëüíîå öåëîìó ÷èñëó, ïðåäøåñòâóþùåìó çâåçäî÷êå ("*"). Çíà÷åíèå "*" ýêâèâàëåíòíî "1*". Òàêèì îáðàçîì, åñëè ïîñëå âûäåëåíèÿ ïîëüçîâàòåëüñêèì àãåíòîì ìåñòà äëÿ äëèí, âûðàæåííûõ â ïèêñåëàõ è ïðîöåíòàõ, îñòàåòñÿ 60 ñâîáîäíûõ ïèêñåëîâ, è çàäàíû îòíîñèòåëüíûå äëèíû 1*, 2* è 3*, ïîä 1* áóäåò îòâåäåíî 10 ïèêñåëîâ, ïîä 2* - 20 ïèêñåëîâ è ïîä 3* - 30 ïèêñåëîâ.
MultiLengths
Ðàçäåëåííûé çàïÿòûìè ñïèñîê ýëåìåíòîâ òèïà MultiLength.
Number
Îäíà èëè íåñêîëüêî öèôð
Pixels
Öåëîå ÷èñëî, ïðåäñòàâëÿþùåå ÷èñëî ïèêñåëîâ â çîíå ïðîñìîòðà (ýêðàí, áóìàãà). Ò.å. çíà÷åíèå "50" îçíà÷àåò ïÿòüäåñÿò ïèêñåëîâ. Íîðìàòèâíóþ èíôîðìàöèþ îá îïðåäåëåíèè ïèêñåëà ñì. â [CSS2]
Script
Äàííûå ñêðèïòà ìîãóò áûòü ñîäåðæèìûì ýëåìåíòà "script" è çíà÷åíèåì àòðèáóòîâ âíóòðåííèõ ñîáûòèé. Ïîëüçîâàòåëüñêèå àãåíòû íå äîëæíû ðàñöåíèâàòü äàííûå ñêðèïòà êàê ðàçìåòêó HTML, à âìåñòî ýòîãî äîëæíû ïåðåäàâàòü èõ â ÿäðî îáðàáîòêè ñêðèïòîâ.
Çàâèñèìîñòü äàííûõ ñêðèïòà îò ðåãèñòðà îïðåäåëÿåòñÿ ÿçûêîì ñêðèïòà.
Îáðàòèòå âíèìàíèå, ÷òî äàííûå ñêðèïòà, áóäó÷è ñîäåðæèìûì ýëåìåíòà, íå ìîãóò ñîäåðæàòü ññûëîê íà ñèìâîëû, íî, áóäó÷è çíà÷åíèåì àòðèáóòà, ìîãóò.
Shape
Ôîðìà îáëàñòè.
Text
Ïðîèçâîëüíûå òåêñòîâûå äàííûå, ÷àùå âñåãî ïðåäíàçíà÷åííûå äëÿ ïðî÷òåíèÿ ÷åëîâåêîì.
URI
Óíèâåðñàëüíûé èäåíòèôèêàòîð ðåñóðñà â ñîîòâåòñòâèè ñ [URI].
URIs
Ðàçäåëåííûé ïðîáåëàìè ñïèñîê óíèâåðñàëüíûõ èäåíòèôèêàòîðîâ ðåñóðñîâ â ñîîòâåòñòâèè ñ [URI].
4.4. Ïðèìåð îïðåäåëåíèÿ àáñòðàêòíîãî ìîäóëÿ
Äàííûé ðàçäåë ÿâëÿåòñÿ èíôîðìàòèâíûì.
 äàííîì ðàçäåëå îïðåäåëÿåòñÿ ïðèìåð àáñòðàêòíîãî ìîäóëÿ, íà êîòîðîì ïîêàçàíî èñïîëüçîâàíèåì ïðåèìóùåñòâ îïðåäåëåííûõ âûøå ñèíòàêñè÷åñêèõ ïðàâèë. Ïîñêîëüêó â ýòîì ïðèìåðå ìû ïûòàåìñÿ èñïîëüçîâàòü âñå ðàçíîîáðàçíûå ñèíòàêñè÷åñêèå ýëåìåíòû, îí äîñòàòî÷íî ñëîæåí. Òèïè÷íûå îïðåäåëåíèÿ ìîäóëåé áóäóò ñóùåñòâåííî ïðîùå. È, íàêîíåö, îáðàòèòå âíèìàíèå, ÷òî â ýòîì ìîäóëå óïîìèíàåòñÿ íàáîð àòðèáóòîâ Common. Ýòîò íàáîð îïðåäåëåí â ñïåöèôèêàöèè Ìîäóëÿðèçàöèè XHTML è âêëþ÷àåò âñå îñíîâíûå àòðèáóòû, íåîáõîäèìûå áîëüøåé ÷àñòè ýëåìåíòîâ.
4.4.1. Ìîäóëü XHTML Skiing
Ìîäóëü XHTML Skiing îïðåäåëÿåò ðàçìåòêó, èñïîëüçóåìóþ ïðè îïèñàíèè õàðàêòåðèñòèê ãîðíîëûæíîãî êóðîðòà. Â ýòîò ìîäóëü âõîäÿò ñëåäóþùèå ýëåìåíòû è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
resort
Common, href (CDATA)
description , Aspen+
lodge
Common
description, (Aspen - lift)+
lift
Common, href
description?
chalet
Common, href
description?
room
Common, href
description?
lobby
Common, href
description?
fireplace
Common, href
description?
description
Common
PCDATA*
Êðîìå òîãî, ýòîò ìîäóëü îïðåäåëÿåò íàáîð ñîäåðæèìîãî Aspen ñ ìèíèìàëüíîé ìîäåëüþ ñîäåðæèìîãî lodge | lift | chalet | room | lobby | fireplace.
5. Àáñòðàêòíûå ìîäóëè XHTML
Äàííûé ðàçäåë ÿâëÿåòñÿ íîðìàòèâíûì.
 íåì îïðåäåëÿåòñÿ ñîäåðæèìîå àáñòðàêòíûõ ìîäóëåé XHTML. Ýòè ìîäóëè ïðåäñòàâëÿþò ñîáîé àáñòðàêòíûå îïðåäåëåíèÿ íàáîðîâ ýëåìåíòîâ, àòðèáóòîâ è èõ ìîäåëåé ñîäåðæèìîãî. Àáñòðàêòíûå ìîäóëè ìîãóò ñîïîñòàâëÿòüñÿ ëþáîìó ïîäõîäÿùåìó ìåõàíèçìó ñïåöèôèêàöèè. Íàïðèìåð, Ðåàëèçàöèè ìîäóëåé ÷åðåç XHTML DTD ñîïîñòàâëÿþò ìîäóëè è DTD, êàê îïèñàíî â [XML].
Äëÿ ðàçðàáîò÷èêîâ êîíòåíòà è óñòðîéñòâ ýòîò ðàçäåë ÿâëÿåòñÿ ðóêîâîäñòâîì ïî îïðåäåëåíèþ ôóíêöèîíàëüíîñòè, ïðåäîñòàâëÿåìîé ðàçëè÷íûìè ìîäóëÿìè, îïðåäåëåííûìè â XHTML. Ïðè ðàçðàáîòêå äîêóìåíòîâ èëè îïðåäåëåíèè ïðîôèëÿ äëÿ êëàññà äîêóìåíòîâ ðàçðàáîò÷èêè êîíòåíòà ìîãóò îïðåäåëèòü, êàêèå èç ýòèõ ìîäóëåé áîëüøå ñîîòâåòñòâóþò èõ öåëÿì. Ïðè ðàçðàáîòêå êëèåíòñêîãî ïðîãðàììíîãî îáåñïå÷åíèÿ ðàçðàáîò÷èêè äîëæíû ñîçäàâàòü ïðîôèëè óñòðîéñòâ, âûáèðàÿ èç îïðåäåëåííûõ çäåñü àáñòðàêòíûõ ìîäóëåé.
Åñëè íå óêàçàíî ÿâíî, ñåìàíòèêà ýëåìåíòîâ è àòðèáóòîâ îïðåäåëåíà â [HTML4].
5.1. Íàáîðû àòðèáóòîâ
Âî ìíîãèõ àáñòðàêòíûõ ìîäóëÿõ îïðåäåëÿþòñÿ îáÿçàòåëüíûå àòðèáóòû äëÿ ýëåìåíòîâ.  ïðèâåäåííîé íèæå òàáëèöå îïðåäåëåíû íàáîðû àòðèáóòîâ, óïîìèíàåìûå â ìîäóëÿõ. Âñå ýòè âûðàæåíèÿ íè â êîåì ñëó÷àå íå äîëæíû ñ÷èòàòüñÿ íîðìàòèâíûìè èëè îáÿçàòåëüíûìè. Îíè èñïîëüçóþòñÿ â ýòîì äîêóìåíòå òîëüêî äëÿ óäîáñòâà ðåäàêòîðîâ.  êîíöå ðàçäåëà îíè ïðåäñòàâëÿþò ñîáîé ðàñøèðåíèå íîðìàòèâíîãî òåðìà, íî íå ñàì òåðì.
Ñëåäóþùèå îñíîâíûå íàáîðû àòðèáóòîâ èñïîëüçóþòñÿ âî ìíîãèõ ýëåìåíòàõ.  êàæäîì ñëó÷àå èõ èñïîëüçîâàíèå îïðåäåëÿåòñÿ èìåíåì íàáîðà, à íå íîìåðîì â ñïèñêå.
Èìÿ íàáîðà
Àòðèáóòû â íàáîðå
Core
class (NMTOKENS), id (ID), title (CDATA)
I18N
xml:lang (NMTOKEN)
Events
onclick (Script), ondblclick (Script), onmousedown (Script), onmouseup (Script), onmouseover (Script), onmousemove (Script), onmouseout (Script), onkeypress (Script), onkeydown (Script), onkeyup (Script)
Style
style (CDATA)
Common
Core + Events + I18N + Style
Îáðàòèòå âíèìàíèå, ÷òî íàáîð Events îïðåäåëåí, òîëüêî åñëè âûáðàí ìîäóëü Intrinsic Events.  ïðîòèâíîì ñëó÷àå íàáîð Events áóäåò ïóñòûì.
Òàêæå îáðàòèòå âíèìàíèå, ÷òî íàáîð Style îïðåäåëåí, òîëüêî åñëè âûáðàí ìîäóëü Style Attribute.  ïðîòèâíîì ñëó÷àå íàáîð Style áóäåò ïóñòûì.
5.2. Îñíîâíûå ìîäóëè
Îñíîâíûå ìîäóëè îáÿçàòåëüíî äîëæíû ïðèñóòñòâîâàòü â ëþáîì òèïå äîêóìåíòà, êîíôîðìíîì ñåìåéñòâó XHTML.
5.2.1. Ìîäóëü Structure
 ìîäóëå Structure îïðåäåëÿþòñÿ îñíîâíûå ñòðóêòóðíûå ýëåìåíòû XHTML. Îíè ñëóæàò îñíîâîé ìîäåëè ñîäåðæèìîãî ìíîãèõ òèïîâ äîêóìåíòîâ ñåìåéñòâà XHTML.  ýòîò ìîäóëü âõîäÿò ñëåäóþùèå ýëåìåíòû è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
body
Common
(Heading | Block | List)*
head
I18N, profile (URI)
title
html
I18N, version (CDATA), xmlns (URI = "http://www.w3.org/1999/xhtml")
head, body
title
I18N
PCDATA
Ýòîò ìîäóëü ïðåäñòàâëÿåò ñîáîé îñíîâíîå ñòðóêòóðíîå îïðåäåëåíèå ñîäåðæèìîãî XHTML. Ýëåìåíò html ÿâëÿåòñÿ êîðíåâûì äëÿ âñåõ òèïîâ äîêóìåíòîâ ñåìåéñòâà XHTML.
Îáðàòèòå âíèìàíèå, ÷òî çíà÷åíèå àòðèáóòà xmlns îïðåäåëåíî êàê "http://www.w3.org/1999/xhtml". Îáðàòèòå òàêæå âíèìàíèå, ÷òî ïîñêîëüêó àòðèáóò xmlns îáðàáàòûâàåòñÿ ñïåöèàëüíûì îáðàçîì àíàëèçàòîðàìè, çíàêîìûìè ñ ïðîñòðàíñòâîì èìåí XML [XMLNAMES], îí ìîæåò áûòü àòðèáóòîì ëþáîãî ýëåìåíòà. Îäíàêî âñÿêèé ðàç, êîãäà àòðèáóò xmlns èñïîëüçóåòñÿ â êîíòåêñòå ìîäóëÿ XHTML, ñ ïðåôèêñîì èëè áåç, çíà÷åíèåì åãî äîëæíî áûòü îïðåäåëåííîå çäåñü ïðîñòðàíñòâî èìåí XHTML. Ïðàâèëà èñïîëüçîâàíèÿ ïðîñòðàíñòâ èìåí â ìîäóëÿõ ñåìåéñòâà XHTML ñì. â ðàçäåëå Îïðåäåëåíèå ïðîñòðàíñòâà èìåí ìîäóëÿ.
Ðåàëèçàöèÿ: DTD
5.2.2. Ìîäóëü Text
 ýòîì ìîäóëå îïðåäåëÿþòñÿ îñíîâíûå ñîäåðæàùèå òåêñò ýëåìåíòû, àòðèáóòû è èõ ìîäåëü ñîäåðæèìîãî:
Ýëåìåíò
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
abbr
Common
(PCDATA | Inline)*
acronym
Common
(PCDATA | Inline)*
address
Common
(PCDATA | Inline)*
blockquote
Common, cite (URI)
(PCDATA | Heading | Block | List)*
br
Core
EMPTY
cite
Common
(PCDATA | Inline)*
code
Common
(PCDATA | Inline)*
dfn
Common
(PCDATA | Inline)*
div
Common
(PCDATA | Flow)*
em
Common
(PCDATA | Inline)*
h1
Common
(PCDATA | Inline)*
h2
Common
(PCDATA | Inline)*
h3
Common
(PCDATA | Inline)*
h4
Common
(PCDATA | Inline)*
h5
Common
(PCDATA | Inline)*
h6
Common
(PCDATA | Inline)*
kbd
Common
(PCDATA | Inline)*
p
Common
(PCDATA | Inline)*
pre
Common, xml:space="preserve"
(PCDATA | Inline)*
q
Common, cite (URI)
(PCDATA | Inline)*
samp
Common
(PCDATA | Inline)*
span
Common
(PCDATA | Inline)*
strong
Common
(PCDATA | Inline)*
var
Common
(PCDATA | Inline)*
 ìèíèìàëüíîé ìîäåëè ñîäåðæèìîãî äëÿ ýòîãî ìîäóëÿ îïðåäåëÿþòñÿ íåñêîëüêî íàáîðîâ ñîäåðæèìîãî:
Heading
h1 | h2 | h3 | h4 | h5 | h6
Block
address | blockquote | div | p | pre
Inline
abbr | acronym | br | cite | code | dfn | em | kbd | q | samp | span | strong | var
Flow
Heading | Block | Inline
Ðåàëèçàöèÿ: DTD
5.2.3. Ìîäóëü Hypertext
Ìîäóëü Hypertext îáåñïå÷èâàåò ýëåìåíò, èñïîëüçóåìûé äëÿ îïðåäåëåíèÿ ãèïåðòåêñòîâûõ ññûëîê íà äðóãèå ðåñóðñû. Îí ïîääåðæèâàåò ñëåäóþùèé ýëåìåíò è àòðèáóòû:
Ýëåìåíò
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
a
Common, accesskey (Character), charset (Charset), href (URI), hreflang (LanguageCode), rel (LinkTypes), rev (LinkTypes), tabindex (Number), type (ContentType)
(PCDATA | Inline - a)*
Ýòîò ìîäóëü äîáàâëÿåò ýëåìåíò a â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text.
Ðåàëèçàöèÿ: DTD
5.2.4. Ìîäóëü List
Êàê ñëåäóåò èç íàçâàíèÿ, ýòîò ìîäóëü îáåñïå÷èâàåò ýëåìåíòû, ñâÿçàííûå ñ ïðåäñòàâëåíèåì ñïèñêîâ. Îí ïîääåðæèâàåò ñëåäóþùèå ýëåìåíòû è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
dl
Common
(dt | dd)+
dt
Common
(PCDATA | Inline)*
dd
Common
(PCDATA | Flow)*
ol
Common
li+
ul
Common
li+
li
Common
(PCDATA | Flow)*
êðîìå òîãî, â ýòîì ìîäóëå îïðåäåëÿåòñÿ íàáîð ñîäåðæèìîãî List ñ ìèíèìàëüíîé ìîäåëüþ ñîäåðæèìîãî (dl | ol | ul)+, êîòîðûé äîáàâëÿåòñÿ ê íàáîðó ñîäåðæèìîãî Flow ìîäóëÿ Text.
Ðåàëèçàöèÿ: DTD
5.3. Ìîäóëü Applet
Èñïîëüçîâàíèå ýòîãî ìîäóëÿ íåæåëàòåëüíî. Ýòó æå ôóíêöèîíàëüíîñòü ïðåäîñòàâëÿåò ìîäóëü Object.
Ìîäóëü Applet ïðåäîñòàâëÿåò ýëåìåíòû äëÿ ññûëêè íà âíåøíèå ïðèëîæåíèÿ. Îí ïîääåðæèâàåò ñëåäóþùèå ýëåìåíòû è àòðèáóòû:
Ýëåìåíò
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
applet
Core, alt* (Text), archive (CDATA), code (CDATA), codebase (URI), height* (Length), object (CDATA), width* (Length)
(PCDATA | Flow | param)*
param
id (ID), name* (CDATA), type (ContentType), value (CDATA), valuetype ("data"* | "ref" | "object")
EMPTY
Åñëè ìîäóëü Applet èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text ýëåìåíò applet.
Ðåàëèçàöèÿ: DTD
5.4. Äîïîëíèòåëüíûå òåêñòîâûå ìîäóëè
 ýòîì ðàçäåëå îïðåäåëÿþòñÿ ðàçëè÷íûå ìîäóëè äîïîëíèòåëüíîé òåêñòîâîé ðàçìåòêè.
5.4.1. Ìîäóëü Presentation
 ýòîì ìîäóëå îïðåäåëÿþòñÿ ýëåìåíòû, àòðèáóòû è ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî äëÿ ïðîñòîé ïðåçåíòàöèîííîé ðàçìåòêè:
Ýëåìåíò
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
b
Common
(PCDATA | Inline)*
big
Common
(PCDATA | Inline)*
hr
Common
EMPTY
i
Common
(PCDATA | Inline)*
small
Common
(PCDATA | Inline)*
sub
Common
(PCDATA | Inline)*
sup
Common
(PCDATA | Inline)*
tt
Common
(PCDATA | Inline)*
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Block ìîäóëÿ Text ýëåìåíò hr. Êðîìå òîãî, â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text äîáàâëÿþòñÿ ýëåìåíòû b, big, i, small, sub, sup, è tt.
Ðåàëèçàöèÿ: DTD
5.4.2. Ìîäóëü Edit
 ýòîì ìîäóëå îïðåäåëÿþòñÿ ýëåìåíòû è àòðèáóòû, èñïîëüçóåìûå â ðàçìåòêå ðåäàêòèðîâàíèÿ:
Ýëåìåíò
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
del
Common, cite (URI), datetime (Datetime)
(PCDATA | Flow)*
ins
Common, cite (URI), datetime (Datetime)
(PCDATA | Flow)*
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text ýëåìåíòû del è ins.
Ðåàëèçàöèÿ: DTD
5.4.3. Ìîäóëü Bi-directional Text
 ìîäóëå Bi-directional Text îïðåäåëÿåòñÿ ýëåìåíò, êîòîðûé ìîæåò èñïîëüçîâàòüñÿ äëÿ îáúÿâëåíèÿ ïðàâèë íàïðàâëåíèÿ ñîäåðæèìîãî ýëåìåíòà.
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
bdo
Core, dir* ("ltr" | "rtl")
(PCDATA | Inline)*
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text ýëåìåíò bdo. Êðîìå òîãî, âûáîð ýòîãî ìîäóëÿ äîáàâëÿåò â íàáîð I18N àòðèáóò dir* ("ltr" | "rtl").
Ðåàëèçàöèÿ: DTD
5.5. Ìîäóëè ôîðì
5.5.1. Ìîäóëü Basic Forms
Ìîäóëü Basic Forms îáåñïå÷èâàåò ñâÿçàííûå ñ ôîðìàìè ýëåìåíòû, íî òîëüêî â îãðàíè÷åííîì âèäå. Îí ïîääåðæèâàåò ñëåäóþùèå ýëåìåíòû, àòðèáóòû è ìèíèìàëüíóþ ìîäåëü ñîäåðæèìîãî:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
form
Common, action* (URI), method ("get"* | "post"), enctype (ContentType)
(Heading | List | Block - form)+
input
Common, accesskey (Character), checked ("checked"), maxlength (Number), name (CDATA), size (Number), src (URI), tabindex (Number), type ("text"* | "password" | "checkbox" | "radio" | "submit" | "reset" | "hidden" ), value (CDATA)
EMPTY
label
Common, accesskey (Character), for (IDREF)
(PCDATA | Inline - label)*
select
Common, multiple ("multiple"), name (CDATA), size (Number), tabindex (Number)
option+
option
Common, selected ("selected"), value (CDATA)
PCDATA
textarea
Common, accesskey (Character), cols* (Number), name (CDATA), rows* (Number), tabindex (Number)
PCDATA
 ýòîì ìîäóëå îïðåäåëÿþòñÿ äâà íàáîðà ñîäåðæèìîãî:
Form
form
Formctrl
input | label | select | textarea
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò íàáîð ñîäåðæèìîãî Form â íàáîð Block è íàáîð Formctrl â íàáîð Inline ìîäóëÿ Text.
Ðåàëèçàöèÿ: DTD
5.5.2. Ìîäóëü Forms
Ìîäóëü Forms ïðåäîñòàâëÿåò âñå âîçìîæíîñòè ôîðì ÿçûêà HTML 4.0. Îí ïîääåðæèâàåò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
form
Common, accept (ContentTypes), accept-charset (Charsets), action* (URI), method ("get"* | "post"), enctype (ContentType)
(Heading | List | Block - form | fieldset)+
input
Common, accept (ContentTypes), accesskey (Character), alt (Text), checked ("checked"), disabled ("disabled"), maxlength (Number), name (CDATA), readonly ("readonly"), size (Number), src (URI), tabindex (Number), type ("text"* | "password" | "checkbox" | "button" | "radio" | "submit" | "reset" | "file" | "hidden" | "image"), value (CDATA)
EMPTY
select
Common, disabled ("disabled"), multiple ("multiple"), name (CDATA), size (Number), tabindex (Number)
(optgroup | option)+
option
Common, disabled ("disabled"), label (Text), selected ("selected"), value (CDATA)
PCDATA
textarea
Common, accesskey (Character), cols* (Number), disabled ("disabled"), name (CDATA), readonly ("readonly"), rows* (Number), tabindex (Number)
PCDATA
button
Common, accesskey (Character), disabled ("disabled"), name (CDATA), tabindex (Number), type ("button" | "submit"* | "reset"), value (CDATA)
(PCDATA | Heading | List | Block - Form | Inline - Formctrl)*
fieldset
Common
(PCDATA | legend | Flow)*
label
Common, accesskey (Character), for (IDREF)
(PCDATA | Inline - label)*
legend
Common, accesskey (Character)
(PCDATA | Inline)+
optgroup
Common, disabled ("disabled"), label* (Text)
option+
 ýòîì ìîäóëå îïðåäåëÿþòñÿ äâà íàáîðà ñîäåðæèìîãî:
Form
form | fieldset
Formctrl
input | select | textarea | label | button
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò íàáîð ñîäåðæèìîãî Form â íàáîð Block è íàáîð Formctrl â íàáîð Inline ìîäóëÿ Text.
Ìîäóëü Forms ïðåäñòàâëÿåò ñîáîé íàäìíîæåñòâî ìîäóëÿ Basic Forms. Äâà ýòè ìîäóëÿ íå ìîãóò èñïîëüçîâàòüñÿ â îäíîì òèïå äîêóìåíòà îäíîâðåìåííî.
Ðåàëèçàöèÿ: DTD
5.6. Ìîäóëè òàáëèö
5.6.1. Ìîäóëü Basic Tables
Ìîäóëü Basic Tables îáåñïå÷èâàåò ñâÿçàííûå ñ òàáëèöàìè ýëåìåíòû, íî òîëüêî â îãðàíè÷åííîì âèäå. Îí ïîääåðæèâàåò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
caption
Common
(PCDATA | Inline)*
table
Common , summary ( Text ), width ( Length )
caption?, tr+
td
Common, abbr (Text), align ("left" | "center" | "right"), axis (CDATA), colspan (Number), headers (IDREFS), rowspan (Number), scope ("row" | "col"), valign ("top" | "middle" | "bottom")
(PCDATA | Flow - table)*
th
Common, abbr (Text), align ("left" | "center" | "right"), axis (CDATA), colspan (Number), headers (IDREFS), rowspan (Number), scope ("row" | "col"), valign ("top" | "middle" | "bottom")
(PCDATA | Flow - table)*
tr
Common, align ("left" | "center" | "right"), valign ("top" | "middle" | "bottom")
(td | th)+
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Block ìîäóëÿ Text ýëåìåíò table.
Ðåàëèçàöèÿ: DTD
5.6.2. Ìîäóëü Tables
Êàê ñëåäóåò èç èìåíè, ìîäóëü Tables îáåñïå÷èâàåò ñâÿçàííûå ñ òàáëèöàìè ýëåìåíòû, ïðåäîñòàâëÿþùèå áîëåå óäîáíûé äîñòóï íåâèçóàëüíûì àãåíòàì ïîëüçîâàòåëåé. Îí ïîääåðæèâàåò ñëåäóþùèå ýëåìåíòû, àòðèáóòû è ìîäåëü ñîäåðæèìîãî:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
caption
Common
(PCDATA | Inline)*
table
Common, border (Pixels), cellpadding (Length), cellspacing (Length), datapagesize (CDATA), frame ("void" | "above" | below" | "hsides" | "lhs" | "rhs" | "vsides" | "box" | "border"), rules ("none" | "groups" | "rows" | "cols" | "all"), summary (Text), width (Length)
caption?, ( col* | colgroup* ), (( thead?, tfoot?, tbody+ ) | ( tr+ ))
td
Common, abbr (Text), align ("left" | "center" | "right" | "justify" | "char"), axis (CDATA), char (Character), charoff (Length), colspan (Number), headers (IDREFS), rowspan (Number), scope ("row", "col", "rowgroup", "colgroup"), valign ("top" | "middle" | "bottom" | "baseline")
(PCDATA | Flow)*
th
Common, abbr (Text), align ("left" | "center" | "right" | "justify" | "char"), axis (CDATA), char (Character), charoff (Length), colspan (Number), headers (IDREFS), rowspan (Number), scope ("row", "col", "rowgroup", "colgroup"), valign ("top" | "middle" | "bottom" | "baseline")
(PCDATA | Flow)*
tr
Common, align ("left" | "center" | "right" | "justify", "char"), char (Character), charoff (Length), valign ("top" | "middle" | "bottom" | "baseline")
(td | th)+
col
Common, align ("left" | "center" | "right" | "justify", "char"), char (Character), charoff (Length), span (Number), valign ("top" | "middle" | "bottom" | "baseline"), width (MultiLength)
EMPTY
colgroup
Common, align ("left" | "center" | "right" | "justify", "char"), char (Character), charoff (Length), span (Number), valign ("top" | "middle" | "bottom" | "baseline"), width (MultiLength)
col*
tbody
Common, align ("left" | "center" | "right" | "justify", "char"), char (Character), charoff (Length), valign ("top" | "middle" | "bottom" | "baseline")
tr+
thead
Common, align ("left" | "center" | "right" | "justify", "char"), char (Character), charoff (Length), valign ("top" | "middle" | "bottom" | "baseline")
tr+
tfoot
Common, align ("left" | "center" | "right" | "justify", "char"), char (Character), charoff (Length), valign ("top" | "middle" | "bottom" | "baseline")
tr+
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Block ìîäóëÿ Text ýëåìåíò table.
Ðåàëèçàöèÿ: DTD
5.7. Ìîäóëü Image
Ìîäóëü Image îáåñïå÷èâàåò îñíîâíûå ôóíêöèè âíåäðåíèÿ èçîáðàæåíèé è ìîæåò èñïîëüçîâàòüñÿ â íåêîòîðûõ ðåàëèçàöèÿõ íåçàâèñèìî îò êëèåíòñêèõ èçîáðàæåíèé-êàðò. Îí ïîääåðæèâàåò ñëåäóþùèé ýëåìåíò è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
img
Common, alt* (Text), height (Length), longdesc (URI), src* (URI), width (Length)
EMPTY
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text ýëåìåíò img.
Ðåàëèçàöèÿ: DTD
5.8. Ìîäóëü Client-side Image Map
Ìîäóëü Client-side Image Map îáåñïå÷èâàåò ýëåìåíòû äëÿ ïîñòðîåíèÿ êëèåíòñêèõ èçîáðàæåíèé-êàðò. Äëÿ èñïîëüçîâàíèÿ ýòîãî ìîäóëÿ íåîáõîäèìî âêëþ÷åíèå ìîäóëÿ Image (èëè äðóãîãî ìîäóëÿ, ïîääåðæèâàþùåãî ýëåìåíò img). Ìîäóëü Client-side Image Map ïîääåðæèâàåò ñëåäóþùèå ýëåìåíòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
a&
coords (CDATA), shape ("rect" | "circle" | "poly" | "default")
íåò
area
Common, accesskey (Character), alt* (Text), coords (CDATA), href (URI), nohref ("nohref"), shape ("rect"* | "circle" | "poly" | "default"), tabindex (Number)
EMPTY
img&
usemap (IDREF)
íåò
input&
usemap (IDREF)
íåò
map
I18N, Events, class (NMTOKEN), id* (ID), title (CDATA)
((Heading | Block) | area)+
object&
usemap (IDREF)
Ïðèìå÷àíèå: Òîëüêî åñëè âêëþ÷åí ìîäóëü object
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text ýëåìåíò map.
Ðåàëèçàöèÿ: DTD
5.9. Ìîäóëü Server-side Image Map
Ìîäóëü Server-side Image Map îáåñïå÷èâàåò âîçìîæíîñòü âûáîðà îáëàñòè èçîáðàæåíèÿ è ïåðåäà÷è êîîðäèíàò âûáðàííîé òî÷êè. Äëÿ èñïîëüçîâàíèÿ ýòîãî ìîäóëÿ íåîáõîäèìî âêëþ÷åíèå ìîäóëÿ Image (èëè äðóãîãî ìîäóëÿ, ïîääåðæèâàþùåãî ýëåìåíò img). Ìîäóëü Server-side Image Map ïîääåðæèâàåò ñëåäóþùèå àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
Ïðèìå÷àíèÿ
img&
ismap ("ismap")
íåò
input&
ismap ("ismap")
íåò
Åñëè âûáðàí ìîäóëü Forms èëè Basic Forms.
Ðåàëèçàöèÿ: DTD
5.10. Ìîäóëü Object
Ìîäóëü Object îáåñïå÷èâàåò ýëåìåíòû äëÿ âêëþ÷åíèÿ îáúåêòîâ îáùåãî íàçíà÷åíèÿ. Îí ïîääåðæèâàåò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
object
Common, archive (URIs), classid (URI), codebase (URI), codetype (ContentType), data (URI), declare ("declare"), height (Length), name (CDATA), standby (Text), tabindex (Number), type (ContentType), width (Length)
(PCDATA | Flow | param)*
param
id (ID), name* (CDATA), type (ContentType), value (CDATA), valuetype ("data"* | "ref" | "object")
EMPTY
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Text ýëåìåíò object.
Ðåàëèçàöèÿ: DTD
5.11. Ìîäóëü Frames
Êàê ñëåäóåò èç íàçâàíèÿ, ýòîò ìîäóëü îáåñïå÷èâàåò ýëåìåíòû, ñâÿçàííûå ñ ôðåéìàìè.  ÷àñòíîñòè, îí ïîääåðæèâàåò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
frameset
Core , cols ( MultiLength ), rows ( MultiLength )
(frameset | frame)+, noframes?
frame
Core , frameborder ("1" | "0"), longdesc ( URI ), marginheight ( Pixels ), marginwidth ( Pixels ), noresize ("noresize"), scrolling ("yes" | "no" | "auto"*), src ( URI )
EMPTY
noframes
Common
body
Åñëè âûáðàí ýòîò ìîäóëü, ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî ýëåìåíòà html ìîäóëÿ Structure èçìåíÿåòñÿ íà (head, frameset).
Ðåàëèçàöèÿ: DTD
5.12. Ìîäóëü Target
 ñîäåðæèìîì ôðåéìà ìîæåò îïðåäåëÿòüñÿ öåëåâîé ôðåéì, â êîòîðîì ýòî ñîäåðæèìîå äîëæíî îòêðûâàòüñÿ. Ýòîò ìîäóëü äîáàâëÿåò â ýëåìåíòû äëÿ îïðåäåëåíèÿ îáëàñòåé è ññûëîê ýëåìåíò target. Îí îïðåäåëÿåòñÿ êàê îòäåëüíûé ìîäóëü, ïîýòîìó ìîæåò âêëþ÷àòüñÿ êàê â äîêóìåíòû, ñîäåðæàùèåñÿ âî ôðåéìàõ, òàê è â äîêóìåíòû, èñïîëüçóþùèå target äëÿ îòêðûòèÿ íîâîãî îêíà
Ýëåìåíòû
Àòðèáóòû
Ïðèìå÷àíèÿ
a&
target ( CDATA )
area&
target ( CDATA )
Åñëè âûáðàí ìîäóëü Client-side Image Map.
base&
target ( CDATA )
Åñëè âûáðàí ìîäóëü Legacy.
link&
target ( CDATA )
Åñëè âûáðàí ìîäóëü Link.
form&
target ( CDATA )
Åñëè âûáðàí ìîäóëü Forms èëè Basic Forms.
Ðåàëèçàöèÿ: DTD
5.13. Ìîäóëü Iframe
 ìîäóëå Iframe îïðåäåëÿåòñÿ ýëåìåíò äëÿ ïîñòðîåíèÿ âñòðîåííûõ ôðåéìîâ.  ýòîò ìîäóëü âõîäÿò ñëåäóþùèé ýëåìåíò è àòðèáóò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
iframe
Core, frameborder ("1" | "0"), height (Length), longdesc (URI), marginheight (Pixels), marginwidth (Pixels), scrolling ("yes" | "no" | "auto"*), src (URI), width (Length)
(PCDATA | Flow)*
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîð ñîäåðæèìîãî Inline ìîäóëÿ Inline ýëåìåíò iframe.
Ðåàëèçàöèÿ: DTD
5.14. Ìîäóëü Intrinsic Events
Âíóòðåííèå ñîáûòèÿ - ýòî àòðèáóòû, èñïîëüçóåìûå ñ ýëåìåíòàìè, â êîòîðûõ ïðè âûïîëíåíèè ïîëüçîâàòåëåì îïðåäåëåííûõ äåéñòâèé äîëæíû ïðîèñõîäèòü íåêîòîðûå ñîáûòèÿ. Àòðèáóòû, ïåðå÷èñëåííûå â ñëåäóþùåé òàáëèöå, äîáàâëÿþòñÿ â íàáîð àòðèáóòîâ ïåðå÷èñëåííûõ ýëåìåíòîâ, òîëüêî åñëè âûáðàíû ìîäóëè, â êîòîðûõ îïðåäåëÿþòñÿ ýòè ýëåìåíòû. Îáðàòèòå òàêæå âíèìàíèå, ÷òî âûáîð ýòîãî ìîäóëÿ îïðåäåëÿåò íàáîð àòðèáóòîâ Events, êàê îïèñàíî âûøå.  ýòîì ìîäóëå îïðåäåëÿþòñÿ ñëåäóþùèå àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ïðèìå÷àíèÿ
a&
onblur (Script), onfocus (Script)
area&
onblur (Script), onfocus (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Client-side Image Map.
frameset&
onload (Script), onunload (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Frames.
form&
onreset (Script), onsubmit (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Forms èëè Basic Forms.
body&
onload (Script), onunload (Script)
label&
onblur (Script), onfocus (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Forms.
input&
onblur (Script), onchange (Script), onfocus (Script), onselect (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Forms èëè Basic Forms.
select&
onblur (Script), onchange (Script), onfocus (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Forms èëè Basic Forms.
textarea&
onblur (Script), onchange (Script), onfocus (Script), onselect (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Forms èëè Basic Forms.
button&
onblur (Script), onfocus (Script)
Åñëè èñïîëüçóåòñÿ ìîäóëü Forms.
Ðåàëèçàöèÿ: DTD
5.15. Ìîäóëü Metainformation
 ìîäóëå Metainformation îïðåäåëÿåòñÿ ýëåìåíò, îïèñûâàþùèé èíôîðìàöèþ, ðàñïîëîæåííóþ â ÷àñòè äîêóìåíòà, ñâÿçàííîé ñ îáúÿâëåíèÿìè (â XHTML ýòî ýëåìåíò head). Ìîäóëü âêëþ÷àåò ñëåäóþùèé ýëåìåíò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
meta
I18N, content* (CDATA), http-equiv (NMTOKEN), name (NMTOKEN), scheme (CDATA)
EMPTY
Åñëè âûáðàí ýòîò ìîäóëü, ê ìîäåëè ñîäåðæèìîãî ýëåìåíòà head â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ìîäóëå Structure, äîáàâëÿåòñÿ ýëåìåíò meta.
Ðåàëèçàöèÿ: DTD
5.16. Ìîäóëü Scripting
 ìîäóëå Scripting îïðåäåëÿþòñÿ ýëåìåíòû, èñïîëüçóåìûå äëÿ õðàíåíèÿ èíôîðìàöèè, îòíîñÿùåéñÿ ê èñïîëíÿåìûì ñêðèïòàì èëè îòñóòñòâèþ èõ ïîääåðæêè.  ýòîò ìîäóëü âõîäÿò ñëåäóþùèå ýëåìåíòû è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
noscript
Common
(Heading | List | Block)+
script
charset (Charset), defer ("defer"), src (URI), type* (ContentType), xml:space="preserve"
PCDATA
Åñëè ýòîò ìîäóëü èñïîëüçóåòñÿ, îí äîáàâëÿåò â íàáîðû ñîäåðæèìîãî Block è Inline ìîäóëÿ Text ýëåìåíòû script è noscript. Êðîìå òîãî, ê ìîäåëè ñîäåðæèìîãî ýëåìåíòà head â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ìîäóëå Structure, äîáàâëÿåòñÿ ýëåìåíò script.
Ðåàëèçàöèÿ: DTD
5.17. Ìîäóëü Style Sheet
 ìîäóëå Style Sheet îïðåäåëÿåòñÿ ýëåìåíò, èñïîëüçóåìûé äëÿ îáúÿâëåíèÿ âíóòðåííèõ òàáëèö ñòèëåé.  ýòîò ìîäóëü âõîäÿò ñëåäóþùèå ýëåìåíò è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
style
I18N, media (MediaDesc), title (Text), type* (ContentType), xml:space="preserve"
PCDATA
Åñëè èñïîëüçóåòñÿ ýòîò ìîäóëü, ê ìîäåëè ñîäåðæèìîãî ýëåìåíòà head â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ìîäóëå Structure, äîáàâëÿåòñÿ ýëåìåíò style.
Ðåàëèçàöèÿ: DTD
5.18. Ìîäóëü Style Attribute
 ìîäóëå Style Attribute îïðåäåëÿåòñÿ àòðèáóò style. Åñëè ýòîò ìîäóëü âûáðàí, îí àêòèâèçèðóåò íàáîð àòðèáóòîâ ñòèëÿ.
Ðåàëèçàöèÿ: DTD
5.19. Ìîäóëü Link
 ìîäóëå Link îïðåäåëÿåòñÿ ýëåìåíò, èñïîëüçóåìûé äëÿ îïðåäåëåíèÿ ññûëîê íà âíåøíèå ðåñóðñû. Ýòè ðåñóðñû ÷àñòî èñïîëüçóþòñÿ äëÿ ïîâûøåíèÿ âîçìîæíîñòè îáðàáîòêå ñâÿçàííîãî XHTML-äîêóìåíòà ïîëüçîâàòåëüñêèì àãåíòîì.  ýòîò ìîäóëü âõîäÿò ñëåäóþùèå ýëåìåíò è àòðèáóòû:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
link
Common, charset (Charset), href (URI), hreflang (LanguageCode), media (MediaDesc), rel (LinkTypes), rev (LinkTypes), type (ContentType)
EMPTY
Åñëè èñïîëüçóåòñÿ ýòîò ìîäóëü, ê ìîäåëè ñîäåðæèìîãî ýëåìåíòà head â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ìîäóëå Structure, äîáàâëÿåòñÿ ýëåìåíò link.
Ðåàëèçàöèÿ: DTD
5.20. Ìîäóëü Base
 ìîäóëå Base îïðåäåëÿåòñÿ ýëåìåíò, êîòîðûå ìîæåò èñïîëüçîâàòüñÿ äëÿ îïðåäåëåíèÿ áàçîâîãî URI, îòíîñèòåëüíî êîòîðîãî áóäóò ðàçðåøàòüñÿ âñå URI â äîêóìåíòå.  ýòîò ìîäóëü âõîäÿò ñëåäóþùèé ýëåìåíò è àòðèáóò:
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
base
href* (URI)
EMPTY
Åñëè èñïîëüçóåòñÿ ýòîò ìîäóëü, ê ìîäåëè ñîäåðæèìîãî ýëåìåíòà head ìîäóëÿ Structure äîáàâëÿåòñÿ ýëåìåíò base.
Ðåàëèçàöèÿ: DTD
5.21. Ìîäóëü Name Identification
Èñïîëüçîâàíèå ýòîãî ìîäóëÿ íåæåëàòåëüíî.
 ìîäóëå Name Identification îïðåäåëÿåòñÿ àòðèáóò name äëÿ íàáîðà ýëåìåíòîâ. Àòðèáóò name èñòîðè÷åñêè èñïîëüçîâàëñÿ äëÿ èäåíòèôèêàöèè îïðåäåëåííûõ ýëåìåíòîâ â HTML-äîêóìåíòàõ. Õîòÿ àòðèáóò name âî âñåõ ýòèõ ýëåìåíòàõ è âûòåñíåí àòðèáóòîì id, èíîãäà ìîæåò ïîòðåáîâàòüñÿ ïîääåðæêà îáîèõ àòðèáóòîâ. Ýòî ìîæåò äîñòèãàòüñÿ ïóòåì âêëþ÷åíèÿ äàííîãî ìîäóëÿ.
Îáðàòèòå âíèìàíèå, ÷òî ïðè âêëþ÷åíèè ýòîãî ìîäóëÿ äëÿ óêàçàííûõ ýëåìåíòîâ îïðåäåëÿþòñÿ îáà àòðèáóòà - name è id.  òàêîé ñèòóàöèè, åñëè äëÿ ýëåìåíòà îïðåäåëåí àòðèáóò name, äîëæåí áûòü òàêæå îïðåäåëåí è àòðèáóò id. Áîëåå òîãî, îáà ýòè àòðèáóòà äîëæíû èìåòü îäíî è òî æå çíà÷åíèå. È, íàêîíåö, åñëè äîêóìåíòû, èñïîëüçóþùèå ýòè àòðèáóòû, îáðàáàòûâàþòñÿ êàê òèï "text/xml" èëè "application/xml", çíà÷åíèå àòðèáóòà name äëÿ ýòèõ ýëåìåíòîâ íå äîëæíî èñïîëüçîâàòüñÿ â êà÷åñòâå èäåíòèôèêàòîðà ôðàãìåíòà.
Ýëåìåíòû
Àòðèáóòû
Ïðèìå÷àíèÿ
a&
name (CDATA)
applet&
name (CDATA)
Åñëè âûáðàí ìîäóëü Applet.
form&
name (CDATA)
Åñëè âûáðàí ìîäóëü Forms èëè Basic Forms.
frame&
name (CDATA)
Åñëè âûáðàí ìîäóëü Frames.
iframe&
name (CDATA)
Åñëè âûáðàí ìîäóëü Iframe.
img&
name (CDATA)
Åñëè âûáðàí ìîäóëü Image.
map&
name (CDATA)
Åñëè âûáðàí ìîäóëü Client-side Image Map.
Ðåàëèçàöèÿ: DTD
5.22. Ìîäóëü Legacy
 ìîäóëå Legacy îïðåäåëÿþòñÿ ýëåìåíòû è àòðèáóòû, èñïîëüçîâàíèå êîòîðûõ óæå áûëî íåæåëàòåëüíûì â ïðåäûäóùèõ âåðñèÿõ HTML è XHTML è îñòàåòñÿ íåæåëàòåëüíûì â Ìîäóëÿðèçàöèè XHTML. Àâòîðû ÿçûêîâ ðàçìåòêè íå äîëæíû èñïîëüçîâàòü ýòè ýëåìåíòû è àòðèáóòû.
 ñëåäóþùåé òàáëèöå ïåðå÷èñëåíû ýëåìåíòû è àòðèáóòû, îïðåäåëÿåìûå â ñëó÷àå âûáîðà ìîäóëÿ Legacy.
Ýëåìåíòû
Àòðèáóòû
Ìèíèìàëüíàÿ ìîäåëü ñîäåðæèìîãî
basefont
color (Color), face (CDATA), id (ID), size (CDATA)
EMPTY
center
Common
(PCDATA | Flow)*
dir
Common, compact ("compact")
(li)+
font
Core, I18N, color (Color), face (CDATA), size (CDATA)
(PCDATA | Inline)*
isindex
Core, I18N, prompt (Text)
EMPTY
menu
Common, compact ("compact")
(li)+
s
Common
(PCDATA | Inline)*
strike
Common
(PCDATA | Inline)*
u
Common
(PCDATA | Inline)*
 ñëåäóþùåé òàáëèöå ïåðå÷èñëåíû ýëåìåíòû è àòðèáóòû, îïðåäåëÿåìûå â ëþáîì äðóãîì ìåñòå â ñëó÷àå âûáîðà ìîäóëÿ Legacy.
Ýëåìåíòû
Àòðèáóòû
Ïðèìå÷àíèÿ
body&
alink (Color), background (URI), bgcolor (Color), link (Color), text (Color), vlink (Color)
br&
clear ("left" | "all" | "right" | "none"*)
caption&
align ("top" | "bottom" | "left" | "right")
div&
align ("left" | "center" | "right" | "justify")
dl&
compact ("compact"), type (CDATA)
h1-h6&
align ("left" | "center" | "right" | "justify")
hr&
align ("left" | "center" | "right" | "justify"), noshade ("noshade"), size (Pixels), width (Length),
img&
align ("left" | "center" | "right" | "justify"), border (Pixels), hspace (Pixels), vspace (Pixels)
input&
align ("top" | "middle" | "bottom" | "left" | "right")
Åñëè âûáðàí ìîäóëü Forms èëè Basic Forms.
legend&
align ("left" | "center" | "right" | "justify")
Åñëè âûáðàí ìîäóëü Forms.
li&
type (CDATA), value (Number)
ol&
compact ("compact"), start (Number), type (CDATA)
p&
align ("left" | "center" | "right", "justify")
pre&
width (Number)
script&
language (CDATA)
Åñëè âûáðàí ìîäóëü Scripting.
table&
align ("left" | "center" | "right"), bgcolor (Color)
Åñëè âûáðàí ìîäóëü Tables.
tr&
bgcolor (Color)
Åñëè âûáðàí ìîäóëü Tables.
th&
bgcolor (Color), height (Pixels) nowrap ("nowrap"), width (Length)
Åñëè âûáðàí ìîäóëü Tables.
td&
bgcolor (Color), height (Length) nowrap ("nowrap"), width (Pixels)
Åñëè âûáðàí ìîäóëü Tables.
ul&
compact ("compact"), type (CDATA)
Ðåàëèçàöèÿ: DTD
À. Ïîñòðîåíèå ìîäóëåé ñõåìû
Äàííîå ïðèëîæåíèå ÿâëÿåòñÿ íîðìàòèâíûì.
Êîãäà ñõåìà XML áóäåò óòâåðæäåíà êàê ðåêîìåíäàöèÿ W3C, â äàííîì ïðèëîæåíèè áóäóò ñîäåðæàòüñÿ èíñòðóêöèè ïî îïðåäåëåíèþ ìîäóëåé ñõåìû XML, ñîâìåñòèìûõ ñ ðåàëèçàöèåé ìîäóëÿðèçàöèè XHTML, ÷åðåç ñõåìó XML [XMLSCHEMA].
Á. Ðàçðàáîòêà ñõåìû ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè
Äàííîå ïðèëîæåíèå ÿâëÿåòñÿ íîðìàòèâíûì.
Êîãäà Ñõåìà XML áóäåò óòâåðæäåíà êàê Ðåêîìåíäàöèÿ W3C, â äàííîì ïðèëîæåíèè áóäóò ñîäåðæàòüñÿ èíñòðóêöèè ïî îïðåäåëåíèþ ñ ïîìîùüþ XHTML ïîëíûõ ÿçûêîâ ðàçìåòêè ÷åðåç Ñõåìó XML [XMLSCHEMA].
Â. Ðåàëèçàöèè ìîäóëåé ñõåìû XHTML
Äàííîå ïðèëîæåíèå ÿâëÿåòñÿ íîðìàòèâíûì.
Êîãäà ñõåìà XML áóäåò óòâåðæäåíà êàê ðåêîìåíäàöèÿ W3C, â äàííîì ïðèëîæåíèè áóäóò ñîäåðæàòüñÿ ðåàëèçàöèè ìîäóëåé, îïðåäåëåííûõ â àáñòðàêòíûõ ìîäóëÿõ XHTML, ÷åðåç ñõåìó XML [XMLSCHEMA].
Ã. Ïîñòðîåíèå ìîäóëåé DTD
Äàííûé ðàçäåë ÿâëÿåòñÿ íîðìàòèâíûì.
Ìîäóëè XHTML ðåàëèçóþòñÿ êàê ôðàãìåíòû DTD. Êîãäà ýòè ôðàãìåíòû ñîáèðàþòñÿ â îïðåäåëåííîì ïîðÿäêå (îïèñàííîì â ðàçäåëå "Ðàçðàáîòêà DTD ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè"), ðåçóëüòèðóþùåå DTD ïðåäñòàâëÿåò ñîáîé ïîëíûé òèï äîêóìåíòà. Çàòåì ýòî ïðåäñòàâëåíèå ìîæåò èñïîëüçîâàòüñÿ äëÿ ïðîâåðêè êîððåêòíîñòè ýêçåìïëÿðîâ ýòîãî òèïà äîêóìåíòîâ.
Êëþ÷îì ê îáúåäèíåíèþ ôðàãìåíòîâ â èìåþùåå ñìûñë DTD ÿâëÿþòñÿ ïðàâèëà, èñïîëüçóåìûå äëÿ îïðåäåëåíèÿ ôðàãìåíòîâ. Îíè îïðåäåëÿþòñÿ â äàííîì ðàçäåëå. Ñîáëþäåíèå ýòèõ ïðàâèë ãàðàíòèðóåò àâòîðàì DTD êîððåêòíîå âçàèìîäåéñòâèå èõ ìîäóëåé ñ äðóãèìè XHTML-ñîâìåñòèìûìè ìîäóëÿìè.
Ìîäóëè, ñîîòâåòñòâóþùèå ýòèì ïðàâèëàì, äîëæíû òàêæå óäîâëåòâîðÿòü òðåáîâàíèÿì êîíôîðìíîñòè, îïðåäåëåííûì â ðàçäåëå "Êîíôîðìíîñòü ìîäóëåé ñåìåéñòâà XHTML", òîëüêî òîãäà îíè ñìîãóò íàçûâàòüñÿ ìîäóëÿìè ñåìåéñòâà XHTML.
Ã.1. Èìåíîâàíèå ñóùíîñòåé ïàðàìåòðîâ
 íàñòîÿùåé ñïåöèôèêàöèè ñóùíîñòè ïàðàìåòðîâ ïîäðàçäåëÿþòñÿ íà ñåìü êàòåãîðèé è èìåíóþòñÿ ñîîòâåòñòâóþùèì îáðàçîì ñ èñïîëüçîâàíèåì ñëåäóþùèõ ñóôôèêñîâ:
.mod
ñóôôèêñ .mod èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ ïðåäñòàâëåíèÿ ìîäóëÿ DTD (íàáîðà ýëåìåíòîâ, àòðèáóòîâ, ñóùíîñòåé ïàðàìåòðîâ è ò.ä.). Â íàñòîÿùåé ñïåöèôèêàöèè êàæäûé ìîäóëü ÿâëÿåòñÿ àòîìàðíîé åäèíèöåé è ìîæåò ïðåäñòàâëÿòüñÿ êàê îòäåëüíàÿ ñóùíîñòü ôàéëà.
.module
ñóôôèêñ .module èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ óïðàâëåíèÿ âêëþ÷åíèåì ìîäóëÿ DTD ïóòåì èñïîëüçîâàíèÿ ëþáîãî èç óñëîâíûõ êëþ÷åâûõ ñëîâ - INCLUDE èëè IGNORE.
.qname
ñóôôèêñ .qname èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ ïðåäñòàâëåíèÿ êâàëèôèöèðîâàííîãî èìåíè ýëåìåíòà. Ïîäðîáíåå î êâàëèôèöèðîâàííûõ èìåíàõ ñì. â ðàçäåëå "Îïðåäåëåíèå ïðîñòðàíñòâà èìåí ìîäóëÿ".
.content
ñóôôèêñ .content èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ ïðåäñòàâëåíèÿ ìîäåëè ñîäåðæèìîãî òèïà ýëåìåíòà.
.class
ñóôôèêñ .class èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ ïðåäñòàâëåíèÿ ýëåìåíòîâ îäíîãî è òîãî æå êëàññà.
.mix
ñóôôèêñ .mix èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ ïðåäñòàâëåíèÿ íàáîðà òèïîâ ýëåìåíòîâ ðàçëè÷íûõ êëàññîâ.
.attrib
ñóôôèêñ .attrib èñïîëüçóåòñÿ, åñëè ñóùíîñòè ïàðàìåòðîâ èñïîëüçóþòñÿ äëÿ ïðåäñòàâëåíèÿ ãðóïïû ñèìâîëîâ, ïðåäñòàâëÿþùèõ îäíó èëè íåñêîëüêî ïîëíûõ ñïåöèôèêàöèé àòðèáóòîâ â îáúÿâëåíèè ATTLIST.
Íàïðèìåð, â HTML 4 ñóùíîñòü ïàðàìåòðà %block; îïðåäåëåíà äëÿ ïðåäñòàâëåíèÿ ðàçíîòèïíîãî íàáîðà òèïîâ ýëåìåíòîâ, îòíîñÿùèõñÿ ê óðîâíþ áëîêà. Â íàñòîÿùåé ñïåöèôèêàöèè òàêîé ñóùíîñòüþ áóäåò %Block.mix;.
Ïðè îïðåäåëåíèè ñóùíîñòåé ïàðàìåòðîâ â îïðåäåëåííûõ çäåñü êëàññàõ ìîäóëè äîëæíû âêëþ÷àòü èìåíà ñóùíîñòåé ïóòåì èñïîëüçîâàíèÿ óíèêàëüíûõ ïðåôèêñîâ. Íàïðèìåð, ìîäåëü ñîäåðæèìîãî ýëåìåíòà myelement â ìîäóëå mymodule ìîæåò íàçûâàòüñÿ MYMODULE.myelement.content. Âîçìîæíû è äðóãèå ñõåìû. Íåçàâèñèìî îò èñïîëüçóåìîé ñõåìû, àâòîðû ìîäóëåé äîëæíû ïðèëàãàòü âñå óñèëèÿ ê îáåñïå÷åíèþ óíèêàëüíîñòè èìåí îïðåäåëÿåìûõ èìè ñóùíîñòåé ïàðàìåòðîâ, ÷òîáû îíè íå êîíôëèêòîâàëè ñ äðóãèìè ñóùíîñòÿìè ïàðàìåòðîâ è ÷òîáû èíòåðôåéñíûå ìåòîäû ìîäóëÿ áûëè î÷åâèäíû åãî ïîëüçîâàòåëÿì.
Ã.2. Îïðåäåëåíèå ïðîñòðàíñòâà èìåí ìîäóëÿ
 XHTML îáúÿâëåííûå â ìîäóëå ýëåìåíòû è àòðèáóòû äîëæíû íàõîäèòüñÿ â îïðåäåëåííîì ïðîñòðàíñòâå èìåí XML [XMLNAMES]. Ïðîñòðàíñòâî èìåí îïðåäåëÿåòñÿ ïðîèçâîëüíûì URI.  XHTML â ñëó÷àå ðåàëèçàöèè ìîäóëÿ ñ ïîìîùüþ XML DTD ïðîñòðàíñòâî èìåí â ìîäóëå äîëæíî îáúÿâëÿòüñÿ ñïåöèàëüíûì îáðàçîì. Ýòî äåëàåòñÿ äëÿ îáåñïå÷åíèÿ íà ñòàäèè ðàçáîðà/ïðîâåðêè êîððåêòíîñòè äîêóìåíòà âûáîðà èñïîëüçîâàíèÿ ïðåôèêñîâ ïðîñòðàíñòâà èìåí è ïðåôèêñà, èñïîëüçóåìîãî äëÿ èäåíòèôèêàöèè ýëåìåíòîâ è àòðèáóòîâ ìîäóëÿ.
Ðàçðàáîò÷èêè êîíòåíòà, êîòîðûå õîòÿò ñîçäàâàòü äîêóìåíòû íà áàçå ãèáðèäíûõ òèïîâ äîêóìåíòîâ, ìîãóò èñïîëüçîâàòü ïðåôèêñû ïðîñòðàíñòâà èìåí XML â ýëåìåíòàõ èç ïðîñòðàíñòâà èìåí XHTML, â ýëåìåíòàõ èç äðóãèõ ïðîñòðàíñòâ èìåí èëè è â òåõ, è â äðóãèõ. Äëÿ ãàðàíòèè êîíôîðìíîñòè òàêèõ äîêóìåíòîâ ÿçûêó XHTML è îáðàòíîé ñîâìåñòèìîñòè ñî ñðåäñòâàìè, íå ðàáîòàþùèìè ñ ïðîñòðàíñòâàìè èìåí, W3C ðåêîìåíäóåò ðàçðàáîò÷èêàì êîíòåíòà íå èñïîëüçîâàòü ïðåôèêñû ïðîñòðàíñòâà èìåí XML â ýëåìåíòàõ èç ïðîñòðàíñòâà èìåí XHTML. Åñëè ðàçðàáîò÷èêè êîíòåíòà çàèíòåðåñîâàíû â òîì, ÷òîáû èõ êîíòåíò îáðàáàòûâàëñÿ ïðîöåññîðàìè, ïîääåðæèâàþùèìè ïðîñòðàíñòâà èìåí, W3C òàêæå ðåêîìåíäóåò îïðåäåëÿòü ýëåìåíòû, íå îòíîñÿùèåñÿ ê ïðîñòðàíñòâàì èìåí XHTML, ñ èñïîëüçîâàíèåì ïðåôèêñà ïðîñòðàíñòâà èìåí XML, à íå ïîëàãàòüñÿ íà ìåõàíèçìû óìîë÷àíèé ïðîñòðàíñòâà èìåí XML.
Êàæäûé êîíôîðìíûé XHTML ìîäóëü, ðåàëèçîâàííûé êàê XML DTD, äîëæåí îïðåäåëÿòü ïðåôèêñ ïðîñòðàíñòâà èìåí XML, èñïîëüçóåìûé ïî óìîë÷àíèþ, ìåòîä èçìåíåíèÿ ýòîãî ïðåôèêñà â ýêçåìïëÿðå äîêóìåíòà è ðàçìå÷åííûé ðàçäåë äëÿ âêëþ÷åíèÿ îáðàáîòêè ýòîãî ïðåôèêñà.
Îáðàòèòå âíèìàíèå, ÷òî íåñêîëüêî ñâÿçàííûõ ìîäóëåé ìîãóò è äîëæíû áûòü ÷àñòüþ îäíîãî ïðîñòðàíñòâà èìåí. Âñå ìîäóëè XHTML, íàïðèìåð, ÿâëÿþòñÿ ÷àñòÿìè îäíîãî ïðîñòðàíñòâà èìåí.
Ã.2.1. Ïîäìîäóëü êâàëèôèöèðîâàííûõ èìåí
Ïðåæäå âñåãî ñëåäóåò îïðåäåëèòü ïîäìîäóëü êâàëèôèöèðîâàííûõ èìåí (ïîäìîäóëü ïðåäñòàâëÿåò ñîáîé ïðîñòî ôàéëîâóþ ñóùíîñòü, âûäåëåííóþ òàê, ÷òîáû îíà ìîãëà âñòðàèâàòüñÿ â íóæíîå ìåñòî DTD). Ïîäìîäóëü êâàëèôèöèðîâàííûõ èìåí ñòðîèòñÿ ñ ïîìîùüþ ïîñëåäîâàòåëüíîñòè äåéñòâèé (ñòðîêà MODULE çàìåíÿåòñÿ ñîîòâåòñòâóþùåé ñòðîêîé äëÿ íîâîãî ìîäóëÿ):
Îïðåäåëèòå ñóùíîñòü ïàðàìåòðà MODULE.prefixed, êîòîðàÿ îáúÿâëÿåò, èñïîëüçóþòñÿ ýëåìåíòû ìîäóëÿ ñ ïðåôèêñíûìè èìåíàìè ïðîñòðàíñòâà èìåí XML èëè íåò. Ïî óìîë÷àíèþ áóäåò èñïîëüçîâàòüñÿ çíà÷åíèå "%NS.prefixed;". Ñóùíîñòü ïàðàìåòðà NS.prefixed îïðåäåëÿåòñÿ â ìîäåëè XHTML ïî óìîë÷àíèþ êàê IGNORE è ìîæåò èñïîëüçîâàòüñÿ â ýêçåìïëÿðàõ äîêóìåíòîâ äëÿ ïåðåêëþ÷åíèÿ ïðåôèêñîâ âñåõ âêëþ÷åííûõ ïðîñòðàíñòâ èìåí (âêëþ÷àÿ ïðîñòðàíñòâî èìåí ìîäóëåé XHTML).
Îïðåäåëèòå ñóùíîñòü ïàðàìåòðà MODULE.xmlns, ñîäåðæàùóþ èäåíòèôèêàòîð ïðîñòðàíñòâà èìåí äëÿ ìîäóëÿ.
Îïðåäåëèòå ñóùíîñòü ïàðàìåòðà MODULE.prefix, ñîäåðæàùóþ ïðåôèêñ, êîòîðûé áóäåò èñïîëüçîâàòüñÿ ïî óìîë÷àíèþ, êîãäà ïðåôèêñû âêëþ÷åíû.
Îïðåäåëèòå ñóùíîñòü ïàðàìåòðà MODULE.pfx - "%MODULE.prefix;:" åñëè èñïîëüçóåòñÿ ïðåôèêñàöèÿ, è "" â ïðîòèâíîì ñëó÷àå.
Îïðåäåëèòå ñóùíîñòü ïàðàìåòðà MODULE.xmlns.extra.attrib, ñîäåðæàùóþ îáúÿâëåíèå âñåõ àòðèáóòîâ ïðîñòðàíñòâà èìåí XML, óïîìèíàåìûõ â äàííîì ìîäóëå (íàïðèìåð, xmlns:xlink). Åñëè äëÿ ñóùíîñòè %MODULE.prefixed óñòàíîâëåíî çíà÷åíèå INCLUDE, ýòîò àòðèáóò äîëæåí âêëþ÷àòü, ïîìèìî ïðî÷åãî, îïðåäåëåíèå xmlns:%MODULE.prefix;.
Îïðåäåëèòå ñóùíîñòü ïàðàìåòðà XHTML.xmlns.extra.attrib êàê MODULE.xmlns.extra.attrib. Îáû÷íî ýòà ñóùíîñòü ïîòîì çàìåíÿåòñÿ ôàéëîì äðàéâåðà òèïà äîêóìåíòà, íî åñëè çàìåíà íå ïðîèçîéäåò, ýòî îáúÿâëåíèå áóäåò èñïîëüçîâàòüñÿ ïî óìîë÷àíèþ.
Äëÿ êàæäîãî èç îïðåäåëÿåìûõ ìîäóëåì ýëåìåíòîâ ñîçäàéòå ïàðàìåòðè÷åñêóþ ñóùíîñòü âèäà "MODULE.NAME.qname" äëÿ õðàíåíèÿ êâàëèôèöèðîâàííîãî èìåíè. Ýòà ñóùíîñòü äîëæíà èìåòü çíà÷åíèå "%MODULE.pfx;NAME". Òàêèì îáðàçîì, åñëè èñïîëüçóþòñÿ ïðåôèêñû, ïîñëå àíàëèçà çíà÷åíèåì áóäåò "PREFIX:NAME", à åñëè îíè íå èñïîëüçóþòñÿ - "NAME".
Åñëè ìîäóëü äîáàâëÿåò àòðèáóòû â ýëåìåíòû, îïðåäåëåííûå â ìîäóëÿõ, íå èìåþùèõ ñ äàííûì ìîäóëåì îáùèõ ïðîñòðàíñòâ èìåí, îáúÿâèòå ýòè àòðèáóòû òàê, ÷òîáû îíè èñïîëüçîâàëè ïðåôèêñ %MODULE.pfx. Íàïðèìåð:
<ENTITY % MODULE.img.myattr.qname "%MODULE.pfx;myattr" >
Ïðèìåð ïîäìîäóëÿ qname äëÿ ãèïîòåòè÷åñêîãî ìîäóëÿ Inventory:
<!-- ...................................................................... -->
<!-- Ìîäóëü Inventory Qname .................................................. -->
<!-- ôàéë: inventory-qname-1.mod
PUBLIC "-//MY COMPANY//ELEMENTS XHTML Inventory Qnames 1.0//EN"
SYSTEM "http://www.example.com/DTDs/inventory-qname-1.mod"
xmlns:inventory="http://www.example.com/xmlns/inventory"
...................................................................... -->
<!-- Îáúÿâèì çíà÷åíèå ïî óìîë÷àíèþ äëÿ ïðåôèêñàöèè ýëåìåíòîâ ìîäóëÿ -->
<!-- Îáðàòèòå âíèìàíèå, ÷òî NS.prefixed áóäåò çàìåíåí XHTML Framework
èëè ýêçåìïëÿðîì äîêóìåíòà. -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % Inventory.prefixed "%NS.prefixed;" >
<!-- Îáúÿâèì ôàêòè÷åñêîå ïðîñòðàíñòâî èìåí äàííîãî ìîäóëÿ -->
<!ENTITY % Inventory.xmlns "http://www.example.com/xmlns/inventory" >
<!-- Îáúÿâèì ïðåôèêñ ïî óìîë÷àíèþ äëÿ äàííîãî ìîäóëÿ -->
<!ENTITY % Inventory.prefix "inventory" >
<!-- Îáúÿâèì ïðåôèêñ äëÿ äàííîãî ìîäóëÿ -->
<![%Inventory.prefixed;[
<!ENTITY % Inventory.pfx "%Inventory.prefix;:" >
]]>
<!ENTITY % Inventory.pfx "" >
<!-- Îáúÿâèì àòðèáóò ïðîñòðàíñòâà èìåí xml äëÿ äàííîãî ìîäóëÿ -->
<![%Inventory.prefixed;[
<!ENTITY % Inventory.xmlns.extra.attrib
"xmlns:%Inventory.prefix; %URI.datatype; #FIXED '%Inventory.xmlns;'" >
]]>
<!ENTITY % Inventory.xmlns.extra.attrib "" >
<!-- Îáúÿâèì äîïîëíèòåëüíîå ïðîñòðàíñòâî èìåí, êîòîðîå äîëæíî âêëþ÷àòüñÿ â ýëåìåíòû
XHTML -->
<!ENTITY % XHTML.xmlns.extra.attrib
%Inventory.xmlns.extra.attrib; >
<!-- Òåïåðü îáúÿâèì êâàëèôèöèðîâàííûå èìåíà äëÿ âñåõ ýëåìåíòîâ â
ìîäóëå -->
<!ENTITY % Inventory.shelf.qname "%Inventory.pfx;shelf" >
<!ENTITY % Inventory.item.qname "%Inventory.pfx;item" >
<!ENTITY % Inventory.desc.qname "%Inventory.pfx;desc" >
<!ENTITY % Inventory.sku.qname "%Inventory.pfx;sku" >
<!ENTITY % Inventory.price.qname "%Inventory.pfx;price" >
Ã.2.2. Ïîäìîäóëè îáúÿâëåíèé
Çàòåì íóæíî îïðåäåëèòü îäèí èëè íåñêîëüêî "ïîäìîäóëåé îáúÿâëåíèé". Íàçíà÷åíèåì ýòèõ ôàéëîâûõ ñóùíîñòåé ÿâëÿåòñÿ îáúÿâëåíèå ñïèñêîâ ýëåìåíòîâ è àòðèáóòîâ XML DTD. Ìîäóëü îáúÿâëåíèé XHTML äîëæåí ñòðîèòüñÿ ñëåäóþùèì îáðàçîì:
Îïðåäåëèòå ïàðàìåòðè÷åñêóþ ñóùíîñòü äëÿ èñïîëüçîâàíèÿ â ATTLIST êàæäîãî îáúÿâëåííîãî ýëåìåíòà. Ýòà ïàðàìåòðè÷åñêàÿ ñóùíîñòü äîëæíà ñîäåðæàòü %NS.decl.attrib; åñëè äëÿ %MODULE.prefixed; óñòàíîâëåíî çíà÷åíèå INCLUDE, è %NS.decl.attrib; è "xmlns %URI.datatype; #FIXED '%MODULE.xmlns;'" åñëè äëÿ %MODULE.prefixed; óñòàíîâëåíî çíà÷åíèå IGNORE.
Îáúÿâèòå äëÿ ìîäóëÿ âñå ýëåìåíòû è àòðèáóòû.  êàæäîì ATTLIST äëÿ ýëåìåíòà âêëþ÷èòå îïðåäåëåííóþ âûøå ïàðàìåòðè÷åñêóþ ñóùíîñòü òàêèì îáðàçîì, ÷òîáû âñå îáÿçàòåëüíûå àòðèáóòû xmlns áûëè äîñòóïíû êàæäîìó ýëåìåíòó â ìîäóëå.
Åñëè ìîäóëü äîáàâëÿåò àòðèáóòû â ýëåìåíòû, îïðåäåëåííûå â ìîäóëÿõ, íå èìåþùèõ ñ äàííûì ìîäóëåì îáùèõ ïðîñòðàíñòâ èìåí, îáúÿâèòå ýòè àòðèáóòû òàê, ÷òîáû îíè èñïîëüçîâàëè ïðåôèêñ %MODULE.pfx. Íàïðèìåð:
<ENTITY % MODULE.img.myattr.qname "%MODULE.pfx;myattr" >
<!ATTLIST %img.qname;
%MODULE.img.myattr.qname; CDATA #IMPLIED
>
Ýòî ïðèâåäåò ê äîáàâëåíèþ àòðèáóòà â ýëåìåíò img ìîäóëÿ Image, íî èìåíåì àòðèáóòà áóäåò êâàëèôèöèðîâàííîå èìÿ, âêëþ÷àÿ ïðåôèêñ, åñëè äëÿ ýêçåìïëÿðà äîêóìåíòà âûáðàíà ïðåôèêñàöèÿ. Êðîìå òîãî, â ñïèñîê àòðèáóòîâ ýëåìåíòà img áóäåò äîáàâëåí àòðèáóò xmlns:MODULE_PREFIX, òàê ÷òî ñèíòàêñè÷åñêèå àíàëèçàòîðû ñ ïîääåðæêîé ïðîñòðàíñòâà èìåí XML áóäóò çíàòü, êàê ðàçðåøèòü ïðîñòðàíñòâî èìåí â çàâèñèìîñòè îò ïðåôèêñà.
 ñëåäóþùåì ïðèìåðå ïîêàçàíî îáúÿâëåíèå ïîäìîäóëÿ äëÿ ãèïîòåòè÷åñêîãî ìîäóëÿ Inventory.
<!-- ...................................................................... -->
<!-- Ìîäóëü Inventory Elements ................................................... -->
<!-- ôàéë: inventory-1.mod
PUBLIC "-//MY COMPANY//ELEMENTS XHTML Inventory Elements 1.0//EN"
SYSTEM "http://www.example.com/DTDs/inventory-1.mod"
xmlns:inventory="http://www.example.com/xmlns/inventory"
...................................................................... -->
<!-- Ìîäóëü Inventory
shelf
item
sku
desc
price
 ýòîì ìîäóëå îïðåäåëÿåòñÿ ïðîñòàÿ ñòðóêòóðà èíâåíòàðèçàöèîííîé çàïèñè
-->
<!-- Îïðåäåëèì ãëîáàëüíûå àòðèáóòû ïðîñòðàíñòâà èìåí -->
<![%Inventory.prefixed;[
<!ENTITY % Inventory.xmlns.attrib
"%NS.decl.attrib;"
>
]]>
<!ENTITY % Inventory.xmlns.attrib
"xmlns %URI.datatype; #FIXED '%Inventory.xmlns;'"
>
<!-- Îïðåäåëèì îáùèé íàáîð àòðèáóòîâ äëÿ âñåõ ýëåìåíòîâ ìîäóëÿ -->
<!ENTITY % Inventory.Common.attrib
"%Inventory.xmlns.attrib;
id ID #IMPLIED
>
<!-- Îïðåäåëèì ýëåìåíòû è àòðèáóòû ìîäóëÿ -->
<!ELEMENT %Inventory.shelf.qname;
( %Inventory.item.qname; )* >
<!ATTLIST %Inventory.shelf.qname;
location CDATA #IMPLIED
%Inventory.Common.attrib;
>
<!ELEMENT %Inventory.item.qname;
( %Inventory.desc.qname;, %Inventory.sku.qname;, %Inventory.price.qname;) >
<!ATTLIST %Inventory.item.qname;
location CDATA #IMPLIED
%Inventory.Common.attrib;
>
<!ELEMENT %Inventory.desc.qname; ( #PCDATA ) >
<!ATTLIST %Inventory.desc.qname;
%Inventory.Common.attrib;
>
<!ELEMENT %Inventory.sku.qname; ( #PCDATA ) >
<!ATTLIST %Inventory.sku.qname;
%Inventory.Common.attrib;
>
<!ELEMENT %Inventory.price.qname; ( #PCDATA ) >
<!ATTLIST %Inventory.price.qname;
%Inventory.Common.attrib;
>
<!-- êîíåö inventory-1.mod -->
Ã.2.3. Èñïîëüçîâàíèå ìîäóëÿ êàê àâòîíîìíîãî DTD
Èíîãäà áûâàåò íóæíî èñïîëüçîâàòü ìîäóëü XHTML â êà÷åñòâå àâòîíîìíîãî DTD. Õîðîøèì ïðèìåðîì ìîæåò ñëóæèòü îïèñàííûé âûøå ìîäóëü Inventory. Äîëæíà ñóùåñòâîâàòü âîçìîæíîñòü âíåäðåíèÿ ýòèõ ýëåìåíòîâ â äîêóìåíò XHTML, íî êðîìå ýòîãî, îíè äîëæíû áûòü äîñòóïíû êàê ñâîáîäíûå äîêóìåíòû, èçâëå÷åííûå èç áàçû äàííûõ (íàïðèìåð). Ïðîùå âñåãî äîñòè÷ü ýòîãî ïóòåì îïðåäåëåíèÿ ôàéëà DTD, èíèöèàëèçèðóþùåãî êîìïîíåíòû ìîäóëÿ. Òàêîå DTD ìîæåò èìåòü ñëåäóþùóþ ñòðóêòóðó:
Âêëþ÷èòå ìîäóëü XHTML Datatypes (îáû÷íî ìîäóëü qnames èñïîëüçóåò íåêîòîðûõ èç ýòèõ òèïîâ äàííûõ - êàê ìèíèìóì òèï URI äëÿ àòðèáóòà xmlns).
Âêëþ÷èòå ìîäóëü Qnames äëÿ ñâîåãî ìîäóëÿ.
Îïðåäåëèòå ïàðàìåòðè÷åñêóþ ñóùíîñòü NS.decl.attrib êàê %MODULE.xmlns.extra.attrib;.
Âêëþ÷èòå ìîäóëü(è) Declaration äëÿ ñâîåãî ìîäóëÿ.
Âîò ïðèìåð äëÿ íàøåãî ìîäóëÿ Inventory:
<!-- ...................................................................... -->
<!-- Inventory Elements DTD ............................................... -->
<!-- ôàéë: inventory-1.dtd
PUBLIC "-//MY COMPANY//DTD XHTML Inventory 1.0//EN"
SYSTEM "http://www.example.com/DTDs/inventory-1.dtd"
xmlns:inventory="http://www.example.com/xmlns/inventory"
...................................................................... -->
<!-- Ìîäóëü Inventory
shelf
item
sku
desc
price
 ýòîì ìîäóëå îïðåäåëÿåòñÿ ïðîñòàÿ ñòðóêòóðà èíâåíòàðèçàöèîííîé çàïèñè
-->
<!-- Ââåäåì òèïû äàííûõ -->
<!ENTITY % xhtml-datatypes.mod
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" >
%xhtml-datatypes.mod;
<!-- Ââåäåì êâàëèôèöèðîâàííûå èìåíà -->
<!ENTITY % Inventory-qname.mod SYSTEM "inventory-qname-1.mod" >
%Inventory-qname.mod;
<!ENTITY % NS.decl.attrib "%Inventory.xmlns.extra.attrib;">
<!ENTITY % Inventory.mod SYSTEM "inventory-1.mod" >
%Inventory.mod;
<!-- êîíåö inventory-1.dtd -->
Ýòî DTD ìîæåò èñïîëüçîâàòüñÿ â äîêóìåíòàõ, â êîòîðûõ èñïîëüçóþòñÿ òîëüêî ýëåìåíòû èç âàøåãî ìîäóëÿ:
<!DOCTYPE shelf SYSTEM "inventory-1.dtd">
<shelf xmlns="http://www.example.com/xmlns/inventory">
<item>
<desc>
ýòî îïèñàíèå.
</desc>
<sku>
ýòî öåíà.
</sku>
<price>
ýòî öåíà.
</price>
</item>
</shelf>
Ýòîò ìåòîä ïîçâîëÿåò ñîçäàâàòü îïðåäåëåíèÿ ýëåìåíòîâ è àòðèáóòîâ, îáëàñòüþ äåéñòâèÿ êîòîðûõ ÿâëÿåòñÿ èõ ñîáñòâåííîå ïðîñòðàíñòâî èìåí. Êðîìå òîãî, îí ïîçâîëÿåò ðàçðàáîò÷èêàì êîíòåíòà èñïîëüçîâàòü ïðåôèêñ ïî óìîë÷àíèþ äëÿ ýëåìåíòîâ è àòðèáóòîâ:
<!DOCTYPE inventory:shelf SYSTEM "inventory-1.dtd" [
<!ENTITY % Inventory.prefixed "INCLUDE">
]>
<inventory:shelf xmlns:inventory="http://www.example.com/xmlns/inventory">
<inventory:item>
<inventory:desc>
ýòî îïèñàíèå.
</inventory:desc>
<inventory:sku>
ýòî èíâåíòàðíûé íîìåð.
</inventory:sku>
<inventory:price>
ýòî öåíà.
</inventory:price>
</inventory:item>
</inventory:shelf>
È, íàêîíåö, â ýêçåìïëÿðå äîêóìåíòà ìîæåò èñïîëüçîâàòüñÿ äðóãîé ïðåôèêñ ïðîñòðàíñòâà èìåí XML ïóòåì ïåðåîáúÿâëåíèÿ â çàãîëîâêå DOCTYPE è åãî âíóòðåííåì ïîäìíîæåñòâå:
<!DOCTYPE i:shelf SYSTEM "inventory-1.dtd" [
<!ENTITY % Inventory.prefixed "INCLUDE">
<!ENTITY % Inventory.prefix "i">
]>
<i:shelf xmlns:i="http://www.example.com/xmlns/inventory">
<i:item>
<i:desc>
ýòî îïèñàíèå.
</i:desc>
<i:sku>
ýòî öåíà.
</i:sku>
<i:price>
ýòî öåíà.
</i:price>
</i:item>
</i:shelf>
Ã.2.4. Îòëè÷èòåëüíûå îñîáåííîñòè ïðîñòðàíñòâ èìåí
Õîòÿ îïðåäåëåííûé çäåñü ïîäõîä è äàåò âîçìîæíîñòü îïðåäåëåíèÿ ÿçûêîâ ðàçìåòêè, êîíôîðìíûõ XML è ïðîñòðàíñòâàì èìåí XML, íåêîòîðûå âîçìîæíîñòè, îïðåäåëÿåìûå â ñïåöèôèêàöèè ïðîñòðàíñòâ èìåí XML, íå ïîääåðæèâàþòñÿ:
Ïðîñòðàíñòâà èìåí XML ïîçâîëÿþò ïîâòîðíî îáúÿâëÿòü àòðèáóò xmlns äëÿ ïðîñòðàíñòâà èìåí â ëþáîé òî÷êå äåðåâà. Áîëåå òîãî, îíè ïîçâîëÿþò òàêèì ïåðåîáúÿâëåíèåì ïåðåêëþ÷àòüñÿ ìåæäó èñïîëüçîâàíèåì ïðåôèêñîâ è ïðîñòðàíñòâà èìåí ïî óìîë÷àíèþ è èçìåíÿòü ïðåôèêñ. Ìåòîä, îïðåäåëåííûé â äàííîì äîêóìåíòå, íå ïîääåðæèâàåò ýòè âîçìîæíîñòè.  îäíîì ýêçåìïëÿðå äîêóìåíòà îäíî ïðîñòðàíñòâî èìåí äîëæíî èñïîëüçîâàòü îäèí è òîò æå ïðåôèêñ (åñëè èñïîëüçóåòñÿ ïðåôèêñàöèÿ) èëè îáëàñòü äåéñòâèÿ ïî óìîë÷àíèþ.
Åñëè èñïîëüçóåòñÿ îáëàñòü äåéñòâèÿ ïî óìîë÷àíèþ, äëÿ èíôîðìèðîâàíèÿ àíàëèçàòîðîâ î ïðîñòðàíñòâå èìåí ýëåìåíòà äîïóñêàåòñÿ ïîëàãàòüñÿ íà DTD äîêóìåíòà. Îäíàêî ïîñêîëüêó ïðîöåññîðû ñ ïîääåðæêîé ïðîñòðàíñòâ èìåí íå îáÿçàòåëüíî äîëæíû âêëþ÷àòü DTD ïðè ðàññìîòðåíèè äîêóìåíòà, ðàçðàáîò÷èêàì êîíòåíòà ñëåäóåò îáúÿâëÿòü ïðîñòðàíñòâî èìåí XML ýëåìåíòà êàæäûé ðàç ïðè ñìåíå ïðîñòðàíñòâà èìåí:
...
<p>
<myelement xmlns="..." />
</p>
Ä. Ðàçðàáîòêà DTD ñ îïðåäåëåííûìè è äîïîëíèòåëüíûìè ìîäóëÿìè
Äàííûé ðàçäåë ÿâëÿåòñÿ èíôîðìàòèâíûì.
Ãëàâíîé öåëüþ îïðåäåëåíèÿ ìîäóëåé XHTML è îáùåé ìåòîäîëîãèè ìîäóëÿðèçàöèè ÿâëÿåòñÿ óïðîùåíèå ðàçðàáîòêè òèïîâ äîêóìåíòîâ íà áàçå XHTML. Ýòè òèïû ìîãóò ðàñøèðÿòü XHTML ïóòåì äîáàâëåíèÿ íîâûõ âîçìîæíîñòåé (íàïðèìåð, [SMIL]) èëè îïðåäåëÿòü ïîäìíîæåñòâî XHTML äëÿ èñïîëüçîâàíèÿ ñïåöèàëüíûì óñòðîéñòâîì.  äàííîì ðàçäåëå îïèñûâàþòñÿ òåõíîëîãèè, ïîçâîëÿþùèå ðàçðàáîò÷èêàì òèïîâ äîêóìåíòîâ èñïîëüçîâàòü ïðåèìóùåñòâà ðåàëèçàöèè XML DTD ìîäóëüíîé àðõèòåêòóðû. Ýòî äåëàåòñÿ ïóòåì ïðèìåíåíèÿ òåõíîëîãèé ìîäóëÿðèçàöèè XHTML ïîñòåïåííî óñëîæíÿþùèìèñÿ ñïîñîáàìè, ÷òî ïðèâåäåò ê ñîçäàíèþ ïîëíîãî òèïà äîêóìåíòà èç îòäåëüíûõ íå ñâÿçàííûõ äðóã ñ äðóãîì ìîäóëåé.
Îáðàòèòå âíèìàíèå, ÷òî â äàííûõ ïðèìåðàõ íè â êîåì ñëó÷àå íå òðåáóåòñÿ èçìåíåíèå ñàìèõ ôàéëîâûõ ñóùíîñòåé ìîäóëÿ XHTML. Ôàéëîâûå ñóùíîñòè ìîäóëÿ XHTML ïîëíîñòüþ ïàðàìåòðèçîâàíû, òàê ÷òî ñ ïîìîùüþ ðàçëè÷íûõ îïðåäåëåíèé ìîäóëåé è ôàéëîâ äðàéâåðîâ ìîæíî íàñòðîèòü îïðåäåëåíèå è ìîäåëü ñîäåðæèìîãî êàæäîãî ýëåìåíòà è åãî èåðàðõèè.
È, íàêîíåö, ïîìíèòå, ÷òî áîëüøèíñòâî ïîëüçîâàòåëåé XHTML íå îáÿçàíû áûòü àâòîðàìè DTD. Àâòîðû DTD - ýòî îáû÷íî ëþäè, îïðåäåëÿþùèå ñïåöèàëüíóþ ðàçìåòêó, óëó÷øàþùóþ ÷èòàåìîñòü è ïðîñòîòó ïðåäñòàâëåíèÿ äîêóìåíòà èëè åãî ìàøèííóþ îáðàáîòêó, èëè ñïåöèàëèçèðîâàííûå äèçàéíåðû, ðàçðàáàòûâàþùèå ñïåöèàëèçèðîâàííûå DTD äëÿ êîíêðåòíîãî êëèåíòà. Íàïðèìåð:
Îðãàíèçàöèÿ ïðåäîñòàâëÿåò èíôîðìàöèþ ïî ïîäïèñêå ÷åðåç Web-èíòåðôåéñ. Èíôîðìàöèÿ î ïîäïèñ÷èêàõ õðàíèòñÿ â áàçå äàííûõ íà áàçå XML. Ìîæíî ïåðåäàâàòü ýòó èíôîðìàöèþ èç áàçû â Web ïóòåì âíåäðåíèÿ çàïèñåé XML èç áàçû íåïîñðåäñòâåííî â äîêóìåíò XHTML. Ìîæíî è ïðîñòî âíåäðÿòü çàïèñè, íî îðãàíèçàöèÿ ìîæåò îïðåäåëèòü ìîäóëü DTD ñ îïèñàíèåì çàïèñåé, ïðèêðåïèòü åãî ê XHTML DTD è ñîçäàòü òåì ñàìûì ïîëíîå DTD äëÿ ñâîèõ ñòðàíèö. Çàòåì ýòà îðãàíèçàöèÿ ìîæåò ïîëó÷àòü äîñòóï ê äàííûì ñ ïîìîùüþ íîâûõ ýëåìåíòîâ ÷åðåç îáúåêòíóþ ìîäåëü äîêóìåíòîâ [DOM], ïðîâåðÿòü êîððåêòíîñòü äîêóìåíòîâ, ïðåäîñòàâëÿòü îïðåäåëåíèÿ ñòèëÿ äëÿ ýëåìåíòîâ ñ èñïîëüçîâàíèåì êàñêàäíûõ òàáëèö ñòèëåé [CSS2] è ò.ä. Ïîòðàòèâ âðåìÿ íà îïðåäåëåíèå ñòðóêòóðû äàííûõ è ñîçäàíèå DTD ñ ïîìîùüþ îïðåäåëåííûõ â ýòîì ðàçäåëå ïðîöåññîâ, îðãàíèçàöèÿ ñìîæåò âîñïîëüçîâàòüñÿ âñåìè ïðåèìóùåñòâàìè XML.
Êëèåíò ðàçðàáàòûâàåò ñïåöèàëèçèðîâàííîå óñòðîéñòâî. Îíî áóäåò ïîääåðæèâàòü òîëüêî íåêîòîðîå ïîäìíîæåñòâî XHTML è âñåãäà áóäåò ïîëó÷àòü äîñòóï ê Èíòåðíåò ÷åðåç ïðîêñè-ñåðâåð, âûïîëíÿþùèé ïðîâåðêó êîððåêòíîñòè ñîäåðæèìîãî ïåðåä ïåðåäà÷åé åãî êëèåíòó (ñ öåëüþ ìèíèìèçàöèè îáðàáîòêè îøèáîê êëèåíòîì). Äëÿ ãàðàíòèè êîððåêòíîñòè ñîäåðæèìîãî ðàçðàáîò÷èê ñîçäàåò DTD, ÿâëÿþùååñÿ ïîäìíîæåñòâîì XHTML, ñ ïîìîùüþ îïèñàííûõ â ýòîì ðàçäåëå ïðîöåññîâ. Çàòåì íîâîå DTD ìîæåò èñïîëüçîâàòüñÿ ïðîêñè-ñåðâåðîì è óñòðîéñòâàìè, à òàêæå ðàçðàáîò÷èêàìè êîíòåíòà, ÷òîáû îíè ìîãëè ïðîâåðèòü ñîîòâåòñòâèå ñâîèõ äîêóìåíòîâ ýòîìó DTD. Ýòè ïðîñòûå äåéñòâèÿ ïîçâîëÿþò êëèåíòó èñïîëüçîâàòü îïðåäåëåííóþ â íàñòîÿùåì äîêóìåíòå àðõèòåêòóðó, ñóùåñòâåííî óäåøåâèòü ðàçðàáîòêó DTD è ãàðàíòèðîâàòü ïîëíóþ ïîääåðæêó âûáðàííîãî ìíîæåñòâà XHTML.
Ä.1. Îïðåäåëåíèå äîïîëíèòåëüíûõ àòðèáóòîâ
 íåêîòîðûõ ñëó÷àÿõ ðàñøèðåíèå XHTML ìîæåò çàêëþ÷àòüñÿ òîëüêî â èñïîëüçîâàíèè äîïîëíèòåëüíûõ àòðèáóòîâ. Àòðèáóòû ìîãóò äîáàâëÿòüñÿ â ýëåìåíò ïðîñòî ïóòåì óêàçàíèÿ äîïîëíèòåëüíîãî ATTLIST äëÿ ýòîãî ýëåìåíòà, íàïðèìåð:
<!ATTLIST %a.qname;
%MyModule.pfx;myattr CDATA #IMPLIED
%MyModule.xmlns.extras.attrib;
>
Ýòî ïîçâîëèò äîáàâèòü àòðèáóò "myattr" ñ íåîáÿçàòåëüíûì ïðåôèêñîì, îïðåäåëÿåìûì "%MyModule.pfx" è çíà÷åíèåì òèïà CDATA, â ýëåìåíò "a". Ýòî ïðîèñõîäèò, ïîòîìó ÷òî â XML äîïóñêàåòñÿ îïðåäåëåíèå èëè ðàñøèðåíèå ñïèñêà àòðèáóòîâ ýëåìåíòà â ëþáîé òî÷êå DTD. Ïîäðîáíåå î êâàëèôèöèðîâàííûõ èìåíàõ è ïðåôèêñàõ ïðîñòðàíñòâ èìåí ñì. â ðàçäåëå "Îïðåäåëåíèå ïðîñòðàíñòâà èìåí ìîäóëÿ".
Íà ñàìîì äåëå äîáàâëåíèå àòðèáóòà â DTD íå îçíà÷àåò, ÷òî ïðîèçâîëüíûé êëèåíò áóäåò âûïîëíÿòü êàêèå-ëèáî íîâûå äåéñòâèÿ. Îäíàêî ðàçðàáîò÷èêè êîíòåíòà ìîãóò èñïîëüçîâàòü äîïîëíèòåëüíûå àòðèáóòû äëÿ õðàíåíèÿ èíôîðìàöèè, äîñòóï ê êîòîðîé áóäåò îñóùåñòâëÿòüñÿ ñ ïîìîùüþ ñêðèïòîâ ÷åðåç îáúåêòíóþ ìîäåëü äîêóìåíòà (íàïðèìåð).
Ä.2. Îïðåäåëåíèå äîïîëíèòåëüíûõ ýëåìåíòîâ
Îïðåäåëåíèå äîïîëíèòåëüíûõ ýëåìåíòîâ íåíàìíîãî ñëîæíåå îïðåäåëåíèÿ äîïîëíèòåëüíûõ àòðèáóòîâ. Îáû÷íî àâòîðû DTD äîëæíû ïèñàòü îáúÿâëåíèå äëÿ êàæäîãî ýëåìåíòà:
<!-- Â ïîäìîäóëå qname -->
<!ENTITY % MyModule.myelement.qname "%MyModule.pfx;myelement" >
<!ENTITY % MyModule.myotherelement.qname "%MyModule.pfx;myotherelement" >
<!-- Â ïîäìîäóëå declaration -->
<!ELEMENT %MyModule.myelement.qname;
( #PCDATA | %MyModule.myotherelement.qname; )* >
<!ATTLIST %MyModule.myelement.qname;
myattribute CDATA #IMPLIED
>
<!ELEMENT %MyModule.myotherelement.qname; EMPTY >
Ïîñëå îïðåäåëåíèÿ ýëåìåíòû íåîáõîäèìî èíòåãðèðîâàòü â ìîäåëü ñîäåðæèìîãî. Ñòðàòåãèè èíòåãðàöèè íîâûõ ýëåìåíòîâ èëè íàáîðîâ ýëåìåíòîâ â ìîäåëü ñîäåðæèìîãî îáñóæäàþòñÿ â ñëåäóþùåì ðàçäåëå.
Ä.3. Îïðåäåëåíèå ìîäåëè ñîäåðæèìîãî äëÿ íàáîðà ìîäóëåé
Ïîñêîëüêó ìîäåëü ñîäåðæèìîãî ìîäóëåé XHTML ïîëíîñòüþ ïàðàìåòðèçîâàíà, àâòîðû DTD ìîãóò èçìåíÿòü ìîäåëü ñîäåðæèìîãî äëÿ êàæäîãî ýëåìåíòà êàæäîãî ìîäóëÿ. Ïîäðîáíî èíòåðôåéñ ìîäóëÿ DTD îïðåäåëåí â ðàçäåëå "Ïîñòðîåíèå ìîäóëåé DTD". Â îñíîâíîì äëÿ òàêîãî èçìåíåíèÿ èñïîëüçóþòñÿ äâà ñïîñîáà:
Ïåðåîïðåäåëåíèå ïàðàìåòðè÷åñêîé ñóùíîñòè ".content" äëÿ êàæäîãî ýëåìåíòà.
Ïåðåîïðåäåëåíèå îäíîé èëè íåñêîëüêèõ ñóùíîñòåé ãëîáàëüíîé ìîäåëè ñîäåðæèìîãî (îáû÷íî ÷åðåç ïàðàìåòðè÷åñêóþ ñóùíîñòü ".extras").
Âûáîð ñòðàòåãèè çàâèñèò îò ïðèðîäû îáúåäèíÿåìûõ ìîäóëåé è èíòåãðèðóåìûõ ýëåìåíòîâ.  îñòàâøåéñÿ ÷àñòè äàííîãî ðàçäåëà îïèñàíû òåõíîëîãèè èíòåãðèðîâàíèÿ äâóõ ðàçëè÷íûõ êëàññîâ èëè ìîäóëåé.
Ä.3.1. Èíòåãðàöèÿ àâòîíîìíîãî ìîäóëÿ â XHTML
Åñëè ìîäóëü (ïîìíèòå, ÷òî ìîäóëü ìîæåò áûòü íàáîðîì äðóãèõ ìîäóëåé) ñîäåðæèò ýëåìåíòû, ñâÿçàííûå â ñâîåé ìîäåëè ñîäåðæèìîãî òîëüêî äðóã ñ äðóãîì, îí íàçûâàåòñÿ "âíóòðåííå ïîëíûì". Ïî ñóùåñòâó, òàêîé ìîäóëü ìîæåò èñïîëüçîâàòüñÿ ñàìîñòîÿòåëüíî. Íàïðèìåð, ìîæíî îïðåäåëèòü DTD, ïðåäñòàâëÿþùèå òîëüêî ýòîò ìîäóëü, è èñïîëüçîâàòü îäèí èç åãî ýëåìåíòîâ â êà÷åñòâå êîðíåâîãî. Ïðîöåññ èíòåãðàöèè òàêîãî ìîäóëÿ â XHTML ñîñòîèò èç òðåõ øàãîâ:
Îïðåäåëèòü, êàêèå ýëåìåíòû áóäóò ñ÷èòàòüñÿ êîðíåâûìè äëÿ íîâîãî ìîäóëÿ.
Îïðåäåëèòü, êóäà ýòè ýëåìåíòû äîëæíû ïðèêðåïëÿòüñÿ â äåðåâå ñîäåðæèìîãî XHTML.
Äëÿ êàæäîé òî÷êè ïðèêðåïëåíèÿ â äåðåâå ñîäåðæèìîãî äîáàâèòü êîðíåâûå ýëåìåíòû â îïðåäåëåíèå ñîäåðæèìîãî ýëåìåíòîâ XHTML.
Ðàññìîòðèì ïðèêðåïëåíèå ýëåìåíòîâ, îïðåäåëåííûõ âûøå. Â ýòîì ïðèìåðå ýëåìåíò myelement ÿâëÿåòñÿ êîðíåâûì. ×òîáû ïðèêðåïèòü åãî ïîä ýëåìåíòîì img è òîëüêî äëÿ ýëåìåíòà img XHTML, íóæíî ñäåëàòü ñëåäóþùåå:
<!ENTITY % img.content "( %MyModule.myelement.qname; )*">
DTD, îïðåäåëåííîå ñ òàêîé ìîäåëüþ ñîäåðæèìîãî, ïîçâîëèò ñóùåñòâîâàòü äîêóìåíòàì ñ ôðàãìåíòàìè íàïîäîáèå ñëåäóþùåãî:
<img src="...">
<myml:myelement >Ñîäåðæèìîå ëîêàëüíî îïðåäåëåííîãî ýëåìåíòà</myml:myelement>
</img>
Âàæíî ïîìíèòü, ÷òî îáû÷íî ýëåìåíò img èìååò ìîäåëü ñîäåðæèìîãî EMPTY. Äîáàâëÿÿ myelement â ýòó ìîäåëü ñîäåðæèìîãî, ìû íà ñàìîì äåëå çàìåíÿåì EMPTY íà myelement.  ñëó÷àå äðóãèõ ýëåìåíòîâ, äëÿ êîòîðûõ óæå îïðåäåëåíû ìîäåëè ñîäåðæèìîãî, äîáàâëåíèå ýëåìåíòà ïîòðåáóåò ïåðåîáúÿâëåíèÿ ñóùåñòâóþùåãî ñîäåðæèìîãî â äîïîëíåíèå ê myelement.
Ä.3.2. Èñïîëüçîâàíèå íîâîãî ìîäóëÿ â ìîäóëÿõ XHTML
Ðàñøèðèì ïðèâåäåííûé âûøå ïðèìåð. ×òîáû ïðèêðåïèòü íàø ìîäóëü ê ëþáîìó ìîäóëþ, â êîòîðîì äîïóñòèìà ãðóïïà ìîäåëè %Flow.mix, ïîòðåáóåòñÿ ñëåäóþùåå:
<!ENTITY % Misc.extra
"| %MyModule.myelement.qname;" >
Ïîñêîëüêó êëàññ ìîäåëè ñîäåðæèìîãî %Misc.extra èñïîëüçóåòñÿ â ïàðàìåòðè÷åñêîé ñóùíîñòè %Misc.class, à ýòà ïàðàìåòðè÷åñêàÿ ñóùíîñòü èñïîëüçóåòñÿ âî âñåõ ìîäóëÿõ XHTML, íîâûé ìîäóëü áóäåò äîñòóïåí âî âñåõ ðàñøèðåííûõ òèïàõ äîêóìåíòîâ XHTML.
Ä.4. Ñîçäàíèå íîâîãî DTD
Äî ñèõ ïîð â ïðèìåðàõ äàííîãî ðàçäåëà îïèñûâàëèñü ìåòîäû ðàñøèðåíèÿ XHTML è ìîäåëè ñîäåðæèìîãî XHTML. Ñëåäóþùèì øàãîì áóäåò ñáîð ìîäóëåé, ñîñòàâëÿþùèõ DTD, â îäèí äðàéâåð DTD, îáúåäèíÿþùèé íîâûå îïðåäåëåíèÿ òàê, ÷òîáû îíè ïåðåîïðåäåëÿëè è ðàñøèðÿëè äîëæíûì îáðàçîì îñíîâíûå îïðåäåëåíèÿ XHTML.
Ä.4.1. Ñîçäàíèå ïðîñòîãî DTD
Èñïîëüçóÿ ïðèâåäåííûé âûøå òðèâèàëüíûé ïðèìåð, ìîæíî ëåãêî îïðåäåëèòü íîâîå DTD, èñïîëüçóþùåå è ðàñøèðÿþùåå ìîäóëè XHTML. Äëÿ íà÷àëà îïðåäåëèì íîâûå ýëåìåíòû è èõ ìîäåëü ñîäåðæèìîãî â ìîäóëå:
<!-- Ôàéë: simpleml-model-1.mod -->
<!-- Îáúÿâèì ïàðàìåòðè÷åñêóþ ñóùíîñòü, îïðåäåëÿþùóþ âíåøíèå ïðîñòðàíñòâà èìåí,
èñïîëüçóåìûå â ýòîì ìîäóëå -->
<!-- Óñòàíîâèì ïàðàìåòðè÷åñêóþ ñóùíîñòü (ÏÑ), èñïîëüçóåìóþ âî âñåõ ATTLIST â ýòîì ìîäóëå
NS.prefixed.attrib èíèöèàëèçèðóåòñÿ â ìîäóëå xhtml-qname, à
SimpleML.ns.noprefix.attrib - â ôàéëå äðàéâåðà SimpleML
DTD.-->
<!ENTITY % SimpleML.xmlns.attrib
"%NS.decl.attrib;"
>
<!ENTITY % SimpleML.Common.attrib
"%SimpleML.xmlns.attrib;
id ID #IMPLIED"
>
<!ENTITY % SimpleML.element.qname "%SimpleML.pfx;element" >
<!ENTITY % SimpleML.otherelement.qname "%SimpleML.pfx;otherelement" >
<!ELEMENT %SimpleML.element.qname;
( #PCDATA | %SimpleML.otherelement.qname; )* >
<!ATTLIST %SimpleML.element.qname;
myattribute CDATA #IMPLIED
%SimpleML.Common.attrib;
>
<!ELEMENT %SimpleML.otherelement.qname; EMPTY >
<!ATTLIST %SimpleML.otherelement.qname;
%SimpleML.Common.attrib;
>
<!ENTITY % SimpleML.img.myattr.qname "%SimpleML.pfx;myattr" >
<!ATTLIST %img.qname;
%SimpleML.img.myattr.qname; CDATA #IMPLIED
>
<!-- Äîáàâèì íàøè ýëåìåíòû â ìîäåëü ñîäåðæèìîãî XHTML -->
<!ENTITY % Misc.class
"| %SimpleML.element.qname;" >
<!-- Ââåäåì ìîäåëü ñîäåðæèìîãî XHTML Basic -->
<!ENTITY % xhtml-basic-model.mod
PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10-model-1.mod" >
%xhtml-basic-model.mod;
Çàòåì îïðåäåëèì äðàéâåð DTD äëÿ íîâîãî ÿçûêà:
<!-- ôàéë: simpleml-1_0.dtd -->
<!-- Ââåäåì òèïû äàííûõ XHTML -->
<!ENTITY % xhtml-datatypes.mod
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" >
%xhtml-datatypes.mod;
<!-- Îáúÿâèì ôàêòè÷åñêîå ïðîñòðàíñòâî èìåí äàííîãî ìîäóëÿ -->
<!ENTITY % SimpleML.xmlns "http://www.example.com/xmlns/simpleml1" >
<!-- Îòêëþ÷èì ïî óìîë÷àíèþ ïðåôèêñàöèþ äëÿ íîâîãî ìîäóëÿ -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % SimpleML.prefixed "%NS.prefixed;" >
<!-- Ïðåôèêñ ïî óìîë÷àíèþ äëÿ ýëåìåíòîâ è àòðèáóòîâ ìîäóëÿ -->
<!ENTITY % SimpleML.prefix "simpleml" >
<!-- Åñëè â ïðîñòðàíñòâå èìåí ìîäóëÿ èñïîëüçóåòñÿ ïðåôèêñàöèÿ -->
<![%SimpleML.prefixed;[
<!ENTITY % SimpleML.pfx "%SimpleML.prefix;:" >
]]>
<!ENTITY % SimpleML.pfx "" >
<![%SimpleML.prefixed;[
<!ENTITY % SimpleML.xmlns.extra.attrib
"xmlns:%SimpleML.prefix; %URI.datatype; #FIXED '%SimpleML.xmlns;'" >
]]>
<!ENTITY % SimpleML.xmlns.extra.attrib "" >
<!ENTITY % XHTML.xmlns.extra.attrib
"%SimpleML.xmlns.extra.attrib;"
>
<!-- Óñòàíîâèì ìîäåëü ñîäåðæèìîãî íàøåãî ÿçûêà -->
<!ENTITY % xhtml-model.mod
SYSTEM "simpleml-model-1.mod" >
<!-- Èíèöèàëèçèðóåì xhtml basic DTD äëÿ âñåé ðàáîòû -->
<!ENTITY % xhtml-basic.dtd
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" >
%xhtml-basic.dtd;
Ïðè èñïîëüçîâàíèè ýòîãî DTD ìîæíî èñïîëüçîâàòü ïðåôèêñû ïðîñòðàíñòâà èìåí XML. Ïðè ýòîì íà÷àëî äîêóìåíòà, èñïîëüçóþùåãî ýòî íîâîå DTD, ìîæåò âûãëÿäåòü òàê:
<!DOCTYPE html SYSTEM "simpleml-1_0.dtd" [
<!ENTITY % SimpleML.prefixed "INCLUDE">
]>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:simpleml="http://www.example.com/xmlns/simpleml1" >
<head>
<title>Ïðèìåð èñïîëüçîâàíèÿ çíà÷åíèé ïî óìîë÷àíèþ</title>
</head>
<body>
<p>Ñîäåðæèìîå ïðîñòðàíñòâà èìåí XHTML</p>
<simpleml:element>
Ñîäåðæèìîå ïðîñòðàíñòâà èìåí SimpleML.
<simpleml:otherelement />
</simpleml:element>
<p><img src="missing" alt="Èçîáðàæåíèå îòñóòñòâóåò" simpleml:myattr="value"/></p>
</body>
</html>
Ä.4.2. Ñîçäàíèå DTD ïóòåì ðàñøèðåíèÿ XHTML
Áûâàþò ñèòóàöèè, êîãäà â XHTML (èëè â ïîäìíîæåñòâî XHTML) äîáàâëÿþòñÿ ïîëíûå, äîïîëíèòåëüíûå èëè ñëîæíûå ìîäóëè. Ïî ñóùåñòâó òàêàÿ ñèòóàöèÿ íå îòëè÷àåòñÿ îò ïðèâåäåííîãî âûøå òðèâèàëüíîãî ïðèìåðà, åäèíñòâåííîå ðàçëè÷èå çàêëþ÷àåòñÿ â òîì, ÷òî äîáàâëÿåìûé ìîäóëü îáúåäèíÿåòñÿ â DTD ïî ññûëêå, à íå ïóòåì ÿâíîãî âêëþ÷åíèÿ íîâûõ îïðåäåëåíèé â DTD.
Îäíèì èç òàêèõ ñëîæíûõ ìîäóëåé ÿâëÿåòñÿ DTD äëÿ [MATHML]. ×òîáû îáúåäèíèòü MathML è XHTML â îäíî DTD, àâòîð ìîæåò ïðîñòî îïðåäåëèòü, ãäå ñîäåðæèìîå MathML áóäåò äîïóñòèìî â ïðåäåëàõ äîêóìåíòà, è äîáàâèòü êîðíåâîé ýëåìåíò MathML â ýòó òî÷êó ìîäåëè ñîäåðæèìîãî. Ñíà÷àëà îïðåäåëèì ìîäóëü ìîäåëè ñîäåðæèìîãî, èíèöèàëèçèðóþùèé MathML DTD è ïîäêëþ÷àþùèé åãî ê ìîäåëè ñîäåðæèìîãî:
<!-- Ôàéë: mathml-model.mod -->
<!ENTITY % XHTML1-math
PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/mathml2.dtd" >
%XHTML1-math;
<!ENTITY % Inlspecial.extra
"%a.qname; | %img.qname; | %object.qname; | %map.qname;
| %Mathml.Math.qname;" >
Çàòåì îïðåäåëèì äðàéâåð DTD, èäåíòèôèöèðóþùèé íàø íîâûé ìîäóëü ìîäåëè êàê ìîäåëü ñîäåðæèìîãî äëÿ DTD è ïåðåäàþùèé îáðàáîòêó äðàéâåðó XHTML 1.1 (íàïðèìåð):
<!-- Ôàéë: xhtml-mathml.dtd -->
<!ENTITY % xhtml-model.mod
SYSTEM "mathml-model.mod" >
<!ENTITY % xhtml11.dtd
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
%xhtml11.dtd;
Ä.4.3. Ñîçäàíèå DTD ïóòåì óäàëåíèÿ è çàìåíû ìîäóëåé XHTML
Åùå îäèí ñïîñîá èñïîëüçîâàíèÿ ìîäóëåé XHTML àâòîðàìè DTD - îïðåäåëåíèå DTD, ÿâëÿþùåãîñÿ ïîäìíîæåñòâîì ñåìåéñòâà òèïîâ äîêóìåíòîâ XHTML (åñëè, íàïðèìåð, îíè ñîçäàþò óñòðîéñòâà èëè ïðîãðàììíîå îáåñïå÷åíèå, ïîääåðæèâàþùåå òîëüêî ïîäìíîæåñòâî XHTML). Ýòî íåíàìíîãî ñëîæíåå ïðåäûäóùåãî ïðèìåðà. Âîò îñíîâíûå øàãè:
Âçÿòü DTD ñåìåéñòâà XHTML â êà÷åñòâå îñíîâû íîâîãî òèïà äîêóìåíòà (ìû áóäåì èñïîëüçîâàòü XHTML 1.1).
Âûáðàòü ìîäóëè, êîòîðûå äîëæíû áûòü óäàëåíû èç ýòîãî DTD.
Îïðåäåëèòü íîâîå DTD, â êîòîðîì ýòè ìîäóëè îòìå÷åíû êàê "IGNORE".
Ââåñòè íîâûå ìîäóëè.
Íàïðèìåð, ðàññìîòðèì óñòðîéñòâî, èñïîëüçóþùåå ìîäóëè XHTML, íî áåç ôîðì è òàáëèö. DTD äëÿ òàêîãî óñòðîéñòâà áóäåò âûãëÿäåòü ñëåäóþùèì îáðàçîì:
<!-- Ôàéë: xhtml-simple.dtd -->
<!ENTITY % xhtml-form.module "IGNORE" >
<!ENTITY % xhtml-table.module "IGNORE" >
<!ENTITY % xhtml-table.module "IGNORE" >
<!-- Ââåäåì îñíîâíîé ìîäóëü òàáëèö -->
<!ENTITY % xhtml-basic-table.mod
PUBLIC "-//W3C//ELEMENTS XHTML Basic Tables 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-basic-table-1.mod"
>
%xhtml-basic-table.mod;
<!ENTITY % xhtml11.mod
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
%xhtml11.mod;
Îáðàòèòå âíèìàíèå, ÷òî ôàêòè÷åñêè ìîäåëü ñîäåðæèìîãî XHTML 1.1 DTD íå èçìåíÿåòñÿ. Îäíàêî, ïîñêîëüêó XML èãíîðèðóåò íå îïðåäåëåííûå â ìîäåëè ñîäåðæèìîãî ýëåìåíòû, ýëåìåíòû ôîðì è òàáëèö àâòîìàòè÷åñêè âûáðàñûâàþòñÿ èç ìîäåëè.
Ä.4.4. Ñîçäàíèå íîâîãî DTD
È, íàêîíåö, íåêîòîðûì àâòîðàì DTD ìîæåò ïîíàäîáèòüñÿ íà÷àòü âñå ñ íóëÿ, èñïîëüçóÿ ìîäóëÿðèçàöèþ XHTML â êà÷åñòâå ñðåäñòâà ïîñòðîåíèÿ íîâîãî ÿçûêà ðàçìåòêè. ßçûê äîëæåí ñîñòîÿòü èç íåîáõîäèìîãî ìèíèìàëüíîãî ÷èñëà ìîäóëåé XHTML. Êðîìå òîãî, îí ìîæåò ñîäåðæàòü äðóãèå ìîäóëè, îïðåäåëåííûå ñ ïîìîùüþ XHTML, èëè êàêèå-ëèáî äðóãèå ìîäóëè, êîòîðûå õî÷åò èñïîëüçîâàòü àâòîð.  äàííîì ïðèìåðå ìû âîçüìåì îáÿçàòåëüíûå ìîäóëè XHTML, äîáàâèì íåêîòîðûå ìîäóëè, îïðåäåëåííûå ñ ïîìîùüþ XHTML, è äîáàâèì îïðåäåëåííûé âûøå ìîäóëü.
Ïåðâûé øàã - èñïîëüçîâàòü äëÿ íîâîãî ìîäóëÿ êâàëèôèöèðîâàííûõ èìåí XHTML-øàáëîí, èçìåíåííûé òàêèì îáðàçîì, ÷òîáû îí ïîçâîëÿë îïðåäåëÿòü êâàëèôèöèðîâàííûå èìåíà è ïðîñòðàíñòâà èìåí äëÿ íàøèõ íîâûõ ýëåìåíòîâ.
<!-- ôàéë: myml-qname-1.mod -->
<!-- Ââåäåì òèïû äàííûõ - äëÿ îáúÿâëåíèÿ xmlns attributes èñïîëüçóåòñÿ
ÏÑ URI.datatype. -->
<!ENTITY % MyML-datatypes.mod
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" >
%MyML-datatypes.mod;
<!-- Îòêëþ÷èì ïî óìîë÷àíèþ ïðåôèêñàöèþ äëÿ ýòîãî ìîäóëÿ -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % MyML.prefixed "%NS.prefixed;" >
<!-- Îáúÿâèì ôàêòè÷åñêîå ïðîñòðàíñòâî èìåí äàííîãî ìîäóëÿ -->
<!ENTITY % MyML.xmlns "http://www.example.com/xmlns/myml" >
<!-- Îáúÿâèì ïðåôèêñ ïî óìîë÷àíèþ äëÿ äàííîãî ìîäóëÿ -->
<!ENTITY % MyML.prefix "myml" >
<!-- Åñëè â ïðîñòðàíñòâå èìåí ìîäóëÿ èñïîëüçóåòñÿ ïðåôèêñàöèÿ -->
<![%MyML.prefixed;[
<!ENTITY % MyML.pfx "%MyML.prefix;:" >
]]>
<!ENTITY % MyML.pfx "" >
<!-- Îáúÿâèì ïàðàìåòðè÷åñêóþ ñóùíîñòü, îïðåäåëÿþùóþ âíåøíèå ïðîñòðàíñòâà èìåí,
èñïîëüçóåìûå â ýòîì ìîäóëå -->
<!ENTITY % MyML.xmlns.extra.attrib "" >
<!-- Îáúÿâèì ÏÑ, îïðåäåëÿþùóþ àòðèáóòû xmlns äëÿ èñïîëüçîâàíèÿ MyML. -->
<![%MyML.prefixed;[
<!ENTITY % MyML.xmlns.attrib
"xmlns:%MyML.prefix; %URI.datatype; #FIXED '%MyML.xmlns;'
%MyML.xmlns.extra.attrib;"
>
]]>
<!ENTITY % MyML.xmlns.attrib
"xmlns %URI.datatype; #FIXED '%MyML.xmlns;'
%MyML.xmlns.extra.attrib;"
>
<!-- Óáåäèìñÿ, ÷òî àòðèáóòû ïðîñòðàíñòâà èìåí MyML âêëþ÷åíû â íàáîð
àòðèáóòîâ XHTML -->
<![%NS.prefixed;[
<!ENTITY % XHTML.xmlns.extra.attrib
"%MyML.xmlns.attrib;" >
]]>
<!ENTITY % XHTML.xmlns.extra.attrib
""
>
<!-- Òåïåðü îáúÿâèì èìåíà ýëåìåíòîâ -->
<!ENTITY % MyML.myelement.qname "%MyML.pfx;myelement" >
<!ENTITY % MyML.myotherelement.qname "%MyML.pfx;myotherelement" >
Çàòåì îïðåäåëèì ìîäóëü, îïðåäåëÿþùèé ýëåìåíòû è àòðèáóòû, ñ èñïîëüçîâàíèåì XHTML-øàáëîíà.
<!-- ...................................................................... -->
<!-- Ìîäóëü My Elements ................................................... -->
<!-- ôàéë: myml-elements-1_0.mod
PUBLIC "-//MY COMPANY//ELEMENTS XHTML MyML Elements 1.0//EN"
SYSTEM "http://example.com/DTDs/myml-elements-1_0.mod"
xmlns:myml="http://example.com/DTDs/myml-1_0.dtd"
...................................................................... -->
<!-- Ìîäóëü My Elements
myelement
myotherelement
Ýòîò ìîäóëü òîëüêî ïðåäîñòàâëÿåò ñòðóêòóðó äëÿ íåêîòîðîãî
ñîäåðæèìîãî PCDATA.
-->
<!ELEMENT %MyML.myelement.qname;
( #PCDATA | %MyML.myotherelement.qname; )* >
<!ATTLIST %MyML.myelement.qname;
myattribute CDATA #IMPLIED
%MyML.xmlns.attrib;
>
<!ELEMENT %MyML.myotherelement.qname; EMPTY >
<!ATTLIST %MyML.myotherelement.qname;
%MyML.xmlns.attrib;
>
<!ENTITY % MyML.img.myattr.qname "%MyML.pfx;myattr" >
<!ATTLIST %img.qname;
%MyML.img.myattr.qname; CDATA #IMPLIED
%MyML.xmlns.attrib;
>
<!-- êîíåö myml-elements-1_0.mod -->
Òåïåðü ïîñòðîèì îïèñàíèå ìîäåëè ñîäåðæèìîãî, îáúåäèíÿþùåå íîâûå ýëåìåíòû è àòðèáóòû ñ ïðî÷èìè ýëåìåíòàìè XHTML. Ñëåäóþùèé ïðèìåð ïîñòðîåí íà ìîäåëè ñîäåðæèìîãî XHTML, íî ÿâëÿåòñÿ ïîëíûì è àâòîíîìíûì ìîäóëåì ìîäåëè ñîäåðæèìîãî:
<!-- ...................................................................... -->
<!-- Ìîäóëü MyML Model ................................................... -->
<!-- ôàéë: myml-model-1.mod
PUBLIC "-//MY COMPANY//ELEMENTS XHTML MyML Model 1.0//EN"
SYSTEM "http://example.com/DTDs/myml-model-1_0.mod"
xmlns:myml="http://www.example.com/xmlns/myml"
...................................................................... -->
<!-- Îïðåäåëèì ìîäåëü ñîäåðæèìîãî äëÿ Misc.extra -->
<!ENTITY % Misc.class
"| %MyML.myelement.qname; ">
<!-- .................... Âñòðîåííûå ýëåìåíòû ......................... -->
<!ENTITY % HeadOpts.mix
"( %meta.qname; )*" >
<!ENTITY % I18n.class "" >
<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >
<!ENTITY % InlPhras.class
"| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
| %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
| %abbr.qname; | %acronym.qname; | %q.qname;" >
<!ENTITY % InlPres.class
"" >
<!ENTITY % Anchor.class "| %a.qname;" >
<!ENTITY % InlSpecial.class "| %img.qname; " >
<!ENTITY % Inline.extra "" >
<!-- %Inline.class; âêëþ÷àåò âñå âñòðîåííûå ýëåìåíòû,
èñïîëüçóåìûå â êà÷åñòâå êîìïîíåíòîâ â ñìåñÿõ
-->
<!ENTITY % Inline.class
"%InlStruct.class;
%InlPhras.class;
%InlPres.class;
%Anchor.class;
%InlSpecial.class;"
>
<!-- %InlNoAnchor.class; âêëþ÷àåò âñå óñòðîåííûå ýëåìåíòû, íå ÿâëÿþùèåñÿ ÿêîðÿìè,
èñïîëüçóåìûå â êà÷åñòâå êîìïîíåíòîâ â ñìåñÿõ
-->
<!ENTITY % InlNoAnchor.class
"%InlStruct.class;
%InlPhras.class;
%InlPres.class;
%InlSpecial.class;"
>
<!-- %InlNoAnchor.class; âêëþ÷àåò âñå óñòðîåííûå ýëåìåíòû, íå ÿâëÿþùèåñÿ ÿêîðÿìè
-->
<!ENTITY % InlNoAnchor.mix
"%InlNoAnchor.class;
%Misc.class;"
>
<!-- %Inline.mix; âêëþ÷àåò âñå âñòðîåííûå ýëåìåíòû, âêëþ÷àÿ %Misc.class;
-->
<!ENTITY % Inline.mix
"%Inline.class;
%Misc.class;"
>
<!-- ..................... Ýëåìåíòû óðîâíÿ áëîêà ...................... -->
<!ENTITY % Heading.class
"%h1.qname; | %h2.qname; | %h3.qname;
| %h4.qname; | %h5.qname; | %h6.qname;" >
<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >
<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >
<!ENTITY % BlkPhras.class
"| %pre.qname; | %blockquote.qname; | %address.qname;" >
<!ENTITY % BlkPres.class "" >
<!ENTITY % Block.extra "" >
<!-- %Block.class; âêëþ÷àåò âñå ýëåìåíòû óðîâíÿ áëîêà,
èñïîëüçóåìûå â êà÷åñòâå êîìïîíåíòîâ â ñìåñÿõ
-->
<!ENTITY % Block.class
"%BlkStruct.class;
%BlkPhras.class;
%BlkPres.class;
%Block.extra;"
>
<!-- %Block.mix; âêëþ÷àåò âñå ýëåìåíòû óðîâíÿ áëîêà ïëþñ %Misc.class;
-->
<!ENTITY % Block.mix
"%Heading.class;
| %List.class;
| %Block.class;
%Misc.class;"
>
<!-- ................ Âñå ýëåìåíòû ñîäåðæèìîãî .................. -->
<!-- %Flow.mix; âêëþ÷àåò âñå òåêñòîâîå ñîäåðæèìîå, óðîâíÿ áëîêà è âñòðîåííîå
-->
<!ENTITY % Flow.mix
"%Heading.class;
| %List.class;
| %Block.class;
| %Inline.class;
%Misc.class;"
>
<!-- ñïåöèàëüíàÿ ìîäåëü ñîäåðæèìîãî äëÿ ýëåìåíòà pre -->
<!ENTITY % pre.content
"( #PCDATA
| %Inline.class; )*"
>
<!-- êîíåö myml-model-1.mod -->
È, íàêîíåö, áóäåì èñïîëüçîâàòü XHTML-øàáëîí íîâîãî DTD, ñîîòâåòñòâóþùèì îáðàçîì èçìåíåííûé äëÿ íàøåãî ÿçûêà ðàçìåòêè:
<!-- ....................................................................... -->
<!-- MYML DTD ............................................................. -->
<!-- ôàéë: myml-1_0.dtd -->
<!-- Ýòî äðàéâåð DTD äëÿ myml 1.0.
Èñïîëüçóéòå äëÿ åãî îïðåäåëåíèÿ ñëåäóþùèé îáùèé ôîðìàëüíûé èäåíòèôèêàòîð:
"-//MY COMPANY//DTD XHTML MYML 1.0//EN"
È ñëåäóþùåå ïðîñòðàíñòâî èìåí äëÿ óíèêàëüíûõ äëÿ myml ýëåìåíòîâ:
xmlns:myml="http://www.example.com/xmlns/myml"
-->
<!ENTITY % XHTML.version "-//MY COMPANY//DTD XHTML MYML 1.0//EN" >
<!-- çàðåçåðâèðîâàíî äëÿ èñïîëüçîâàíèÿ ñ ïðîôèëÿìè äîêóìåíòîâ ------->
<!ENTITY % XHTML.profile "" >
<!-- Óêàçàòü íà èñïîëüçîâàíèå ìîäóëÿ êâàëèôèöèðîâàííûõ èìåí â êà÷åñòâå
äîïîëíèòåëüíîãî äðàéâåðà qname -->
<!ENTITY % xhtml-qname-extra.mod
SYSTEM "myml-qname-1.mod" >
<!-- Îïðåäåëèì èñïîëüçóåìóþ ìîäåëü ñîäåðæèìîãî -->
<!ENTITY % xhtml-model.mod
SYSTEM "myml-model-1.mod" >
<!-- Îòêëþ÷èì ïîääåðæêó äâóíàïðàâëåííîãî òåêñòà -->
<!ENTITY % XHTML.bidi "IGNORE" >
<!-- Ââåäåì ñòðóêòóðó XHTML -->
<!ENTITY % xhtml-framework.mod
PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" >
%xhtml-framework.mod;
<!-- Ìîäóëü îñíîâíîãî òåêñòà (îáÿçàòåëåí) ............................... -->
<!ENTITY % xhtml-text.mod
PUBLIC "-//W3C//ELEMENTS XHTML Basic Text 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" >
%xhtml-text.mod;
<!-- Ìîäóëü ãèïåðòåêñòà (îáÿçàòåëåí) .................................... -->
<!ENTITY % xhtml-hypertext.mod
PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" >
%xhtml-hypertext.mod;
<!-- Ìîäóëü ñïèñêîâ (îáÿçàòåëåí) .......................................... -->
<!ENTITY % xhtml-list.mod
PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" >
%xhtml-list.mod;
<!-- Ìîäóëü My Elements ................................................... -->
<!ENTITY % MyML-elements.mod
SYSTEM "myml-elements-1.mod" >
%MyML-elements.mod;
<!-- Ìîäóëü èçîáðàæåíèé XHTML .................................... -->
<!ENTITY % xhtml-image.mod
PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" >
%xhtml-image.mod;
<!-- Ìîäóëü ìåòàèíôîðìàöèè äîêóìåíòà ..................................... -->
<!ENTITY % xhtml-meta.mod
PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" >
%xhtml-meta.mod;
<!-- Ìîäóëü ñòðóêòóðû äîêóìåíòà (îáÿçàòåëåí) .............................. -->
<!ENTITY % xhtml-struct.mod
PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" >
%xhtml-struct.mod;
Ä.5. Èñïîëüçîâàíèå íîâîãî DTD
Êîãäà ðàçðàáîòêà íîâîãî DTD çàâåðøåíà, îíî ìîæåò èñïîëüçîâàòüñÿ â ëþáîì äîêóìåíòå. Èñïîëüçîâàíèå DTD äîñòèãàåòñÿ ïóòåì ññûëêè íà íåãî â îáúÿâëåíèè DOCTYPE äîêóìåíòà:
<!DOCTYPE html SYSTEM "myml-1_0.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Ïðèìåð èñïîëüçîâàíèÿ çíà÷åíèé ïî óìîë÷àíèþ</title>
</head>
<body>
<p>Ñîäåðæèìîå ïðîñòðàíñòâà èìåí XHTML</p>
<myelement>
Ñîäåðæèìîå ïðîñòðàíñòâà èìåí SimpleML.
<myotherelement />
</myelement>
<p><img src="missing" alt="Èçîáðàæåíèå îòñóòñòâóåò" myattr="value"/></p>
</body>
</html>
Ñ ïîìîùüþ ïðåôèêñîâ â ýòîì äîêóìåíòå ìîãóò èñïîëüçîâàòüñÿ è ýëåìåíòû, ëåæàùèå çà ïðåäåëàìè ïðîñòðàíñòâà èìåí XHTML:
<!DOCTYPE html SYSTEM "myml-1_0.dtd" [
<!ENTITY % MyML.prefixed "INCLUDE" >
]>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Ïðèìåð èñïîëüçîâàíèÿ çíà÷åíèé ïî óìîë÷àíèþ</title>
</head>
<body>
<p>Ñîäåðæèìîå ïðîñòðàíñòâà èìåí XHTML</p>
<myml:myelement>
Ñîäåðæèìîå ïðîñòðàíñòâà èìåí myml.
<myml:myotherelement />
</myml:myelement>
<p><img src="missing" alt="Èçîáðàæåíèå îòñóòñòâóåò" myml:myattr="value"/></p>
</body>
</html>
Å. Ðåàëèçàöèè ìîäóëåé XHTML DTD
Äàííîå ïðèëîæåíèå ÿâëÿåòñÿ íîðìàòèâíûì.
 íåì ñîäåðæàòñÿ ðåàëèçàöèè ìîäóëåé, îïðåäåëåííûõ â ðàçäåëå "Àáñòðàêòíûå ìîäóëè XHTML" ÷åðåç XML DTD. Ýòè ðåàëèçàöèè ìîãóò èñïîëüçîâàòüñÿ â òèïàõ äîêóìåíòîâ ñåìåéñòâà XHTML.
Å.1. Ñèìâîëüíûå ñóùíîñòè XHTML
XHTML DTD ïðåäîñòàâëÿþò äîñòóï ê ñòàíäàðòíîìó íàáîðó èìåíîâàííûõ ñèìâîëüíûõ ñóùíîñòåé. Îíè îïðåäåëÿþòñÿ â íàñòîÿùåì ðàçäåëå.
Å.1.1. Ñèìâîëüíûå ñóùíîñòè XHTML Latin 1
<!-- ...................................................................... -->
<!-- XML-ñîâìåñòèìûé íàáîð ñèìâîëüíûõ ñóùíîñòåé ISO Latin 1 äëÿ XHTML ............ -->
<!-- ôàéë: xhtml-lat1.ent
Ñòàíäàðòíûé âûçîâ:
<!ENTITY % xhtml-lat1
PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
"xhtml-lat1.ent" >
%xhtml-lat1;
Äàííûé ìîäóëü DTD îïðåäåëÿåòñÿ èäåíòèôèêàòîðàìè PUBLIC è SYSTEM:
PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-lat1.ent"
Âåðñèÿ: $Id: xhtml-lat1.ent,v 4.1 2001/04/10 09:34:14 altheim Exp $ SMI
×àñòè÷íîå àâòîðñêîå ïðàâî ìåæäóíàðîäíîé îðãàíèçàöèè ïî ñòàíäàðòèçàöèè, 1986:
Ðàçðåøåíèå íà êîïèðîâàíèÿ â ëþáîì âèäå äàåòñÿ äëÿ èñïîëüçîâàíèÿ ñ êîíôîðìíûìè
SGML-ñèñòåìàìè è ïðèëîæåíèÿìè â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ñòàíäàðòå ISO 8879, ïðè óñëîâèè
âêëþ÷åíèÿ äàííîé èíôîðìàöèè âî âñå êîïèè.
-->
<!ENTITY nbsp " " ><!-- íåðàçðûâíûé ïðîáåë, U+00A0 ISOnum -->
<!ENTITY iexcl "¡" ><!-- ïåðåâåðíóòûé âîñêëèöàòåëüíûé çíàê, U+00A1 ISOnum -->
<!ENTITY cent "¢" ><!-- çíàê öåíòà, U+00A2 ISOnum -->
<!ENTITY pound "£" ><!-- çíàê ôóíòà, U+00A3 ISOnum -->
<!ENTITY curren "¤" ><!-- çíàê âàëþòû, U+00A4 ISOnum -->
<!ENTITY yen "¥" ><!-- çíàê èåíû = çíàê þàíÿ, U+00A5 ISOnum -->
<!ENTITY brvbar "¦" ><!-- âåðòèêàëüíàÿ ÷åðòà, U+00A6 ISOnum -->
<!ENTITY sect "§" ><!-- çíàê ïàðàãðàôà, U+00A7 ISOnum -->
<!ENTITY uml "¨" ><!-- òðåìà, U+00A8 ISOdia -->
<!ENTITY copy "©" ><!-- çíàê àâòîðñêîãî ïðàâà, U+00A9 ISOnum -->
<!ENTITY ordf "ª" ><!-- èíäèêàòîð ïîðÿäêîâîãî ÷èñëèòåëüíîãî æåíñêîãî ðîäà, U+00AA ISOnum -->
<!ENTITY laquo "«" ><!-- ëåâàÿ äâîéíàÿ óãëîâàÿ êàâû÷êà, U+00AB ISOnum -->
<!ENTITY not "¬" ><!-- çíàê îòðèöàíèÿ, U+00AC ISOnum -->
<!ENTITY shy "" ><!-- ìÿãêèé ïåðåíîñ, U+00AD ISOnum -->
<!ENTITY reg "®" ><!-- çíàê çàðåãèñòðèðîâàííîé òîðãîâîé ìàðêè, U+00AE ISOnum -->
<!ENTITY macr "¯" ><!-- çíàê äîëãîòû íàä ãëàñíûì, U+00AF ISOdia -->
<!ENTITY deg "°" ><!-- çíàê ãðàäóñà, U+00B0 ISOnum -->
<!ENTITY plusmn "±" ><!-- çíàê "ïëþñ-ìèíóñ", U+00B1 ISOnum -->
<!ENTITY sup2 "²" ><!-- äâà â âåðõíåì èíäåêñå = êâàäðàò, U+00B2 ISOnum -->
<!ENTITY sup3 "³" ><!-- òðè â âåðõíåì èíäåêñå = êóá, U+00B3 ISOnum -->
<!ENTITY acute "´" ><!-- àêóò, U+00B4 ISOdia -->
<!ENTITY micro "µ" ><!-- çíàê "ìþ", U+00B5 ISOnum -->
<!ENTITY para "¶" ><!-- ñèìâîë àáçàöà, U+00B6 ISOnum -->
<!ENTITY middot "·" ><!-- ñðåäíÿÿ òî÷êà = ãðóçèíñêàÿ çàïÿòàÿ, U+00B7 ISOnum -->
<!ENTITY cedil "¸" ><!-- ñåäèëü, U+00B8 ISOdia -->
<!ENTITY sup1 "¹" ><!-- åäèíèöà â âåðõíåì èíäåêñå, U+00B9 ISOnum -->
<!ENTITY ordm "º" ><!-- èíäèêàòîð ïîðÿäêîâîãî ÷èñëèòåëüíîãî ìóæñêîãî ðîäà, U+00BA ISOnum -->
<!ENTITY raquo "»" ><!-- ïðàâàÿ äâîéíàÿ óãëîâàÿ êàâû÷êà, U+00BB ISOnum -->
<!ENTITY frac14 "¼" ><!-- ïðîñòàÿ äðîáü îäíà ÷åòâåðòü, U+00BC ISOnum -->
<!ENTITY frac12 "½" ><!-- ïðîñòàÿ äðîáü îäíà âòîðàÿ, U+00BD ISOnum -->
<!ENTITY frac34 "¾" ><!-- ïðîñòàÿ äðîáü òðè ÷åòâåðòè, U+00BE ISOnum -->
<!ENTITY iquest "¿" ><!-- ïåðåâåðíóòûé âîïðîñèòåëüíûé çíàê, U+00BF ISOnum -->
<!ENTITY Agrave "À" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà A ñ ãðàâèñîì, U+00C0 ISOlat1 -->
<!ENTITY Aacute "Á" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà A ñ àêóòîì, U+00C1 ISOlat1 -->
<!ENTITY Acirc "Â" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà A ñ öèðêóìôëåêñîì, U+00C2 ISOlat1 -->
<!ENTITY Atilde "Ã" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà A ñ òèëüäîé, U+00C3 ISOlat1 -->
<!ENTITY Auml "Ä" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà A ñ òðåìîé, U+00C4 ISOlat1 -->
<!ENTITY Aring "Å" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà A ñ êðóæî÷êîì, U+00C5 ISOlat1 -->
<!ENTITY AElig "Æ" ><!-- ëàòèíñêàÿ çàãëàâíàÿ ëèãàòóðà AE, U+00C6 ISOlat1 -->
<!ENTITY Ccedil "Ç" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà C ñ ñåäèëåì, U+00C7 ISOlat1 -->
<!ENTITY Egrave "È" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà E ñ ãðàâèñîì, U+00C8 ISOlat1 -->
<!ENTITY Eacute "É" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà E ñ àêóòîì, U+00C9 ISOlat1 -->
<!ENTITY Ecirc "Ê" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà E ñ öèðêóìôëåêñîì, U+00CA ISOlat1 -->
<!ENTITY Euml "Ë" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà E ñ òðåìîé, U+00CB ISOlat1 -->
<!ENTITY Igrave "Ì" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà I ñ ãðàâèñîì, U+00CC ISOlat1 -->
<!ENTITY Iacute "Í" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà I ñ àêóòîì, U+00CD ISOlat1 -->
<!ENTITY Icirc "Î" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà I ñ öèðêóìôëåêñîì, U+00CE ISOlat1 -->
<!ENTITY Iuml "Ï" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà I ñ òðåìîé, U+00CF ISOlat1 -->
<!ENTITY ETH "Ð" ><!-- ëàòèíñêèé ïðîïèñíîé ñèìâîë ETH, U+00D0 ISOlat1 -->
<!ENTITY Ntilde "Ñ" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà N ñ òèëüäîé, U+00D1 ISOlat1 -->
<!ENTITY Ograve "Ò" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà O ñ ãðàâèñîì, U+00D2 ISOlat1 -->
<!ENTITY Oacute "Ó" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà O ñ àêóòîì, U+00D3 ISOlat1 -->
<!ENTITY Ocirc "Ô" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà O ñ öèðêóìôëåêñîì, U+00D4 ISOlat1 -->
<!ENTITY Otilde "Õ" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà O ñ òèëüäîé, U+00D5 ISOlat1 -->
<!ENTITY Ouml "Ö" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà O ñ òðåìîé, U+00D6 ISOlat1 -->
<!ENTITY times "×" ><!-- çíàê óìíîæåíèÿ, U+00D7 ISOnum -->
<!ENTITY Oslash "Ø" ><!-- ïåðå÷åðêíóòàÿ ëàòèíñêàÿ ïðîïèñíàÿ áóêâà O, U+00D8 ISOlat1 -->
<!ENTITY Ugrave "Ù" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà U ñ ãðàâèñîì, U+00D9 ISOlat1 -->
<!ENTITY Uacute "Ú" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà U ñ àêóòîì, U+00DA ISOlat1 -->
<!ENTITY Ucirc "Û" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà U ñ öèðêóìôëåêñîì, U+00DB ISOlat1 -->
<!ENTITY Uuml "Ü" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà U ñ òðåìîé, U+00DC ISOlat1 -->
<!ENTITY Yacute "Ý" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà Y ñ àêóòîì, U+00DD ISOlat1 -->
<!ENTITY THORN "Þ" ><!-- ëàòèíñêèé ïðîïèñíîé ñèìâîë THORN, U+00DE ISOlat1 -->
<!ENTITY szlig "ß" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà "îñòðîå ñ", U+00DF ISOlat1 -->
<!ENTITY Agrave "à" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà a ñ ãðàâèñîì, U+00C0 ISOlat1 -->
<!ENTITY aacute "á" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà a ñ àêóòîì, U+00E1 ISOlat1 -->
<!ENTITY acirc "â" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà a ñ öèðêóìôëåêñîì, U+00E2 ISOlat1 -->
<!ENTITY atilde "ã" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà a ñ òèëüäîé, U+00E3 ISOlat1 -->
<!ENTITY auml "ä" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà a ñ òðåìîé, U+00E4 ISOlat1 -->
<!ENTITY aring "å" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà a ñ êðóæî÷êîì, U+00E5 ISOlat1 -->
<!ENTITY aelig "æ" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ ëèãàòóðà ae, U+00E6 ISOlat1 -->
<!ENTITY ccedil "ç" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà c ñ ñåäèëåì, U+00E7 ISOlat1 -->
<!ENTITY egrave "è" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà e ñ ãðàâèñîì, U+00E8 ISOlat1 -->
<!ENTITY eacute "é" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà e ñ àêóòîì, U+00E9 ISOlat1 -->
<!ENTITY ecirc "ê" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà e ñ öèðêóìôëåêñîì, U+00EA ISOlat1 -->
<!ENTITY euml "ë" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà e ñ òðåìîé, U+00EB ISOlat1 -->
<!ENTITY igrave "ì" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà i ñ ãðàâèñîì, U+00EC ISOlat1 -->
<!ENTITY iacute "í" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà i ñ àêóòîì, U+00ED ISOlat1 -->
<!ENTITY icirc "î" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà i ñ öèðêóìôëåêñîì, U+00EE ISOlat1 -->
<!ENTITY iuml "ï" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà i ñ òðåìîé, U+00EF ISOlat1 -->
<!ENTITY eth "ð" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ eth, U+00F0 ISOlat1 -->
<!ENTITY ntilde "ñ" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà n ñ òèëüäîé, U+00F1 ISOlat1 -->
<!ENTITY ograve "ò" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà o ñ ãðàâèñîì, U+00F2 ISOlat1 -->
<!ENTITY oacute "ó" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà o ñ àêóòîì, U+00F3 ISOlat1 -->
<!ENTITY ocirc "ô" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà o ñ öèðêóìôëåêñîì, U+00F4 ISOlat1 -->
<!ENTITY otilde "õ" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà o ñ òèëüäîé, U+00F5 ISOlat1 -->
<!ENTITY ouml "ö" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà o ñ òðåìîé, U+00F6 ISOlat1 -->
<!ENTITY divide "÷" ><!-- çíàê äåëåíèÿ, U+00F7 ISOnum -->
<!ENTITY oslash "ø" ><!-- ïåðå÷åðêíóòàÿ ëàòèíñêàÿ ñòðî÷íàÿ áóêâà o, U+00F8 ISOlat1 -->
<!ENTITY ugrave "ù" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà u ñ ãðàâèñîì, U+00F9 ISOlat1 -->
<!ENTITY uacute "ú" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà u ñ àêóòîì, U+00FA ISOlat1 -->
<!ENTITY ucirc "û" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà u ñ öèðêóìôëåêñîì, U+00FB ISOlat1 -->
<!ENTITY uuml "ü" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà u ñ òðåìîé, U+00FC ISOlat1 -->
<!ENTITY yacute "ý" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà y ñ àêóòîì, U+00FD ISOlat1 -->
<!ENTITY thorn "þ" ><!-- ëàòèíñêèé ñòðî÷íûé ñèìâîë thorn, U+00FE ISOlat1 -->
<!ENTITY yuml "ÿ" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà y ñ òðåìîé, U+00FF ISOlat1 -->
<!-- êîíåö xhtml-lat1.ent -->
Å.1.2. Ñïåöèàëüíûå ñèìâîëû XHTML
<!-- ...................................................................... -->
<!-- XML-ñîâìåñòèìûé íàáîð ñïåöèàëüíûõ ñèìâîëîâ ISO Special Character Entity Set äëÿ XHTML ............ -->
<!-- ôàéë: xhtml-special.ent
Ñòàíäàðòíûé âûçîâ:
<!ENTITY % xhtml-special
PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
"xhtml-special.ent" >
%xhtml-special;
Äàííûé ìîäóëü DTD îïðåäåëÿåòñÿ èäåíòèôèêàòîðàìè PUBLIC è SYSTEM:
PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-special.ent"
Âåðñèÿ: $Id: xhtml-special.ent,v 4.1 2001/04/10 09:34:14 altheim Exp $ SMI
×àñòè÷íîå àâòîðñêîå ïðàâî ìåæäóíàðîäíîé îðãàíèçàöèè ïî ñòàíäàðòèçàöèè, 1986:
Ðàçðåøåíèå íà êîïèðîâàíèÿ â ëþáîì âèäå äàåòñÿ äëÿ èñïîëüçîâàíèÿ ñ êîíôîðìíûìè
SGML-ñèñòåìàìè è ïðèëîæåíèÿìè â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ñòàíäàðòå ISO 8879, ïðè óñëîâèè
âêëþ÷åíèÿ äàííîé èíôîðìàöèè âî âñå êîïèè.
Âåðñèè:
2000-10-28: äëÿ ñîâìåñòèìîñòè äîáàâëåíû ' è èçìåíåíû ïðåäîïðåäåëåííûå ñóùíîñòè XML
-->
<!-- Åñëè èìåíà íå ÿâëÿþòñÿ íîâûìè, óêàçûâàåòñÿ ñîîòâåòñòâóþùèé íàáîð ñóùíîñòåé ISO.
Íîâûå èìåíà (íå âõîäÿùèå â ñïèñîê ISO 8879 [SGML]) íå êîíôëèêòóþò ñ
ñóùåñòâóþùèìè èìåíàìè ñóùíîñòåé íàáîðà ISO 8879. Íîìåðà ñèìâîëîâ íàáîðà ISO 10646 [ISO10646]
óêàçàíû â øåñòíàäöàòåðè÷íîì ôîðìàòå. Çíà÷åíèÿ ñóùíîñòåé ïðåäñòàâëÿþò
ñîáîé íîìåðà ISO 10646 â äåñÿòè÷íîì âèäå è îòíîñÿòñÿ
ê íàáîðó ñèìâîëîâ äîêóìåíòà. Èìåíà ïðåäñòàâëÿþò ñîáîé èìåíà Unicode [UNICODE].
-->
<!-- Óïðàâëÿþùèå ñèìâîëû C0 è Basic Latin -->
<!ENTITY lt "<" ><!-- çíàê "ìåíüøå", U+003C ISOnum -->
<!ENTITY gt ">" ><!-- çíàê "áîëüøå", U+003E ISOnum -->
<!ENTITY amp "&" ><!-- àìïåðñàíä, U+0026 ISOnum -->
<!ENTITY apos "'" ><!-- àïîñòðîô, U+0027 ISOnum -->
<!ENTITY quot """ ><!-- ïðÿìàÿ êàâû÷êà, U+0022 ISOnum -->
<!-- Latin Extended-A -->
<!ENTITY OElig "R" ><!-- ëàòèíñêèé ïðîïèñíîé ñèìâîë OE, U+0152 ISOlat2 -->
<!ENTITY oelig "S" ><!-- ëàòèíñêèé ñòðî÷íûé ñèìâîë oe, U+0152 ISOlat2 -->
<!-- ñëîâî "ëèãàòóðà" â äàííîì ñëó÷àå íå ñîâñåì êîððåêòíî, â íåêîòîðûõ ÿçûêàõ ýòî îòäåëüíûé ñèìâîë -->
<!ENTITY Scaron "`" ><!-- ëàòèíñêàÿ ïðîïèñíàÿ áóêâà S ñ "ïòè÷êîé", U+0160 ISOlat2 -->
<!ENTITY scaron "a" ><!-- ëàòèíñêàÿ ñòðî÷íàÿ áóêâà s ñ "ïòè÷êîé", U+0161 ISOlat2 -->
<!ENTITY Yuml "x" ><!-- ëàòèíñêàÿ çàãëàâíàÿ áóêâà Y ñ òðåìîé, U+0178 ISOlat2 -->
<!-- Ñèìâîëû èçìåíåíèÿ äëèòåëüíîñòè -->
<!ENTITY circ "Æ" ><!-- öèðêóìôëåêñ, U+02C6 ISOpub -->
<!ENTITY tilde "Ü" ><!-- ìàëàÿ òèëüäà, U+02DC ISOdia -->
<!-- Îáùàÿ ïóíêòóàöèÿ -->
<!ENTITY ensp "" ><!-- óçêèé ïðîáåë, U+2002 ISOpub -->
<!ENTITY emsp "" ><!-- øèðîêèé ïðîáåë, U+2003 ISOpub -->
<!ENTITY thinsp " " ><!-- ìèíèìàëüíûé ìåæñëîâíûé ïðîáåë, U+2009 ISOpub -->
<!ENTITY zwnj "" ><!-- ðàçäåëèòåëü íóëåâîé øèðèíû, U+200D NEW RFC 2070 -->
<!ENTITY zwj "
" ><!-- îáúåäèíèòåëü íóëåâîé øèðèíû, U+200D NEW RFC 2070 -->
<!ENTITY lrm "" ><!-- ìåòêà ñëåâà íàïðàâî, U+200E NEW RFC 2070 -->
<!ENTITY rlm "" ><!-- ìåòêà ñïðàâà íàëåâî, U+200F NEW RFC 2070 -->
<!ENTITY ndash "" ><!-- êîðîòêîå òèðå, U+2013 ISOpub -->
<!ENTITY mdash "" ><!-- äëèííîå òèðå, U+2014 ISOpub -->
<!ENTITY lsquo "" ><!-- ëåâàÿ îäèíàðíàÿ êàâû÷êà, U+2018 ISOnum -->
<!ENTITY rsquo "" ><!-- ïðàâàÿ îäèíàðíàÿ êàâû÷êà, U+2019 ISOnum -->
<!ENTITY sbquo "" ><!-- îäèíàðíàÿ íèæíÿÿ êàâû÷êà, U+201A NEW -->
<!ENTITY ldquo "" ><!-- ëåâàÿ äâîéíàÿ êàâû÷êà, U+201C ISOnum -->
<!ENTITY rdquo "" ><!-- ïðàâàÿ äâîéíàÿ êàâû÷êà, U+201D ISOnum -->
<!ENTITY bdquo "" ><!-- äâîéíàÿ íèæíÿÿ êàâû÷êà, U+201E NEW -->
<!ENTITY dagger " " ><!-- êðåñòèê, U+2020 ISOpub -->
<!ENTITY Dagger "!" ><!-- äâîéíîé êðåñòèê, U+2021 ISOpub -->
<!ENTITY permil "0" ><!-- ïðîìèëëå, U+2030 ISOtech -->
<!-- ñèìâîë lsaquo ïðåäëàãàåòñÿ, íî åùå íå ñòàíäàðòèçîâàí ISO -->
<!ENTITY lsaquo "9" ><!-- îäèíàðíàÿ ëåâàÿ óãëîâàÿ êàâû÷êà, U+2039 ISO proposed -->
<!-- ñèìâîë rsaquo ïðåäëàãàåòñÿ, íî åùå íå ñòàíäàðòèçîâàí ISO -->
<!ENTITY rsaquo ":" ><!-- îäèíàðíàÿ ïðàâàÿ óãëîâàÿ êàâû÷êà, U+203A ISO proposed -->
<!ENTITY euro "¬" ><!-- çíàê åâðî, U+20AC NEW -->
<!-- êîíåö xhtml-special.ent -->
Å.1.3. Ìàòåìàòè÷åñêèå, ãðå÷åñêèå è ïðî÷èå ñèìâîëû XHTML
<!-- ...................................................................... -->
<!-- Íàáîð ISO Math, Greek and Symbolic Character Entity Set äëÿ XHTML .......... -->
<!-- ôàéë: xhtml-symbol.ent
Ñòàíäàðòíûé âûçîâ:
<!ENTITY % xhtml-symbol
PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
"xhtml-symbol.ent" >
%xhtml-symbol;
Äàííûé ìîäóëü DTD îïðåäåëÿåòñÿ èäåíòèôèêàòîðàìè PUBLIC è SYSTEM:
PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-symbol.ent"
Âåðñèÿ: $Id: xhtml-symbol.ent,v 4.1 2001/04/10 09:34:14 altheim Exp $ SMI
×àñòè÷íîå àâòîðñêîå ïðàâî ìåæäóíàðîäíîé îðãàíèçàöèè ïî ñòàíäàðòèçàöèè, 1986:
Ðàçðåøåíèå íà êîïèðîâàíèÿ â ëþáîì âèäå äàåòñÿ äëÿ èñïîëüçîâàíèÿ ñ êîíôîðìíûìè
SGML-ñèñòåìàìè è ïðèëîæåíèÿìè â ñîîòâåòñòâèè ñ îïðåäåëåíèåì, äàííûì â ñòàíäàðòå ISO 8879,
ïðè óñëîâèè âêëþ÷åíèÿ äàííîé èíôîðìàöèè âî âñå êîïèè.
-->
<!-- Åñëè èìåíà íå ÿâëÿþòñÿ íîâûìè, óêàçûâàåòñÿ ñîîòâåòñòâóþùèé íàáîð ñóùíîñòåé ISO.
Íîâûå èìåíà (íå âõîäÿùèå â ñïèñîê ISO 8879 [SGML]) íå êîíôëèêòóþò ñ
ñóùåñòâóþùèìè èìåíàìè ñóùíîñòåé íàáîðà ISO 8879. Íîìåðà ñèìâîëîâ íàáîðà ISO 10646 [ISO10646]
óêàçàíû â øåñòíàäöàòåðè÷íîì ôîðìàòå. Çíà÷åíèÿ ñóùíîñòåé ïðåäñòàâëÿþò
ñîáîé íîìåðà ISO 10646 â äåñÿòè÷íîì âèäå è îòíîñÿòñÿ
ê íàáîðó ñèìâîëîâ äîêóìåíòà. Èìåíà ïðåäñòàâëÿþò ñîáîé èìåíà Unicode [UNICODE].
-->
<!-- Latin Extended-B -->
<!ENTITY fnof "’" ><!-- êàëëèãðàôè÷åñêàÿ ñòðî÷íàÿ ëàòèíñêàÿ f = ñèìâîë ôóíêöèè
= ôëîðèí, U+0192 ISOtech -->
<!-- ãðå÷åñêèå -->
<!ENTITY Alpha "‘" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà àëüôà, U+0391 -->
<!ENTITY Beta "’" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà áåòà, U+0392 -->
<!ENTITY Gamma "“" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ãàììà, U+0393 ISOgrk3 -->
<!ENTITY Delta "”" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà äåëüòà, U+0394 ISOgrk3 -->
<!ENTITY Epsilon "•" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ýïñèëîí, U+0395 -->
<!ENTITY Zeta "–" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà äçåòà, U+0396 -->
<!ENTITY Eta "—" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ýòà, U+0397 -->
<!ENTITY Theta "˜" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà òåòà, U+0398 ISOgrk3 -->
<!ENTITY Iota "™" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà éîòà, U+0399 -->
<!ENTITY Kappa "š" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà êàïïà, U+039A -->
<!ENTITY Lambda "›" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ëÿìáäà, U+039B ISOgrk3 -->
<!ENTITY Mu "œ" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ìþ, U+039C -->
<!ENTITY Nu "�" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà íþ, U+039D -->
<!ENTITY Xi "ž" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà êñè, U+039E ISOgrk3 -->
<!ENTITY Omicron "Ÿ" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà îìèêðîí, U+039F -->
<!ENTITY Pi " " ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ïè, U+03A0 ISOgrk3 -->
<!ENTITY Rho "¡" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ðî, U+03A1 -->
<!-- ñèãìà ô è ñèìâîë U+03A2 îòñóòñòâóþò -->
<!ENTITY Sigma "£" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ñèãìà, U+03A3 ISOgrk3 -->
<!ENTITY Tau "¤" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà òàó, U+03A4 -->
<!ENTITY Upsilon "¥" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà èïñèëîí,
U+03A5 ISOgrk3 -->
<!ENTITY Phi "¦" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ôè, U+03A6 ISOgrk3 -->
<!ENTITY Chi "§" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà õè, U+03A7 -->
<!ENTITY Psi "¨" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà ïñè, U+03A8 ISOgrk3 -->
<!ENTITY Omega "©" ><!-- ãðå÷åñêàÿ ïðîïèñíàÿ áóêâà îìåãà, U+03A9 ISOgrk3 -->
<!ENTITY alpha "±" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà àëüôà, U+03B1 ISOgrk3 -->
<!ENTITY beta "²" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà áåòà, U+03B2 ISOgrk3 -->
<!ENTITY gamma "³" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ãàììà, U+03B3 ISOgrk3 -->
<!ENTITY delta "´" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà äåëüòà, U+03B4 ISOgrk3 -->
<!ENTITY epsilon "µ" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ýïñèëîí, U+03B5 ISOgrk3 -->
<!ENTITY zeta "¶" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà äçåòà, U+03B6 ISOgrk3 -->
<!ENTITY eta "·" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ýòà, U+03B7 ISOgrk3 -->
<!ENTITY theta "¸" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà òåòà, U+03B8 ISOgrk3 -->
<!ENTITY iota "¹" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà éîòà, U+03B9 ISOgrk3 -->
<!ENTITY kappa "º" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà êàïïà, U+03BA ISOgrk3 -->
<!ENTITY lambda "»" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ëÿìáäà, U+03BB ISOgrk3 -->
<!ENTITY mu "¼" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ìþ, U+03BC ISOgrk3 -->
<!ENTITY nu "½" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà íþ, U+03BD ISOgrk3 -->
<!ENTITY xi "¾" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà êñè, U+03BE ISOgrk3 -->
<!ENTITY omicron "¿" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà îìèêðîí, U+03BF NEW -->
<!ENTITY pi "À" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ïè, U+03C0 ISOgrk3 -->
<!ENTITY rho "Á" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ðî, U+03C1 ISOgrk3 -->
<!ENTITY sigmaf "Â" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà êîíå÷íàÿ ñèãìà, U+03C2 ISOgrk3 -->
<!ENTITY sigma "Ã" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ñèãìà, U+03C3 ISOgrk3 -->
<!ENTITY tau "Ä" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà òàó, U+03C4 ISOgrk3 -->
<!ENTITY upsilon "Å" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà èïñèëîí, U+03C5 ISOgrk3 -->
<!ENTITY phi "Æ" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ôè, U+03C6 ISOgrk3 -->
<!ENTITY chi "Ç" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà õè, U+03C7 ISOgrk3 -->
<!ENTITY psi "È" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà ïñè, U+03C8 ISOgrk3 -->
<!ENTITY omega "É" ><!-- ãðå÷åñêàÿ ñòðî÷íàÿ áóêâà îìåãà, U+03C9 ISOgrk3 -->
<!ENTITY thetasym "Ñ" ><!-- ñèìâîë ãðå÷åñêîé ñòðî÷íîé áóêâû òåòà, U+03D1 NEW -->
<!ENTITY upsih "Ò" ><!-- ñèìâîë èïñèëîí ñ êðþ÷êîì, U+03D2 NEW -->
<!ENTITY piv "Ö" ><!-- ñèìâîë ãðå÷åñêîé ïè, U+03D6 ISOgrk3 -->
<!-- Îáùàÿ ïóíêòóàöèÿ -->
<!ENTITY bull """ ><!-- ìàðêåð = íåáîëüøîé ÷åðíûé êðóæîê, U+2022 ISOpub -->
<!-- ìàðêåð è îïåðàòîð bullet, U+2219 - ÍÅ ÎÄÍÎ È ÒÎ ÆÅ -->
<!ENTITY hellip "&" ><!-- ãîðèçîíòàëüíîå ìíîãîòî÷èå = òðîåòî÷èå, U+2026 ISOpub -->
<!ENTITY prime "2" ><!-- øòðèõ = ìèíóòû = ôóòû, U+2032 ISOtech -->
<!ENTITY Prime "3" ><!-- äâîéíîé øòðèõ = ñåêóíäû = äþéìû, U+2033 ISOtech -->
<!ENTITY oline ">" ><!-- ïðî÷åðê, U+203E NEW -->
<!ENTITY frasl "D" ><!-- äðîáíàÿ ÷åðòà, U+2044 NEW -->
<!-- Áóêâîïîäîáíûå ñèìâîëû -->
<!ENTITY weierp "" ><!-- ïèñüìåííàÿ çàãëàâíàÿ áóêâà P = ïîêàçàòåëüíîå
ìíîæåñòâî = p Âàéåðøòðàññà U+2118 ISOamso -->
<!ENTITY image "" ><!-- ãîòè÷åñêàÿ çàãëàâíàÿ I = ìíèìàÿ ÷àñòü, U+2111 ISOamso -->
<!ENTITY real "" ><!-- ãîòè÷åñêàÿ çàãëàâíàÿ R = ñèìâîë âåùåñòâåííîé ÷àñòè, U+211C ISOamso -->
<!ENTITY trade """ ><!-- çíàê òîðãîâîé ìàðêè, U+2122 ISOnum -->
<!ENTITY alefsym "5" ><!-- ñèìâîë àëåô = ïåðâîå òðàíñôèíèòíîå êàðäèíàëüíîå ÷èñëî, U+2135 NEW -->
<!-- ñèìâîë àëåô è áóêâà àëåô èâðèòà, U+05D0 - íå îíî è òî æå,
õîòÿ äëÿ îáîèõ ñèìâîëîâ ìîæåò èñïîëüçîâàòüñÿ îäèí è òîò æå ãëèô -->
<!-- Ñòðåëêè -->
<!ENTITY larr "�" ><!-- ñòðåëêà âëåâî, U+2190 ISOnum -->
<!ENTITY uarr "‘" ><!-- ñòðåëêà ââåðõ, U+2191 ISOnum-->
<!ENTITY rarr "’" ><!-- ñòðåëêà âïðàâî, U+2192 ISOnum -->
<!ENTITY darr "“" ><!-- ñòðåëêà âíèç, U+2193 ISOnum -->
<!ENTITY harr "”" ><!-- ñòðåëêà âëåâî-âïðàâî, U+2194 ISOamsa -->
<!ENTITY crarr "µ" ><!-- óãëîâàÿ ñòðåëêà âëåâî âíèç
= âîçâðàò êàðåòêè, U+21B5 NEW -->
<!ENTITY lArr "Ð" ><!-- äâîéíàÿ ñòðåëêà âëåâî, U+21D0 ISOtech -->
<!-- â Unicode íå óêàçûâàåòñÿ, ÷òî lArr è ñòðåëêà 'ñëåäóåò' ñîâïàäàþò, íî
íå èìååòñÿ è äðóãîãî ñèìâîëà äëÿ îáîçíà÷åíèÿ ýòîé ôóíêöèè. Ïîýòîìó ? lArr ìîæåò
èñïîëüçîâàòüñÿ â êà÷åñòâå ñèìâîëà 'ñëåäóåò', êàê ïðåäëàãàåòñÿ â ISOtech -->
<!ENTITY uArr "Ñ" ><!-- äâîéíàÿ ñòðåëêà ââåðõ, U+21D1 ISOamsa -->
<!ENTITY rArr "Ò" ><!-- äâîéíàÿ ñòðåëêà âïðàâî, U+21D2 ISOtech -->
<!-- â Unicode íå óêàçûâàåòñÿ, ÷òî ýòî ñèìâîë èìïëèêàöèè, íî è íåò
äðóãîãî ñèìâîëà äëÿ ýòîé ôóíêöèè, òàê ÷òî ?
rArr ìîæåò èñïîëüçîâàòüñÿ äëÿ îáîçíà÷åíèÿ èìïëèêàöèè, êàê ïðåäëàãàåòñÿ â ISOtech -->
<!ENTITY dArr "Ó" ><!-- äâîéíàÿ ñòðåëêà âíèç, U+21D3 ISOamsa -->
<!ENTITY hArr "Ô" ><!-- äâîéíàÿ ñòðåëêà âïðàâî, U+21D4 ISOamsa -->
<!-- Ìàòåìàòè÷åñêèå îïåðàòîðû -->
<!ENTITY forall "