<!-- DSSSL Architectural Forms -->

<!ENTITY % declarations
 "features | baseset-encoding | literal-described-char | add-name-chars
  | add-separator-chars | standard-chars | other-chars 
  | combine-char | map-sdata-entity | char-repertoire"
>

<!element dsssl-specification - O
          ((%declarations;)*,
           (style-specification | transformation-specification
            | external-specification)+)>
<!attlist dsssl-specification
          version CDATA #FIXED "ISO/IEC 10179:1996"
>

<!element transformation-specification - O
          ((%declarations;)*, transformation-specification-body*)>
<!attlist transformation-specification
          id ID #IMPLIED
	  desc CDATA #IMPLIED
          -- human readable description of specification --
	  partial (partial | complete) complete
	  -- is the specification complete is or is it just a fragment
	     to be used in other specifications? --
          use -- reftype(transformation-specification|external-specification) --
              IDREFS #IMPLIED -- Default: none --
          entities
          -- entities available to be specified as DTD for validation
             of result document --
              ENTITIES #IMPLIED -- Default: none --
>

<!element style-specification - O
          ((%declarations;)*, style-specification-body*)>
<!attlist style-specification
          id ID #IMPLIED
	  desc CDATA #IMPLIED
          -- human readable description of specification --
	  partial (partial | complete) complete
	  -- is the specification complete is or is it just a fragment
	     to be used in other specifications? --
          use   -- reftype(style-specification|external-specification) --
             IDREFS #IMPLIED -- Default: none --
>

<!-- Assign a local ID to a specification in another document. -->
<!element external-specification - O EMPTY>
<!attlist external-specification
          id ID #REQUIRED
          document -- document containing spec --
                  ENTITY #REQUIRED 
          specid -- id of spec in document --
                  NAME #IMPLIED -- Default: first spec in document --
>

<!-- Declares features used by specification. -->
<!element features - O (#PCDATA)
  -- dlextype(featurename*) -->

<!-- Map character numbers in a base character set to character names;
not needed when system knows a character set, and all characters
in character set have universal code. -->
<!element baseset-encoding - O (#PCDATA)
  -- dlextype((number, charname)*) -->
<!attlist baseset-encoding
          name CDATA #REQUIRED -- public identifier of baseset --
>

<!-- Map a character described in the SGML declaration with a minimum literal
to a character name. -->
<!element literal-described-char - O (#PCDATA)
  -- dlextype(charname) -->
<!attlist literal-described-char
          desc CDATA #REQUIRED -- the literal description --
>

<!-- Declare additional characters allowed in name within DSSSL notation. -->
<!element add-name-chars - O (#PCDATA)
  -- dlextype(charname*) -->

<!-- Declare additional characters allowed as separators within
DSSSL notation. -->
<!element add-separator-chars - O (#PCDATA)
  -- dlextype(charname*) -->

<!-- Define characters associating names with universal codes. -->

<!element standard-chars - O (#PCDATA)
  -- dlextype((charname, number))*) -->

<!-- Define characters with no universal codes. -->

<!element other-chars - O (#PCDATA)
  -- dlextype(charname*) -->

<!-- Map an SDATA entity onto a character. -->

<!element map-sdata-entity - O (#PCDATA)
  -- dlextype(charname) -->
<!attlist map-sdata-entity
         name CDATA #IMPLIED -- Default: mapping uses replacement text only --
         text CDATA #IMPLIED -- Default: mapping uses name only --
>

<!-- Declare character combining. -->

<!element combine-char - O (#PCDATA)
  -- dlextype(charname, charname, charname+) -->

<!-- Declare a character repertoire. -->
<!element char-repertoire - O EMPTY>
<!attlist char-repertoire
          name -- public identifier for repertoire --
               CDATA #REQUIRED 
>

<!element style-specification-body - - CDATA
  -- content uses notation of DSSSL style language -->
<!attlist style-specification-body
          content ENTITY #CONREF -- Default: syntactic content --
>

<!element transformation-specification-body - - CDATA
  -- content uses notation of DSSSL transformation language -->
<!attlist transformation-specification-body
          content ENTITY #CONREF -- Default: syntactic content --
>

<!-- This notation is intended for use as the value of the ArcDataF
  architectural form support attribute. -->

<!NOTATION dsssl-specification PUBLIC
  "ISO/IEC 10179:1996//NOTATION DSSSL Specification//EN">
