Courtesy of Martin Bryan
The use of FSIs is indicated by the presence of a processing instruction at the start of the document. This processing instruction must conform to the following template:
<!-- FSI Storage Managers Declaration -->
<!-- TEMPLATE FOR PI IN DTD OR DERIVED META-DTD -->
<?FSISM SMName-list FSIDefDoc="external-id" >
The storage managers defined in the SMName-list must all be declared as SGML Notations that conform to the following template:
<!-- Other Storage Manager Attributes -->
<!-- TEMPLATE FOR DECLARATION OF ANY STORAGE MANAGER -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!ATTLIST #NOTATION SMName3
extents -- Dimensions of occupied extents of object --
-- Constraint: applies to storage octets;
quantum is an octet --
-- Constraint: interpreted as HyTime dimlist --
-- lextype(snzi, snzi)+ --
CDATA "1 -1" -- Default: entire object --
smcrd -- Storage manager character reference delimiter --
-- Constraint: single character --
CDATA #IMPLIED -- Default: none --
compress -- Compression information --
-- lextype(NOTATION) --
CDATA #IMPLIED -- Default: none --
encrypt -- Encryption information --
-- lextype(NOTATION) --
CDATA #IMPLIED -- Default: none --
seal -- Integrity information --
-- lextype(NOTATION) --
CDATA #IMPLIED -- Default: none --
>
<!NOTATION md5 PUBLIC "-//IETF/RFC1544//NOTATION FSIATT SEAL
MD5 Content-MD5 Header Field//EN" >
The formal productions used to describe an FSI are:
soi is the formal description of the location according to the rules laid down in the new HyTime annex that will describe this facility.
The optional entuse-start-tag can only be present if support for the entuse notation has been declared. This notation is defined as:
<!-- Entity Usage Attributes -->
<!-- THIS IS A NON-MANDATORY STARTER SET. -->
<!NOTATION entuse PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM SYNTAX
Entity Usage Start-tag//EN"
>
<!ATTLIST #NOTATION entuse
included -- Entities included from notation data --
ENTITIES #IMPLIED -- Default: no inclusions --
modlevel -- Modification level --
-- 1st: 0 when created; incremented when modified.
2nd: Set to 1st when validated by application. --
-- lextype(number, number) --
NUMBERS #IMPLIED -- Default: not tracked --
altreps -- Alternative representations of this entity --
-- Modgens can be compared for integrity checking --
-- lextype(ENTITIES) --
NAMES #IMPLIED -- Default: none --
encoding -- Platform-dependent encoding information --
-- Constraint: bit-combination size and "word"
size, expressed as permutation of normalized
word of 2, 4, or 8 bit combinations.
MSB is leftmost and numbered "1" --
-- Normalized="8 12", "8 1234", "8 12345678"
Example: Intel="8 21", "8 2143", "8 21436587" --
-- lextype(number, number) --
NUMBERS "8 12"
>
The sos-start-tag and sos-end-tag are tags for which the generic identifier matches one of the names declared in the SMName-list.
The following default set of storage managers are defined in the new annex:
<!-- Local Storage Managers -->
<!-- PART OF A NON-MANDATORY STARTER SET -->
<!NOTATION osfile PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM LOCAL
Operating System File//EN" >
<!ATTLIST #NOTATION osfile
SOIbase -- Base for relative SOI --
-- Constraint: For SMs that allow relative SOI--
CDATA #IMPLIED -- Default: object in
which SOS occurs if in same SM, else none -->
<!NOTATION osfd PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM LOCAL
Operating System File Descriptor//EN" >
<!NOTATION NameExt PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM LOCAL
Generic Name.Extension//EN" >
<!ATTLIST #NOTATION NameExt
SOIbase -- Base for relative SOI --
-- Constraint: For SMs that allow relative SOI--
CDATA #IMPLIED -- Default: object in
which SOS occurs if in same SM, else none --
<!-- Portable Storage Managers -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!NOTATION url PUBLIC "-//IETF/RFC1738//NOTATION FSISM PORTABLE
World Wide Web Uniform Resource Locator//EN">
<!ATTLIST #NOTATION url
SOIbase -- Base for relative SOI --
-- Constraint: For SMs that allow relative SOI--
CDATA #IMPLIED -- Default: object in
which SOS occurs if in same SM, else none -- >
<!-- Global Storage Managers -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!NOTATION literal PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM GLOBAL
Literal Text//EN" >
<!NOTATION ThisOne PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM GLOBAL
This Storage Object//EN">
<!ATTLIST #NOTATION ThisOne
entity -- Entity whose bit combinations are used --
-- Constraint: ''=this entity --
CDATA #IMPLIED -- Default: the octets
of this storage object -->
<!-- Container Storage Managers -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!NOTATION tar PUBLIC "ISO/IEC 9941-1:1990//NOTATION FSISM CONTAINER
Posix Tape ARchive//EN"
-- Creates container by partitioning storage object to
emulate file system directory structure. --
-- SOI is a file identifier. -->
<!ATTLIST #NOTATION tar -- Attributes of tar CONTAINER notation. --
in -- Container in which this object is stored --
-- lextype(ENTITY|fsi) --
CDATA #IMPLIED -- Default: Most recently
declared entity of this SM type. If
none, the entity in which this
declaration occurs. -->
<!NOTATION mime PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM CONTAINER
Multimedia Internet Mail Extensions//EN"
-- Creates container by separating stored entities with a
unique boundary string and identifying them with headers. --
-- SOI is a MIME content-ID. -->
<!ATTLIST #NOTATION mime -- Attributes of mime CONTAINER notation. --
in -- Container in which this object is stored --
-- lextype(ENTITY|fsi) --
CDATA #IMPLIED -- Default: Most recently
declared entity of this SM type. If
none, the entity in which this
declaration occurs. -->
A generalized mechanism is provided for defining container notations based on the sbento concepts:
<!-- Standard Bento Entity for Natural Transport of Objects -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!NOTATION sbento PUBLIC "ISO/IEC 10744:1992//NOTATION FSISM CONTAINER
Standard BENTO//EN"
-- Creates container by partitioning storage object into
bit combinations that can be occupied by entities. --
-- SOI is number list that counts bit combinations. --
-- SOI constraint: interpreted as HyTime dimlist --
-- SOI lextype(snzi |(snzi, snzi)+) -->
<!ATTLIST #NOTATION sbento -- Attributes of sbento CONTAINER notation. --
in -- Container in which this object is stored --
-- lextype(ENTITY|fsi) --
CDATA #IMPLIED -- Default: Most recently
declared entity of this SM type. If
none, the entity in which this
declaration occurs. -->
<!-- TEMPLATE FOR DECLARING SBENTO CONTAINER ENTITY -->
<!-- Container shares storage object with SGML document entity in whose
DOCTYPE internal subset the sbento entity declarations occur. The
extents value "nnn" in the template is replaced by the position of
the first storage octet after the SGML document entity.
-->
<!ENTITY bento1 SYSTEM "<ThisOne extents='nnn -1'>" NDATA sbento>
<!-- TEMPLATE FOR DECLARING SBENTO CONTAINED ENTITY -->
<!-- Contained entity occupies first 500 units of "bento1" entity. -->
<!ENTITY inbento1 SYSTEM "<sbento in=bento1>1 500" >
For record related storage managers the following attributes can be applied:
<!-- Record-related Attributes -->
<!-- TEMPLATE FOR DECLARATION OF ANY STORAGE MANAGER -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!ATTLIST #NOTATION SMName1
records -- Record boundary recognition --
(find|cr|lf|crlf|lfcr|rms|asis)
-- Default: find, except "asis" for NDATA
entities and those whose FSIs are in
SOs with records=asis. --
tracking -- Record boundary tracking in messages --
-- Constraint: SGML entities only --
(track|notrack) track
<!-- BCTF Attribute -->
The concept of Bit Combination Transformation Formats (BCTF) can also be applied to allow data to be converted from its generated to its transmitted formats. The following attributes are defined for this purpose:
<!-- TEMPLATE FOR DECLARATION OF ANY STORAGE MANAGER -->
<!-- PART OF A NON-MANDATORY STARTER SET. -->
<!ATTLIST #NOTATION SMName2
bctf -- Bit combination transformation format --
-- Constraint: SGML, CDATA, SDATA entities only --
-- lextype(NOTATION) --
NAME same>
The starter set of transformations defined in the standard is:
<!-- BCTF Algorithms -->
<!-- THIS IS A NON-MANDATORY STARTER SET. -->
<!NOTATION identity PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
IDENTITY BCTF Algorithm//EN" >
<!NOTATION fixed-2 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
FIXED-2 BCTF Algorithm//EN" >
<!NOTATION fixed-3 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
FIXED-3 BCTF Algorithm//EN" >
<!NOTATION fixed-4 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
FIXED-4 BCTF Algorithm//EN" >
<!NOTATION utf-8 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
UTF-8 BCTF Algorithm//EN" >
<!NOTATION utf-7 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
UTF-7 BCTF Algorithm//EN" >
<!NOTATION euc-jp PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
EUC-JP BCTF Algorithm//EN" >
<!NOTATION sjis PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
SJIS BCTF Algorithm//EN" >
<!NOTATION unicode PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
UNICODE BCTF Algorithm//EN" >
<!NOTATION iso88591 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
ISO88591 BCTF Algorithm//EN" >
<!NOTATION iso88592 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
ISO88592 BCTF Algorithm//EN" >
<!NOTATION iso88593 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
ISO88593 BCTF Algorithm//EN" >
<!NOTATION iso88594 PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
ISO88594 BCTF Algorithm//EN" >
<!NOTATION same PUBLIC "ISO/IEC 10744:1992//NOTATION FSIATT BCTF
SAME No change in BCTF Algorithm//EN" >
Return to Top