Zawartość
Ten rozdział ma charakter normatywny.
Moduł abstrakcyjny to definicja modułu XHTML przy użyciu słownego opisu i pewnej ilości nieformalnych konwencji oznakowania. Choć taka definicja generalnie nie jest użyteczna dla maszyny przetwarzającej typy dokumentu, może jednak być bardzo pomocna w zrozumieniu zawartości modułu przez ludzi. Ten rozdział definiuje sposób, w jaki są definiowane moduły abstrakcyjne XHTML. Moduły zgodne z XHTML nie wymagają podawania definicji w formie modułu abstrakcyjnego. Zachęca się jednak każdego, kto opracowuje moduły XHTML, by dostarczał moduły abstrakcyjne w celu ułatwienia użytkowania modułu.
Moduły abstrakcyjne nie są definiowane za pomocą formalnej gramatyki. Jednakże definicje stosują się do opisanych poniżej konwencji składniowych. Konwencje te są podobne do stosowanych w DTD XML i powinny być znajome dla autorów DTD XML. Każdy pojedynczy element składniowy może być łączony z innymi w celu stworzenia bardziej złożonego wyrażenia zgodnego ze zdefiniowaną tu algebrą.
expr ?
expr
.expr +
expr
.expr *
expr
.a , b
a
jest wymagane, z następującym po nim wyrażeniem b
.a | b
a
, albo wyrażenia b
.a - b
a
jest dozwolone, z pominięciem elementów z wyrażenia b
.&
).*
).|
), wewnątrz
nawiasu następującego po nazwie atrybutu. Jeśli atrybut posiada wartość domyślną, po wartości występuje gwiazdka (*
). Jeśli atrybut posiada wartość stałą, po
nazwie atrybutu występuje znak równości (=
), a stała wartość ujęta jest w cudzysłów.Definicje modułów abstrakcyjnych definiują minimalne, niepodzielne modele zawartości dla każdego modułu. Te minimalne modele zawartości odnoszą się do elementów w samym module. Mogą również odnosić się do elementów w innych modułach, od których zależny jest moduł abstrakcyjny. Wreszcie, model zawartości w wielu wypadkach wymaga, by jako zawartość jednego lub więcej elementów dozwolony był tekst. Symbolem używanym na oznaczenie tekstu jest wtedy PCDATA. Jest to termin zdefiniowany w Rekomendacji XML 1.0 odnoszący się do przetwarzanych danych znakowych. Typ zawartości może być też zdefiniowany jako EMPTY („pusty”), co oznacza, że w swym minimalnym modelu zawartości element nie ma żadnej zawartości.
W niektórych wypadkach konieczne jest zdefiniowanie typów wartości atrybutu lub zbioru dozwolonych wartości atrybutów. Następujące typy atrybutów (zdefiniowane w Rekomendacji XML 1.0) są używane w definicjach modułów abstrakcyjnych:
Typ atrybutu | Definicja |
---|---|
CDATA | Dane znakowe |
ID | Identyfikator unikatowy dla dokumentu |
IDREF | Odwołanie do unikatowego dla dokumentu identyfikatora |
IDREFS | Lista rozdzielonych spacją odwołań do unikatowych dla dokumentu identyfikatorów |
NAME | Nazwa z takimi samymi ograniczeniami znakowymi jak powyższe ID |
NMTOKEN | Nazwa złożona tylko z leksemów nazwy (zdefiniowanych w XML 1.0 [XML]) |
NMTOKENS | Jedna lub więcej wartości NMTOKEN rozdzielonych białymi znakami |
PCDATA | Przetwarzane dane znakowe |
Obok powyższych predefiniowanych typów danych, modularyzacja XHTML definiuje następujące typy danych i ich znaczenia:
Typ danych | Opis | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character | Pojedynczy znak z zestawu [ISO10646]. | ||||||||||||||||||||||||||||||||
Charset | Kodowanie znaków, według [RFC2045]. | ||||||||||||||||||||||||||||||||
Charsets | Lista rozdzielonych spacjami kodowań znaków, według [RFC2045]. | ||||||||||||||||||||||||||||||||
Color |
Typ wartości atrybutu „Color” odnosi się do definicji koloru opisanych w specyfikacji [SRGB]. Wartość koloru może być albo liczbą szesnastkową (poprzedzoną znakiem kratki), albo jedną z następujących szesnastu nazw kolorów. W nazwach koloru nie uwzględnia się wielkości liter.
Zatem zarówno wartość koloru "#800080", jak i "Purple" odnoszą się do koloru purpurowego. |
||||||||||||||||||||||||||||||||
ContentType | Typ mediów, według [RFC2045]. | ||||||||||||||||||||||||||||||||
ContentTypes | Lista rozdzielonych przecinkami typów mediów, według [RFC2045]. | ||||||||||||||||||||||||||||||||
Coords | Lista rozdzielonych przecinkami współrzędnych używanych przy definiowaniu powierzchni. | ||||||||||||||||||||||||||||||||
Datetime | Informacje dotyczące daty i czasu. | ||||||||||||||||||||||||||||||||
FPI | Łańcuch znaków reprezentujący formalny identyfikator publiczny SGML. | ||||||||||||||||||||||||||||||||
FrameTarget | Nazwa ramki używanej jako cel określonych akcji. | ||||||||||||||||||||||||||||||||
LanguageCode | Kod języka, według [RFC3066]. | ||||||||||||||||||||||||||||||||
Length | Długość. Wartość może być podana w pikselach albo w procentach dostępnej poziomej lub pionowej przestrzeni. Tak więc wartość "50%" oznacza połowę dostępnej przestrzeni. | ||||||||||||||||||||||||||||||||
LinkTypes |
Autorzy mogą używać następujących rozpoznawanych typów łączy, spisanych tu razem z ich umownymi interpretacjami. Wartość LinkTypes odnosi się do listy rozdzielonych spacjami typów łączy. Wewnątrz typów łączy nie są dozwolone białe znaki. W tych typach łączy nie uwzględniana jest wielkość liter, tj. „Alternate” ma takie samo znaczenie jak „alternate”. Programy użytkownika, maszyny wyszukujące, itp. mogą interpretować te typy łączy na różne sposoby. Na przykład programy użytkownika mogą udostępniać dokumenty, na które wskazują łącza poprzez pasek nawigacji.
|
||||||||||||||||||||||||||||||||
MediaDesc |
Atrybut typu MediaDesc to lista rozdzielonych przecinkami deskryptorów mediów. Oto lista rozpoznawanych deskryptorów mediów:
Przyszłe wersje XHTML mogą wprowadzić nowe wartości i mogą zezwolić na wartości sparametryzowane. W celu ułatwienia wprowadzenia tych rozszerzeń, programy użytkownika zgodne ze standardem muszą posiadać zdolność parsowania wartości atrybutu media w następujący sposób:
Uwaga. Arkusze stylów mogą zawierać zależne od mediów odmiany (np. konstrukcja CSS w rodzaju @media). W takich wypadkach może być odpowiednie zastosowanie "media =all". |
||||||||||||||||||||||||||||||||
MultiLength | Wartością może być relatywna lub absolutna długość (Length). Długość relatywna ma formę „i*”, gdzie „i” jest liczbą całkowitą. Podczas przydzielania przestrzeni elementom o nią się ubiegającym, programy użytkownika najpierw przydzielają długości mierzone w pikselach i procentowo, potem zaś dzielą pozostałą dostępną przestrzeń pomiędzy długości relatywne. Każda relatywna długość otrzymuję część dostępnej przestrzeni, która jest proporcjonalna do liczby całkowitej poprzedzającej znak „*”. Wartość „*” jest równoznaczna z „1*”. Zatem jeśli po przydzieleniu przez program użytkownika przestrzeni pikselowej i procentowej dostępne jest 60 pikseli, a ubiegającymi się o przestrzeń długościami relatywnymi są 1*, 2* i 3*, wtedy 1* dostanie 10 pikseli, 2* dostanie 20 pikseli, a 3* — 30 pikseli. | ||||||||||||||||||||||||||||||||
MultiLengths | Lista rozdzielonych przecinkami pozycji typu MultiLength. | ||||||||||||||||||||||||||||||||
Number | Liczba. Jedna lub więcej cyfr. | ||||||||||||||||||||||||||||||||
Pixels | Wartość jest liczbą całkowitą reprezentującą liczbę pikseli płótna (ekranu, papieru). Tak więc wartość "50" oznacza pięćdziesiąt pikseli. Normatywne informacje dotyczące definicji piksela można uzyskać w [CSS2]. | ||||||||||||||||||||||||||||||||
Script |
Dane skryptu mogą zawierać się w elemencie Uwzględnianie wielkości liter w danych skryptu zależy od języka skryptu. Weź proszę pod uwagę, że dane skryptu będące zawartością elementu nie mogą zawierać odwołań znakowych, lecz dane skryptu będące wartością atrybutu — mogą. |
||||||||||||||||||||||||||||||||
Shape | Kształt obszaru. | ||||||||||||||||||||||||||||||||
Text | Dowolne dane tekstowe, najczęściej przeznaczone do odczytania przez ludzi. | ||||||||||||||||||||||||||||||||
URI | Jednolity identyfikator zasobów (ang. Uniform Resource Identifier), według [URI]. | ||||||||||||||||||||||||||||||||
URIs | Lista rozdzielonych spacjami jednolitych identyfikatorów zasobów, według [URI]. |
Ten rozdział ma charakter informacyjny
Ten rozdział definiuje modelowy moduł abstrakcyjny jako przykład wykorzystania reguł składniowych zdefiniowanych powyżej. Ponieważ przykład ten stara się wykorzystać wszystkie z rozmaitych zdefiniowanych elementów składniowych, jest on dość skomplikowany. Typowe definicje modułów byłyby znacznie prostsze. Na koniec proszę wziąć pod uwagę, że moduł ten odwołuje się do zestawu atrybutów Common. Jest to zestaw zdefiniowany w specyfikacji Modularyzacja XHTML, który zawiera wszystkie podstawowe atrybuty, których potrzebuje większość elementów.
Moduł XHTML Narciarstwo definiuje oznakowanie używane dla opisywania aspektów schroniska narciarskiego. Elementy i atrybuty zdefiniowane w tym module to:
Elementy | Atrybuty | Minimalny model zawartości |
---|---|---|
miejscowosc_wypoczynkowa | Common, href (CDATA) | opis, Zakopane+ |
schronisko | Common | opis, (Zakopane - wyciag)+ |
wyciag | Common, href | opis? |
chata | Common, href | opis? |
pokoj | Common, href | opis? |
korytarz | Common, href | opis? |
kominek | Common, href | opis? |
opis | Common | PCDATA* |
Ten moduł definiuje także zbiór zawartości Zakopane z minimalnym modelem zawartości schronisko | wyciag | chata | pokoj | korytarz | kominek.
Strona główna | Ostatnia modyfikacja: 17 sierpnia 2005 |