Print

Print


>No, in trying to keep MODS lightweight, we did not include language of
>cataloging as an element in MODS. We could add it to RecordInfo if deemed
>important.
Why adding a lang attribute to some (all) elements is not lightweight ?

Here is the solutions used in SimpleDocbook and XHTML 1.0 (strict) :

SDOCBOOK : http://www.oasis-open.org/docbook/xml/simple/1.0CR3/index.shtml
The designers define an entity "common.attrib" at the begining of the dtd
and they use it in some element definition :

<!ENTITY % common.attrib
        "id             ID              #IMPLIED
        lang            CDATA           #IMPLIED    <!-- an attribute very usefull for MODS users -->
        revisionflag    (changed
                        |added
                        |deleted
                        |off)           #IMPLIED
        %local.common.attrib;"
>

...

<!ELEMENT title  (%title.char.mix;)*>
<!ATTLIST title
                %pagenum.attrib;
                %common.attrib;
                %title.role.attrib;
                %local.title.attrib;
>

...

<!ELEMENT subjectterm  (#PCDATA)>
<!ATTLIST subjectterm
                %common.attrib;
                %subjectterm.role.attrib;
                %local.subjectterm.attrib;
>

-------------

XHTML 1.0 (strict) : http://www.w3.org/TR/2000/REC-xhtml1-20000126/#dtds

This is the same technic, they define an entity at the begining and they use
it in some elements definitions :

<!-- internationalization attributes
  lang        language code (backwards compatible)
  xml:lang    language code (as per XML 1.0 spec)
  dir         direction for weak/neutral text
-->
<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED
  xml:lang    %LanguageCode; #IMPLIED
  dir         (ltr|rtl)      #IMPLIED"
  >

...

<!ELEMENT title (#PCDATA)>
<!ATTLIST title %i18n;>

...

<!-- generic metainformation -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
  %i18n;
  http-equiv  CDATA          #IMPLIED
  name        CDATA          #IMPLIED
  content     CDATA          #REQUIRED
  scheme      CDATA          #IMPLIED
  >

-----

Of course in MODS it is possible to use <xsd:attributeGroup> to do this in
an clean manner.

Yves

----------------------------------------------------------------------------
--------
Yves Pratter
Software Engineer

Alex Temex Multimedia
4 Bis, Avenue du pre de Challes
74940 Annecy-le-Vieux
tel. : +33 (04) 50 64 08 97
fax  : +33 (04) 50 64 15 81
mel  :  [log in to unmask]
----------------------------------------------------------------------------
--------