Principal | Otras traducciones
Logotipo del SIDAR. LLeva a la página principal. Traducciós:

Nota de Traducció

Aquest document es trobarà en estat d'esborrany durant un període indefinit de temps dedicat a efectuar les correccions adients.
(Els possibles errors presents es aquest document, deguts a la seva traducció, són responsabilitat del traductor i no són imputables en cap de les maneres al W3C).
Per a qualsevol comentari sobre la traducció dirigiu-vos a Fran Rosa i Soler
La versió oficial d'aquest document és la versió original (en anglès):
http://www.w3.org/MarkUp/Guide/xhtml-m12n-tutorial/


Mòduls i Llenguatges de Marques XHTML

Com crear mòduls i lleguatges de marques de la família XHTML per a diversió i profit

Última actualizació: $Data: 2001/08/01 19:26:28 $

Editor:
Shane McCarron, Applied Testing and Technology

Taula Completa de Continguts

1. Introducció

La Modul·larització d'XHTML proporciona un marc de treball per a la creació de nous llenguatges de marques mitjançant l'extensió dels Mòduls Centrals d'XHTML i l'ús del Marc de Treball de Mòduls XHTML. En alguns casos, es voldràn crear llenguatges de marques complets i propietaris mitjançant aquests mecanismes. En d'altres, es poden voler crear nous mòduls reutilitzables per a ser emprats per la seva organització o per d'altres en la definició de llenguatges de marques. En ambdòs casos, la mecànica dels mòduls afegits i dels lleguatges de marques definits és la mateixa. Aquest document descriu la manera en què aquests mòduls són definits, i com s'han de combinar per a crear nous llenguatges de marques.

2. Terminología

Llenguatge de Marques
Gramàtica (en aquest cas, una gramàtica XML) que pot ser emprada per a estructurar informació. Un cop estructurada, la informació pot ser processada en el context del llenguatge de marques. Aquest processament pot incloure presentació per a un usuari, extracció de l'informació clau, transformació en altres formes, etc.
Llenguatge de Marques Híbrid
Llenguatge de Marques fet a partir de Mòduls de múltiples Espais de Nom.
Espai de Nom
col·lecció de noms delimitats d'alguna manera. Un Espai de Nom XML és un mecanisme definit pel W3C per a delimitar els elements i atributs d'XML. Tots els mòduls definits per XHTML estàn inclosos en l'Espai de Nom d'XHTML. Els mòduls de la Família XHTML han d'estar inclosos en el seu propi Espai de Nom XML. La modul·larització d'XHTML defineix el mecanisme pel qual l'Espai de Nom XML d'un mòdul de mode compatible amb DTDs d'XML i que permeti la seva validació XML com a document de la Família XHTML és declarat.
Validació XML
La Recomanació XML defineix la validació assegurant-se de que un document estigui ben format i de que s'escaigui al model de contingut definit a la DTD associada al document. Els documentos de la Família XHTML han de ser documents XML Vàlids.
Mòdul
A XHTML, un mòdul és una col·lecció d'un o més arxius que defineixen entitats paràmetre, elements, i/o atributs. Un mòdul pot representar un llenguatge de marques intern complet. Pot també representar un petit canvi o afegiment a qualsevol altre lenguatge de marques o qualsevol altre mòdul. Tot i així, els mòduls poden combinar-se amb altres mòduls fent servir el Marc de treball d'XHTML. Amb cura, els elements definits per aquests mòduls poden ser combinats en un model complet de contingut per a un llenguatge de marques.
DTD
DTD és una gramàtica mitjançant la qual els llenguatges de marques basats en XML es poden definir (n'hi ha d'altres, però ara ens centrarem en aquesta). És també el terme comú amb que ens referim als arxius on podem trobar definicions de llenguatges de marques. Al context dels Mòduls i Llenguatges de Marques XHTML, una DTD és l'arxiu que inclou els mòduls de la Família XHTML que formen el llenguatge de marques (juntament amb altres arxius d'ajuda). En el llenguatge de les DTD a aquest arxiu també se l'anomena DTD Driver.
Nom Qualificat
La combinació d'XML i Espais de Nom XML són l'orígen d'un tipus d'elements i atributs amb "noms qualificats". Un nom qualificat és un nom d'element o atribut, possiblement prefixat mitjançant un declarador de espai de nom (ex: xhtml:p per a un paràgraf). A XHTML, els noms qualificats per a elements i atributs es defineixen en un Mòdul Qname.
Mòdul Qname
A l'hora de definir un Mòdul XHTML, es pot crear un sub-mòdul on declarar els nom qualificats per al mòdul, i on especificar la configuració per a espais de nom XML. La modul·larització d'XHTML anomena aquests sub-mòduls Mòduls Qname. Una definició completa d'un Mòdul de la Família XHTML ha d'incloure, al menys, un Mòdul Qname i un Mòdul de Declaració.
Mòdul de Declaració
El Mòdul de Declaració és un Mòdul XHTML que defineix els elements i atributs, i que té la possibilitat de definir l'estructura del Mòdul. El Mòdul de Declaració compta amb les entitats paràmetre definides en un Mòdul Qname associat per a definir els noms d'elements i atributs, llavors aquests poden ser qualificats fent servir prefixes d'Espai de Nom XML.

3. Construcció de Mòduls

Els Mòduls XHTML es composen de, al menys, dos mòduls - un Mòdul Qname i un Mòdul de Declaració. En aquest apartat anem a veure com es construeixen cadascun d'aquests mòduls. Al següent apartat, farem servir aquest nou mòdul amb un altre mòdul de la família XHTML i alguns mòduls Centrals d'XHTML per a definir un nou llenguatge de marques.

3.1. Definir el Mòdul Qname

La construcció d'un Mòdul Qname XHTML ha de seguir el procés següent:

  1. Definir una entitat MODULE.prefixed què indicarà si els elements del mòdul es faràn servir amb Espais de Nom XML prefixats o no. El valor per defecte d'aquesta entitat paràmetre ha de ser "%NS.prefixed;". L'entitat paràmetre NS.prefixed està definida pel marc de treball d'XHTML per a ser IGNORE (ignorada) per defecte, i es pot fer servir en una instància de document per activar els prefixos per a tots els espais de nom inclosos (per a més informació, mirar exemple de prefixe)
  2. Definir una entitat paràmetre MODULE.xmlns que contingui el nom d'espai identificador per a aquest mòdul.
  3. Definir una entitat paràmetre MODULE.prefix que contingui la cadena de prefix per defecte que s'hagi d'emprar quan els prefixos estiguin activats.
  4. Definir una entitat paràmetre MODULE.pfx que serà "%MODULE.prefix;:" quan els prefixos estiguin activats, i "" quan aquests no ho estiguin.
  5. Definir una entitat paràmetre MODULE.xmlns.extra.attrib que contingui una declaració de qualsevol atribut de nom de espai XML per a noms d'espai als quals es faci referència en el mòdul (ex: xmlns:xlink). Quan %MODULE.prefix% tingui el valor INCLUDE (incloure), aquest atribut ha d'incloure també la declaració xmlns:%MODULE.pfx.
  6. Per a cadascun dels elements definits pel mòdul, crear una entitat paràmetre del tipus "MODULE.NAME.qname" per a conservar el seu nom qualificat. El valor d'aquesta entitat paràmetre ha de ser "%MODULE.pfx;NAME". D'aquesta forma, el valor interpretat serà "PREFIX:NAME" quan els prefixos estiguin activats i "NAME" quan no ho estiguin. Exemple:
<!ENTITY % MODULE.myelement.qname "%MODULE.pfx;myelement" >

Si el mòdul afegeix atributs a elements definits en mòduls que no comparteixen l'espai de nom d'aquest mòdul, s'han de declarar els atributs de manera que aquests facin servir el prefix %MODULE.pfx. Exemple:

<ENTITY % MODULE.img.myattr.qname "%MODULE.pfx;myattr" >

3.2 Definir el Mòdul de Declaració

La construcció d'un Mòdul de Declaració XHTML ha de seguir el procès següent:

  1. Definir una entitat paràmetre per a fer-la servir a l'ATTLIST (llista d'atributs) de cadascun dels elements declarats. Aquesta entitat paràmetre ha de ser %NS.decl.attrib; quan %MODULE.prefixed; tingui el valor INCLUDE (incloure) i %NS.decl.attrib més "xmlns=%MODULE.xmlns;" quan %MODULE.prefixed tingui el valor IGNORE (ignorar).
  2. Declarar tots els elements i atributs pel mòdul. A la ATTLIST de cada element, incloure l'entitat paràmetre definida abans per que tots els atributs xmlns requerits estiguin disponibles en tots els elements del mòdul

3.3 Ús del mòdul como a DTD interna (stand-alone DTD)

És possible que desitgi tenir un mòdul XHTML que serveixi també com DTD interna. Un bon exemple pot ser un mòdul que defineixi les parts d'un inventari. Aquestes parts han de poder ser incloses en un document XHTML, perè també han d'estar disponibles com arxius independents a, per exemple, una base de dades. La manera més fàcil d'aconseguir-ho és definint un arxiu DTD que introdueixi els components del mòdul. Una DTD d'aquest tipus haurà de tenir la següent estructura:

  1. Incluore el mòdul de Tipus de Dades XHTML (probablement el teu mòdul qname faci servir alguna d'aquestes dades)
  2. Incluore el mòdul Qname per al teu mòdul.
  3. Definir l'entitat paràmetre %NS.prefixed.attrib per que sigui MODULE.xmlns.extra.attrib quan MODULE.prefixed tingui el valor IGNORE, o MODULE.xmlns.extra.attrib i "xmlns:MODULE.prefix=MODULE.xmlns" quan MODULE.prefixed tingui el valor INCLUDE.
  4. Incloure el/s Mòdul/s de Declaració pel teu mòdul.

Nomès poden fer referència a aquesta DTD els documents que facin servir nomès els elements del teu mòdul.

4. Construcció de DTDs

Un cop hagis definit el/s teu/s mòdul/s, voldràs combinar-los amb XHTML i amb altres mòduls per a crear un nou llenguatge de marques. L'únic que has de fer per a construir un llenguatge de marques mitjançant DTDs, és definir una DTD que reflexi el llenguatge de marques. Respecte a aquest tema, anem a explorar el procès per a crear un "llenguatge de marques híbrid".

4.1. Definir el Model de Contingut com a Mòdul Model

Un Mòdul Model es un Mòdul XHTML que defineix el model de contingut per al teu nou llenguatge de marques. Aquest mòdul pot ser extremadament compexe, o tan simple com la declaració d'una entitat paràmetre i la inclusió d'altres Mòduls Model. Sigui com sigui, l'objectiu és el mateix: definir l'estructura de tots els elements al teu llenguatge de marques.

4.2. Definir la col·lecció de noms qualificats

El teu llenguatge de marques pot incloure un o més Mòduls de la família XHTML. Cadascun d'aquests mòduls tindrà un Mòdul Qname. La col·lecció de noms qualificats és un mùl al qual s'introdueixien tots els Mòduls Qname, i es defineixen tots els atributs prefixats. Específicament, una col·lecció de noms qualificats conté:

  1. Una referència al Mòdul Qname de cada mòdul no-XHTML inclòs
  2. Una definició de l'entitat paràmetre XHTML.xmlns.extra.attrib que serveixi com a col·lecció de les entitats paràmetre MODULE.xmlns.extra.attrib, una per Mòdul inclòs.

4.3. Definir el Driver

El driver es l'arxiu al que fan referència els documents escrits amb el teu llenguatge de marques. El driver pot ser simple o complexe, depenent del llenguatge de marques. Sigui com sigui, el driver de cada llenguatge de marques de la família XHTML ha de contindreels següents elements ordenats per a funcionar correctament:

  1. Una definició de l'entitat paràmetre XHTML.version. Aquesta definició ha d'ajustar-se a l'Identificador Formal Públic (Formal Public Identifier) del teu nou llenguatge de marques.
  2. Una definició de l'entitat paràmetre xhtml-qname-extra.mod. Aquesta definició ha d'ajustar-se a la col·lecció de noms qualificats definida abans. És correcte fer servir un identificador SYSTEM (de sistema) sempre que aquest es trobi dintre de la DTD.
  3. Una definició de l'entitat paràmetre xhtml-model.mod. Aquesta definició ha d'ajustar-se al Mòdul Model definit abans. Es pot fer servir un identificador SYSTEM (de sistema) sempre que aquest es trobi dintre de la DTD.
  4. Una sèrie de referències als mòduls que composen la DTD. Aquesta pot ser una referència a una altra DTD que s'està ampliant, o una llista explícita dels mòduls XHTML que es faran servir, o una combinació d'ambdues. Sigui com sigui, lo primer que s'ha d'introduïr mitjançant aquesta referència es el Mòdul del Marc de Treball de Modul·larització XHTML. Aquest mòdul s'encarrega d'incorporar tota la infraestructura d'XHTML, combinant-la amb els teus noms qualificats específics i el teu model de contingut mitjançant les entitats paràmetre definides als pasos 2 i 3. No oblidis incloure els teus Mòduls de Declaració, ja que és allà on els elements i atributs del teu llenguatge de marques han estat definits.

Ara ja ho tenim tot enllestit. Pots fer referència al teu nou llenguatge de marques definit mitjançant DTDs a la declaració DOCTYPE (de tipus de document) d'un document, i aquest pot ser validat segons el teu DTD mitjançant eines comercials o de lliure distribució.

5. Exemples de Mòduls

Als següents apartats, veurem exemples de cadascun dels tipus de mòdul dels què hem estat parlant fins ara, així com dels components que formen dos definicions diferents de llenguatges de marques.

5.1. Mòduls Qname

El primer dels mòduls qname que veurem a continuació correspon a un mòdul inventari. El segon correspon a algunes extensions del mòdul inventari.

5.1.1. Mòdul Qname Inventari

<!-- ...................................................................... -->
<!-- Mòdul Qname Inventari ................................................... -->
<!-- arxiu: inventory-qname-1.mod

     PUBLIC "-//COMPANYIA//ELEMENTS XHTML Qnames d'Inventari 1.0//EN"
     SYSTEM "http://www.my.org/DTDs/inventory-qname-1.mod"

     xmlns:inventory="http://www.my.org/xmlns/inventory"
     ...................................................................... -->

<!-- Declara el valor per defecte del prefixat en aquest mòdul -->
<!-- Adoni-se'n que NS.prefixed no serà tingut en compte pel
     Marc de Treball d'XHTML o per una instància de document.  -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % Inventory.prefixed "%NS.prefixed;" >

<!-- Declara l'Espai de Nom útil per a aquest mòdul -->
<!ENTITY % Inventory.xmlns "http://www.my.org/xmlns/inventory" >

<!-- Declara el prefix per defecte d'aquest mòdul -->
<!ENTITY % Inventory.prefix "inventory" >

<!-- Declara el prefix i tots els espais de nom amb prefix necessaris
     per a aquest mòdul -->
<![%Inventory.prefixed;[
<!ENTITY % Inventory.pfx "%Inventory.prefix;:" >
<!ENTITY % Inventory.xmlns.extra.attrib
    "xmlns:%Inventory.prefix;   %URI.datatype;  #FIXED  '%Inventory.xmlns;'" >
]]>
<!ENTITY % Inventory.pfx "" >
<!ENTITY % Inventory.xmlns.extra.attrib "" >

<!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" >

5.1.2. Extensions del Mòdul Qname Inventari

<!-- ...................................................................... -->
<!-- Extensions del Mòdul Qname Inventari ............................................... -->
<!-- arxiu: extension-qname-1.mod

     xmlns:invext="http://www.my.org/xmlns/invext"
     ...................................................................... -->

<!-- Declara el valor per defecte del prefixat als elements d'aquest mòdul -->
<!-- Adoni-se'n que NS.prefixed no serà tingut en compte pel
     Marc de Treball d'XHTML o per una instància de document. -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % Extension.prefixed "%NS.prefixed;" >

<!-- Declara l'Espai de Nom útil per a aquest mòdul -->
<!ENTITY % Extension.xmlns "http://www.my.org/xmlns/invext" >

<!-- Declara el prefix per defecte d'aquest mòdul -->
<!ENTITY % Extension.prefix "invext" >

<!-- Declara el prefix i tots els espais de nom amb prefix necessaris
     per a aquest mòdul -->
<![%Extension.prefixed;[
<!ENTITY % Extension.pfx "%Extension.prefix;:" >
<!ENTITY % Extension.xmlns.extra.attrib
    "xmlns:%Extension.prefix;   %URI.datatype;  #FIXED  '%Extension.xmlns;'" >
]]>
<!ENTITY % Extension.pfx "" >
<!ENTITY % Extension.xmlns.extra.attrib "" >

<!ENTITY % Extension.store.qname "%Extension.pfx;store" >
<!ENTITY % Extension.aisle.qname "%Extension.pfx;aisle">

5.2. Mòduls de Declaració

El primer mòdul de declaración es para los elementos del mòdul inventario. El segundo para los elementos de extensión

5.2.1. Mòdul de Declaración Inventario

<!-- ...................................................................... -->
<!-- Mòdul d'Elements d'Inventari ................................................... -->
<!-- arxiu: inventory-1.mod

     PUBLIC "-//COMPANYIA//ELEMENTS XHTML Elements d'Inventari 1.0//EN"
     SYSTEM "http://www.my.org/DTDs/inventory-1.mod"

     xmlns:inventory="http://www.my.org/xmlns/inventory"
     ...................................................................... -->

<!-- Mòdul Inventari

     item
       sku
       desc
       price

     Aquest mòdul defineix l'estructura simple d'un article de l'inventari
-->

<!-- Defineix els atributs generals de l'espai de nom -->
<![%Inventory.prefixed;[
<!ENTITY % Inventory.xmlns.attrib
    "%NS.decl.attrib;"
>
]]>
<!ENTITY % Inventory.xmlns.attrib
    "%NS.decl.attrib;
     xmlns  %URI.datatype;  #FIXED '%Inventory.xmlns;'"
>

<!ELEMENT %Inventory.shelf.qname;
     ( %Inventory.item.qname; )* >
<!ATTLIST %Inventory.shelf.qname;
     location   CDATA   #IMPLIED
     %Inventory.xmlns.attrib;
>
<!ELEMENT %Inventory.item.qname;
     ( %Inventory.desc.qname;, %Inventory.sku.qname;, %Inventory.price.qname;) >
<!ATTLIST %Inventory.item.qname;
     location   CDATA   #IMPLIED
     %Inventory.xmlns.attrib;
>

<!ELEMENT %Inventory.desc.qname; ( #PCDATA ) >
<!ATTLIST %Inventory.desc.qname;
     %Inventory.xmlns.attrib;
>

<!ELEMENT %Inventory.sku.qname; ( #PCDATA ) >
<!ATTLIST %Inventory.sku.qname;
     %Inventory.xmlns.attrib;
>

<!ELEMENT %Inventory.price.qname; ( #PCDATA ) >
<!ATTLIST %Inventory.price.qname;
     %Inventory.xmlns.attrib;
>

<!-- final d'inventory-1.mod -->

5.2.2. Extensions del Mòdul de Declaració Inventari

<!-- ...................................................................... -->
<!-- Extensions del Mòdul d'Elements ................................................... -->
<!-- arxiu: extension-1.mod

     SYSTEM "extension-1.mod"

     xmlns:invext="http://www.my.org/xmlns/invext"
     ...................................................................... -->

<!-- Mòdul de Extensió

     store
       aisle

     Aquest mòdul defineix una extensió per a l'estructura de l'inventari
-->

<!-- Defineix els atributs generals de l'espai de nom -->
<![%Extension.prefixed;[
<!ENTITY % Extension.xmlns.attrib
    "%NS.decl.attrib;"
>
]]>
<!ENTITY % Extension.xmlns.attrib
    "%NS.decl.attrib;
     xmlns  %URI.datatype;  #FIXED '%Extension.xmlns;'"
>

<!ELEMENT %Extension.store.qname;
     ( %Extension.aisle.qname; )* >
<!ATTLIST %Extension.store.qname;
     name   CDATA   #IMPLIED
     %Extension.xmlns.attrib;
>
<!ELEMENT %Extension.aisle.qname;
     ( %Inventory.shelf.qname; )* >
<!ATTLIST %Extension.aisle.qname;
     number CDATA   #IMPLIED
     %Extension.xmlns.attrib;
>

<!-- final d'extension-1.mod -->

6. Exemples de Llenguatges de Marques

6.1. Extensions d'Inventari-XHTML - un Llenguatge de Marques de la Família XHTML

Aquest llenguatge de marques compleix tots els requisits per a ser un llenguatge de marques de la família XHTML. Fa servir els Mòduls Centrals d'XHTML, i els amplia amb els Mòduls Inventari i les extensions del Mòdul Inventari definides abans.

6.1.1 Mòdul de col·lecció de Qname

<!-- Introdueix els noms qualificats de l'inventari -->
<!ENTITY % Inventory-qname.mod
         PUBLIC "-//COMPANYIA//ENTITATS XHTML Qnames d'Inventari 1.0//EN"
         "inventory-qname-1.mod" >
%Inventory-qname.mod;

<!-- Introdueix el mòdul d'extensió local -->
<!ENTITY % Extension-qname.mod
        SYSTEM "extension-qname-1.mod" >
%Extension-qname.mod;

<!-- Defineix els atributs d'extensió d'xmlns -->
<!ENTITY % XHTML.xmlns.extra.attrib
         "%Inventory.xmlns.extra.attrib;
          %Extension.xmlns.extra.attrib;" >

6.1.2. Mòdul de Model de Contingut

<!-- ...................................................................... -->
<!-- Mòdul Model d'Extensió d'Inventari  .................................... -->
<!-- arxiu: xhtml-invext-model-1.mod

     SYSTEM "xhtml-invext-model-1.mod"
     ...................................................................... -->

<!-- Defineix el contingut model per a Misc.extra -->
<!ENTITY % Misc.class
     "| %script.qname; | %noscript.qname; | %Extension.store.qname; ">

<!-- ....................  Elements Inline (en línia)  ...................... -->

<!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
     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname; 
      | %small.qname; | %sub.qname; | %sup.qname;" >

<!ENTITY % Anchor.class "| %a.qname;" >

<!ENTITY % InlSpecial.class "| %img.qname; " >

<!ENTITY % Inline.extra "" >

<!-- %Inline.class; inclou tots els elements en línia,
     fets servir com a components en mescles
-->
<!ENTITY % Inline.class
     "%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %Anchor.class;
      %InlSpecial.class;"
>

<!-- %InlNoAnchor.class; inclou tots els elements en línia que no són àncores,
     fets servir com a components en mescles
-->
<!ENTITY % InlNoAnchor.class
     "%InlStruct.class;
      %InlPhras.class;
      %InlPres.class;
      %InlSpecial.class;"
>

<!-- %InlNoAnchor.mix; inclou tots els elements en línia que no són àncores
-->
<!ENTITY % InlNoAnchor.mix
     "%InlNoAnchor.class;
      %Misc.class;"
>

<!-- %Inline.mix; inclou tots els elements en línia, %Misc.class; inclòs
-->
<!ENTITY % Inline.mix
     "%Inline.class;
      %Misc.class;"
>

<!-- ..................... Elements Block (en bloc) ...................... -->

<!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 "| %hr.qname;" >

<!ENTITY % Block.extra "" >

<!-- %Block.class; inclou tots els elements en bloc,
     fets servir com a components en mescles
-->
<!ENTITY % Block.class
     "%Blkstruct.class;
      %Blkphras.class;
      %Blkpres.class;
      %Block.extra;"
>

<!-- %Block.mix; inclou tots els elements en bloc més %Misc.class;
-->
<!ENTITY % Block.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      %Misc.class;"
>

<!-- ................  Tots els Elements de Contingut  .................. -->

<!-- %Flow.mix; inclou tot el contingut de text, en bloc i en línia
-->
<!ENTITY % Flow.mix
     "%Heading.class;
      | %List.class;
      | %Block.class;
      | %Inline.class;
      %Misc.class;"
>

<!-- final d'xhtml-invext-model-1.mod -->

6.1.3. DTD Driver

<!-- ....................................................................... -->
<!-- DTD d'Extensió d'Inventari  .............................................. -->
<!-- arxiu: xhtml-invext-1.dtd -->

<!-- Aquest és el DTD Driver per a la versió 1.0 de l'inventari.

     Si us plau, fes servir aquest identificador públic formal per identificar-ho:

         "-//COMPANYIA//DTD XHTML Inventari Extensió 1.0//EN"

     I aquest espai de nom per als elements d'extensió:

         xmlns:inventory="http://www.my.org/xmlns/invext"
     
     S'inclouen també altres espais de nom.
-->
<!ENTITY % XHTML.version  "-//COMPANYIA//DTD XHTML Inventari Extensió 1.0//EN" >

<!-- Defineix el mòdul de noms qualificats d'XHTML per a que siguin nostres -->
<!ENTITY % xhtml-qname-extra.mod
     SYSTEM "xhtml-invext-qname-1.mod" >

<!-- Reservat pel seu ús a perfils de document -->
<!ENTITY % XHTML.profile  "" >

<!-- Defineix el Contingut Model per al marc de treball que es farà servir -->
<!ENTITY % xhtml-model.mod
     SYSTEM "xhtml-invext-model-1.mod" >

<!-- Desactiva el suport per a text bidireccional -->
<!ENTITY % XHTML.bidi  "INCLUDE" >

<!-- Introdueix el Marc de Treball d'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;

<!-- Mòdul Text (Necessari)  ............................... -->
<!ENTITY % xhtml-text.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" >
%xhtml-text.mod;

<!-- Mòdul Hypertext (Necessari) ................................. -->
<!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;

<!-- Mòdul Llistes (Necessari)  .................................... -->
<!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;

<!-- Mòdul Inventari   ........................................ -->
<!ENTITY % Inventory-elements.mod
     SYSTEM "inventory-1.mod" >
%Inventory-elements.mod;

<!-- Mòdul d'Extensió d'Inventari   .............................. -->
<!ENTITY % Invext-elements.mod
     SYSTEM "extension-1.mod" >
%Invext-elements.mod;

<!-- Mòdul Imatges 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;

<!-- Mòdul Metainformació de Document  ............................ -->
<!ENTITY % xhtml-meta.mod
     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
            "xhtml-meta-1.mod" >
%xhtml-meta.mod;

<!-- Mòdul Estructura de Document (Necessari)  ....................... -->
<!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;

7. Exemples d'Ús

7.1 Inventari-XHTML sense prefixos

Aquest exemple fa servir el nou llenguatge de marques en el seu mode per defecte - sense prefixos definits per cap dels mòduls.

<!DOCTYPE html SYSTEM "xhtml-invext-1.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Exemple fent servir els valors per defecte</title>
</head>
<body>
<p>Contingut de l'espai de nom XHTML</p>
<shelf>
  <item>
    <desc>
      això és una descripció.
    </desc>
    <sku>
      això és l'sku
    </sku>
    <price>
      això és el preu.
    </price>
  </item>
</shelf>
</body>
</html>

7.2. Inventari-XHTML amb prefixos d'Inventari

Aquest exemple fa servir el nou llenguatge de marques amb els prefixos activats nomès per als components d'inventari i les seves extensions.

<!DOCTYPE html SYSTEM "xhtml-invext-1.dtd" [
    <!ENTITY % Inventory.prefixed "INCLUDE">
    <!ENTITY % Inventory.prefix "i">
]>
<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:i="http://www.my.org/xmlns/inventory" >
<head>
<title>Exemple fent servir prefixes</title>
</head>
<body>
<p>Contingut de l'espai de nom XHTML</p>
<i:shelf>
  <i:item>
    <i:desc>
      això és una descripció.
    </i:desc>
    <i:sku>
      això és l'sku.
    </i:sku>
    <i:price>
      això és el preu.
    </i:price>
  </i:item>
</i:shelf>
</body>
</html>

7.3. Inventari-XHTML amb tots els prefixes

Aquest exemple afegeix un prefixe a tots els elements.

<!DOCTYPE x:html SYSTEM "xhtml-invext-1.dtd" [
    <!ENTITY % NS.prefixed "INCLUDE">
    <!ENTITY % XHTML.prefix "x" >
    <!ENTITY % Inventory.prefix "i">
]>
<x:html xmlns:x="http://www.w3.org/1999/xhtml"
        xmlns:i="http://www.my.org/xmlns/inventory" >
<x:head>
<x:title>Exemple fent servir prefixes</x:title>
</x:head>
<x:body>
<x:p>Contingut de l'espai de nom XHTML</x:p>
<i:shelf>
  <i:item>
    <i:desc>
      això és una descripció.
    </i:desc>
    <i:sku>
      això és l'sku.
    </i:sku>
    <i:price>
      això és el preu.
    </i:price>
  </i:item>
</i:shelf>
</x:body>
</x:html>


Principal | Otras traducciones