Markup declarations code generators for tab-separated values parsing and processing for use via FSI system identifiers.

Static bundled module containing functions for generating markup declaration code text for parsing and processing tab-separated value data streams.

Storage manager notation declarations for invoking these bundled module functions are exposed via the declaration set resolved by the public identifier //IDN sgml.net//DTD FSISM TSV parsing declaration utilities//EN.

Member Details

generate_element_decl() static

Generates element declarations for use within a tab-separated parsing and processing template.

Generates element declarations for the respective fields from the container, record, and fields data attributes supplied via system.env.

The tsv_element_decl storage manager notation is declared as:

<!NOTATION tsv_element_decl SYSTEM>
<!ATTLIST #NOTATION tsv_element_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_element_decl"
  container NAME #REQUIRED
  record NAME #REQUIRED
  fields NAMES #REQUIRED>

For a parameter entity declared as:

<?IS10744 FSIDR tsv_notation_decl
  FSIDefDoc="+//IDN sgml.net//DTD FSISM TSV parsing declaration utilities//EN">
<!ENTITY % decl-text SYSTEM "<tsv_notation_decl
  container="container_element"
  record="record_element"
  fields="field_element1 field_element2 ...>">

element declarations in decl-text are generated as follows:

<!ELEMENT container_element - - (record_element+)>
<!ELEMENT record_element - - (field_element1,field_element2,...)>
<!ELEMENT field_element1 - - (#PCDATA)>
<!ELEMENT field_element2 - - (#PCDATA)>
...
generate_entity_decl() static

Generates general entity declarations for use within a tab-separated parsing and processing template.

Generates general entity declarations containing start- and end-element tag sequences for the respective fields from the record and fields data attributes supplied via system.env.

The tsv_entity_decl storage manager notation is declared as:

<!NOTATION tsv_entity_decl SYSTEM>
<!ATTLIST #NOTATION tsv_entity_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_entity_decl"
  record NAME #REQUIRED
  fields NAMES #REQUIRED>

Entity declarations are generated as follows:

 <!ENTITY start-fields "<record_element><field_element1>">
 <!ENTITY end-record_element "</field_elementN></record_element>">
 <!ENTITY end-field_element1 "</field_element1><field_element2>">
 <!ENTITY end-field_element2 "</field_element2><field_element3>">
 ...
 <!ENTITY end-field_elementN ...>
generate_linkattr_decl() static

Generates link attribute declarations for use within a tab-separated parsing and processing template.

Generates link attribute declarations from the fields data attribute declaring link attributes having the same name as field elements, as well as auxiliary attributes.

The tsv_linkattr_decl storage manager notation is declared as:

<!NOTATION tsv_linkattr_decl SYSTEM>
<!ATTLIST #NOTATION tsv_linkattr_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_linkattr_decl"
  fields NAMES #REQUIRED>

Link attribute declarations are generated as follows:

<!ATTLIST (field_element1|field_element2|...)
  field_element1 CDATA #IMPLIED
  field_element2 CDATA #IMPLIED
  template NOTATION (field_element1|field_element2|...) #IMPLIED
  NotNames CDATA #IMPLIED>
generate_linkrule_decl() static

Generates link rules declaration text for use within a tab-separated parsing and processing template.

Generates a declaration fragment containing link rules from the record and fields data attributes.

The generated linkrules have the purpose to pull, via a NotNames rule, element content into a same-named data attribute of a template applied in the context.

Note that, since the result markup element of all generated link rules up to the last one is #IMPLIED, no template application is expected to actually be performed. The link rules, up to the last one, are only applied for the side effect of fetching element content into data attributes and updating #CURRENT values for the respective data attribute. Only the last link rules is actually designed to perform a template application.

The tsv_linkrule_decl storage manager notation is declared as:

<!NOTATION tsv_linkrule_decl SYSTEM>
<!ATTLIST #NOTATION tsv_linkrule_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_linkrule_decl"
  record NAME #REQUIRED
  fields NAMES #REQUIRED>

The generated link rule fragment is generated as follows:

field_element1 [ template=field_element1 NotNames="field_element1 #CONTENT" ] #IMPLIED
field_element2 [ template=field_element2 NotNames="field_element2 #CONTENT" ] #IMPLIED
field_elementN [ template=field_elementN NotNames="field_elementN #CONTENT" ] record_element
generate_notation_decl() static

Generates notation declarations for use within a tab-separated parsing and processing template.

Generates notation and data attribute declarations for declaring notations from the fields and template_sysid data attributes for use as template notations in a link process.

The declared template notations will capture and propagate notation attribute values via #CURRENT semantics to subsequent field elements within a field element sequennce, such that on the last field element, all values * can be captured as DAFE attributes and promoted to a template application.

Note the notations have the same name as the data attributes declared on them, which however is inconsequential to the processing obtained by using these declaratations.

Note even though "%template_sysid" is declared as system identifier on all generated notations, a template application is only expected on the last field element, the other notation declarations only being generated for capturing values via #CURRENT attribute semantics.

The tsv_notation_decl storage manager notation is declared as:

<!NOTATION tsv_notation_decl SYSTEM>
<!ATTLIST #NOTATION tsv_notation_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_notation_decl"
  fields NAMES #REQUIRED
  template_sysid CDATA #REQUIRED>

Notation and data attribute declarations are generated as follows:

<!NOTATION field_element1
  PUBLIC "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN"
  "%template_sysid">
<!NOTATION field_element2
   PUBLIC "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN"
   "%template_sysid">
<!NOTATION field_element3
   PUBLIC "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN"
   "%template_sysid">
 ...
<!ATTLIST #NOTATION (field_element1|field_element2|field_element3|...)
  field_element1 CDATA #CURRENT>
<!ATTLIST #NOTATION (field_element2|field_element3|...)
  field_element2 field_element2 CDATA #CURRENT>
<!ATTLIST #NOTATION (field_element3...)
  field_element2 field_element3 CDATA #CURRENT>
generate_shortref_decl() static

Generates short-reference map declarations for use within a tab-separated parsing and processing template.

Generates short-reference map declarations from the container and fields data attributes supplied via system.env, acting on tab and record-end short reference delimiters for producing entity references as generated by generate_entity_decl().

The tsv_shortref_decl storage manager notation is declared as:

<!NOTATION tsv_shortref_decl SYSTEM>
<!ATTLIST #NOTATION tsv_shortref_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_shortref_decl"
  container NAME #REQUIRED
  record NAME #REQUIRED
  fields NAMES #REQUIRED>

Short reference map declarations are generated as follows:

<!SHORTREF in-container_element "&#RS" start-fields>
<!SHORTREF in-field_element1 "&#TAB" end-field_element1>
<!SHORTREF in-field_element2 "&#TAB" end-field_element2>
...
<!SHORTREF in-field_elementN "&#RE" end-record_element>
generate_usemap_decl() static

Generates short-reference use declarations for use within a tab-separated parsing and processing template.

Generates short-reference use declarations from the container and fields data attributes supplied via system.env, making short-reference maps declared using generate_shortref_decl() used within content of the respective elements.

The tsv_usemap_decl storage manager notation is declared as:

<!NOTATION tsv_usemap_decl SYSTEM>
<!ATTLIST #NOTATION tsv_usemap_decl
  superdcn NAME #FIXED module
  module CDATA #FIXED "tsvparsing"
  function CDATA #FIXED "generate_usemap_decl"
  container NAME #REQUIRED
  fields NAMES #REQUIRED>

Short reference use declarations are generated as follows:

<!USEMAP in-container_element container-element>
<!USEMAP in-field_element1 field_element1>
<!USEMAP in-field_element2 field_element2>
...