WPCV 2 BU Z-0pt (TA)#|d2cpi (M)Helv 14pt Bold (AD)Helv 12pt Bold (AD)Prestige Elite 12cpi (M)^,,4Xp,44P,4,TXXXXXXXXXX,,Hddp|PHx|00dL|\\XX|h\Xd4T4XP,T\P\T0T\$(T(\\\\8D4\P|LPPXPLHP LaserJet Series II (Additional)HLSEIIAD.PRSd6X@C,t0u'm@2%- #|JPrestige Elite 12cpi (M)Helv 14pt Bold (AD).PRSd6X@C,t0qD@2 |WW mxPrestige Elite 12cpi (M)Helv 14pt Bold (AD)Helv 12pt Bold (AD)TmsRmn 12pt Bold (AD)Line Printer 16.67cpiHelv 6pt (AD)Prestige Elite 12cpi (M)Helv 14pt Bold (AD)Helv 12pt Bold (AD)TmsRmn 12pt Bold (AD)Line Printer 16.67cpiHelv 6pt (AD)TmsRmn 6pt (AD)TmsRmn 8pt (AD)t4  pBQX.Prestige Elite 12cpi (M)Helv 14pt Bold (AD)Helv 12pt Bold (AD)TmsRmn 12pt Bold (AD)Prestige Elite 12cpi (M)Helv 14pt Bold (AD)Helv 12pt Bold (AD)TmsRmn 12pt Bold (AD)Line Printer 16.67cpiHelv 6pt (AD)TmsRmn 6pt (AD)dXXddd`ppPpdpddpdtTx=dxd@`hhddHHdxxxxxd.dxxxPrestige Elite 12cpi (M)Helv 14pt Bold (AD)Helv 12pt Bold (AD)TmsRmn 12pt Bold (AD)Line Printer 16.67cpi (PW)Letter Gothic 27.27cpi (PW)Courier 12cpi BoldCourier 10cpi Bold"m^?xxx,x `w;X9#^VSdz 96Ʀ 9#DED 2@DG+؉\ 9#[^>duf6Ʀ 9#\69#69#6ƺ9#2b. d.4 H0"m,^4D@p4LLd8D8dpppppppppp<q.\"m^ (L0\P((0T 40000000000TTT0dLDHPD@PP$,H@`LP the standard describes the fixed portion, and the -fixed portion describes the varying portion that follows both ISO 8211 records and files are selfdescribing Example: XA varying length character string depicted as length followed by dataƔ" &24This is a string of text Z The standard uses the principal of being selfdescribing. In general this involves having a fixed structure defined, followed by a varying portion. The varying portion is the subject of what the fixed portion is describing. The ISO 8211 record formats defined follow the pattern of having a fixedstructure portion followed by a more variablestructure portion. The file as a whole exhibits this same pattern also. The standard describes the fixed portion. The fixed portion describes the varying portion that follows. A general example of the use of selfdescription, is the typical way that varying length character strings are handled: a length followed by the actual data. 0*&& @ ddxx ddxx @ Zd  'ISO 8211 Conceptual Model XField consists of data, its structure, and its descriptionƔ" ((call userdatafield) XRecord set of 1 or more fieldsƔ" XFile a set of 1 or more recordsƔ" Example of userdatafield: Xstructure: single valueƔ" Xdescription: 2digit integer, named 'age'Ɣ" Xdata: 23Ɣ" d The ISO 8211 conceptual model recognizes three primary entities fields, records, and file. The field has three components: data, structure, and description. The description includes data type and name information. A record is a meaningful (in the users perspective) collection of fields. A file is a meaningful group of records. The fields described by the standard itself are most often referred to as 'fields' in the standard document. To avoid confusion, the 'conceptual field' to be interchanged will be referred to as a userdatafield. 0*&& @ ddxx ddxx @ dF  t*ISO 8211 Constructs / description (structure and name) UserDataField | \ data / record of description Record | \ record of data File one description record, 1 or more data recordsF  There are two types of ISO 8211 fields one to contain description, and one to contain userdata. This has the effect of splitting up the composition of a userdatafield (i.e. 'conceptual field'). Similarly, there are two types of records one to contain the descriptive fields, and one to contain the data fields. Data and description are never contained in the same record. An ISO 8211 file contains 1 descriptive record, and 1 or more data records. All of the constructs are found in an ISO 8211 file. 0*&& @ ddxx ddx x @ F n _(ISO 8211: the Mechanism Standard defines the format and syntax of a descriptive field. Instances of descriptive fields are created to describe userdata. Instances of data fields are created to contain userdata. Std:XDescriptive Field has a code to indicate data type (I=integer, A=character), followed by the length of the data.Ɣ" User: For userdata of '34254', X the Descriptive field would contain I5.Ɣ" XFor userdata of 'Main Street', Ɣ" X the Descriptive field would contain A11.Ɣ"n The fields described by the standard are the fields that contain the descriptive information. The user would then fill these fields with actual descriptive information to describe their data. As an example of this, say the standard defines a Descriptive Field as having a code to indicate data type (I=integer, A=character, C=character mode bit string), followed by the length of the data. For the following examples of userdata, the Descriptive fields are given: XFor userdata of '34254', the Descriptive field would contain I5.(# XFor userdata of 'Main Street', the Descriptive field would contain A11.(# XFor userdata of '001101', the Descriptive field would contain C6.(#  0*&& @ ddx x !ddx x @ n2  (ISO 8211 in perspective ("It provides the means  for the description of the contents of data records "but does not define their content." `^"<(ANSI/ISO 82111985, Page 1) XContent is defined by the user.Ɣ" 2  The ISO 8211 standard defines a general mechanism to encode data and description. How to use the mechanism is left up to the user. There is much flexibility when it comes to deciding how something should be encoded. This topic will be addressed later. The mechanism that the ISO 8211 standard defines will now be described.  0*&& @ !ddx x Addx x @ 2 d $)ISO 8211 Terminology XData Descriptive File (DDF)Ɣ" XData Descriptive Record (DDR)Ɣ" XData Record (DR)Ɣ" XPortion of DDR that contains Data Descriptive Fields is called Data Descriptive Area (DDA)Ɣ" XPortion of a DR that contains User Data Fields is called User Data Area (UDA)Ɣ" XA DDF is composed of one DDR, and one or more DRs.Ɣ"d Xd #Xl4  p ;X#An ISO 8211 file is called a Data Descriptive File (DDF). ISO 8211 defines two types of records a Data Descriptive Record (DDR) and a Data Record (DR). A DDF is composed of one DDR and one or more DRs. The abbreviations used by the standard are included for reference. A single Data Descriptive Field is given no abbreviation, because it is rarely discussed in the standard. Descriptive fields are referred to collectively as sets that constitute portion of a DDR the Data Descriptive Area (DDA). Same is true of User Data Fields portion of a DR the User Data Area (UDA). @ Addx x addxg x @ d  $ISO 8211 Constructs/Terminology / description (structure and name) Data Descriptive UserDataField | Field/DDA \ data User Data Field/UDA / record of description DDR Record | \ record of data DR DDF File one description record, 1 or more data records gRevisit the constructs chart and put in the ISO 8211 terminology.+% 0*&& #2p;׼# @ addxg x ddx x @  g  &What does a DDF look like? 002212L 0600073 4404000000280000000100300 028ATPR00460058ATTP00440104;0000;&External File Title&&;0100;&DDF RECORD IDENTIFIER&&;160 0;&ATTRIBUTE PRIMARY&MODN!RCID&(A(4),I(6));1600;&PRIMARY ATTRIBUTES&PSAD!NAME&(A(2),A);00090 D 00061 44040001 00070000ATPR00110007ATTP00110018; 1;AP15 1;01Misso uri;00088 D 00061 4404000100070000ATPR00110007AT TP00090018; 2;AP15 2;06Pettis;00091 D 00061 4404000100070000ATPR00110007ATTP00120018; 3;AP15 3;4 4Houstonia;00092 D 00061 4404000100070000ATPR001100 07ATTP00130018; 4;AP15 4;44Blackwater;00091 D 00061 4404000100070000ATPR00110007ATTP00120018; 5;AP15 5;58Houstonia;00090 D 00061 4404000100070000ATPR 00110007ATTP00110018; 6;AP15 6;44Longwood;00093 D 00061 4404000100070000ATPR00110007ATTP00140018; 7;AP15 7;44Hughesville;00094 D 00061 4404000100070000ATPR00110007 32;AP15 32;60Ionia XoX not amenable to human interpretation/verificationƔ" XoX not easily editedƔ" XoX stream of characters, with unprintable controlƔ"  X #Xl4  p ;X#The file format is not amenable to human interpretation. Remember that it is only intended to be an intermediate exchange format, and not used for processing. It is a stream of characters. Once you are familiar with some of the format and syntax then you can begin to recognize portions of a DDF. The file is not easily edited because it has  Xv many internal counts. #2p;׼#v 0*&& h ddx x ddx tH h    &ISO 8211 Descriptive Fields Format of a Descriptive Field:  H Field Controlr Data Field Namer UTr Data Element Label(s)| UT| Data Format| FT|      Field Control describes data field structure and type Data Field Name descriptive name of userdata field Data Element Label descriptive labels for subfields Data Format specifies format of subfields of userdata field  |  Delimiters (UT, FT) are required after each varying length portion of the field. A single Data Field can be subdivided into 1 or more subfields. More on this when field structures are discussed. There is a descriptive field for each userdatafield, describing the structure, data type, and name of it. All portions are not always present, but all delimiters will be present to avoid ambiguity. 0*&& h ddx tH ddxx h  d| *ISO 8211 Delimiters Unit Terminator unprintable, "US" or "IS1" XX XL L Decimal 31, Hex 1F, Binary 0011111Ɣ"L XX XL L Often use '&' when printedƔ"L Field Terminator unprintable, "RS" or "IS2" XX XL L decimal 30, Hex 1E, Binary 0011110Ɣ"L XX XL L Often use ';' when printedƔ"L Vector Label Delimiter ! Cartesian Label Delimiter * d There are many varying length portions of a Data Descriptive Field 3 out of 4. The UT is used to delimit the varying portions of a Data Descriptive Field. The FT is used to delimit the end of the field. When a DDF is printed or shown in examples, the characters '&' and ';' are often used for UT and FT, respectively. In an actual DDF, no substitutions can be made for the system delimiters. The exclamation mark ('!') is used to delimit data element labels within a vector label. The asterisk ('*') is used to delimit vector labels in a Cartesian label. [Note: These are delimiters used by SDTS for specific purposes. The user is allowed to define delimiters only for use in data fields.]!0*&& @ ddxx ddxx @ d<  (ISO 8211 Field Control Fixed size of 6 bytes Xst00;&Ɣ" X|| \/_ printable symbol for FT and UT Ɣ" X||\/_ always zero Ɣ" X||_ type code (0=character, 1=integer, 2=real, etc.)Ɣ" X|_ structure code (0=elementary, 1=vector, 2=array)Ɣ" <  This is the first portion of the format of a Descriptive Field. Fixed size of 6 bytes, where each position means: XPosition 0 is structure code (0=elementary, 1=vector, 2=array)(# XPosition 1 is type code (listed below)(# XPosition 2 and 3 are 00.(# XPosition 4 is userdefined printable graphic symbol to represent the system delimiter FT (SPACE for none)(# XPosition 5 represents the system delimiter UT (SPACE for none)(# (Note: the userdefined symbols shall not be substituted for the ISO information separators in the data fields) List of type codes: X0X` ` character(#` X1X` ` implicit point (integer)(#` X2X` ` explicit point (real)(#` X3X` ` explicit point, scaled (floating point)(#` X4X` ` character mode bit string(#` X5X` ` binary; bit field(#` X6X` ` mixed data type(#` "0*&& @ ddxx ddxx @ < <  a'ISO 8211 Field Structures XElementary single atomic data valueƔ" XVector ntuple (1dimensional array)Ɣ" XArray 2 or more dimensional; repeating ntupleƔ" Structure is used to interpret data in a Data Field: 0)"abc123def456ghi789"<  ISO 8211 recognizes three possible structures for a field (intrafield) elementary, vector, and array. This is the structure used to interpret the data in a Data Field. Consider the data: "abc123def456ghi789" elementary whole string is one piece of data vector perhaps a 6tuple: abc 123 def 456 ghi 789 array perhaps a 2tuple repeating three times: "abc,123" "def,456" "ghi,789"0*&& @ ddxx !ddxx @ < 2  Z %ISO 8211 Data Element Labels XElementary structure no subfields to labelƔ" XVector Label: label1!label2!...labelnƔ" XCartesian Label: lab1!lab2!lab3*xxx!yyy!zzz*...Ɣ" XArray Descriptor: num_dimensions,extent1,extent2,...Ɣ"2  The Data Element Label is the third portion of the Data Descriptive Field. The format is determined by the structure code (position 1) of the Field Control portion of the Data Descriptive Field. An elementary structured field needs no further labels, the Data Field Name portion is sufficient. A vector structured field has a vector label, which is individual labels separated by '!'. An array structured field has a cartesian label, which is vector labels separated by '*'. Alternatively, if no labels then an array descriptor can be placed here. An Array descriptor has the number of dimensions, followed by the extent of each dimension, separated by commas. 0*&& @ !ddxx Addxx @ 2 F  O'ISO 8211 Format Controls Are used to: Xspecify field widths:` +XTT1X7X=X\\CA(10)Ɣ"\ Xspecify user delimiters in the data:h=X\\CA(,)Ɣ"\ Xspecify sequence and type of subfields in mixed: A(3),I(2),A(#)Ɣ" A=characterL L R=real+XTT1X7C=character bitsƔ" I=integer XL L S=floating point` 7B=binaryƔ" F  The format controls are used in the Data Format, fourth portion, of a Data Descriptive Field. "The format controls specify the characterbycharacter or bitbybit structure of the data field. The format controls are mandatory for bit field data type and mixed data types and optional for all other data types." (ANSI/ISO 82111985, page 14) [Note: The userdefined delimiters here are for use in data fields, and should not be confused with the ISO 8211 defined delimiters.] 0*&& @ Addxx addxx @ F F  (ISO 8211 Field Examples Elementary, integer data: 0100;&Age&&(I(3)); Data: XL L X%X+XTT1101Ɣ"T Vector,mixed data: 1600;&Address2&City!State!Zip&(A(#),A(2),I(5)); Data: XL L X%X+XTT1Rolla#MO65401Ɣ"T Array,reals:L L 2200;&Sales&Jan!Feb!Mar*Bob!Jane!Fred&(3R);Ɣ"L Data: XL L X%X+20.3&19.2&18.5&15.3&16.2&15.2&17.2&17.2&16.9;Ɣ"F  Third example, uses a repeat code on the format control integer immediately preceding the data type code. Also, the format describes a single 'row' of data, and then implicitly repeats until the data is exhausted. 0*&& @ addxx ddxx @ F  3)ISO 8211 Array Fields Data Order the order of the data must match XX the order of the labelsƔ" Array structured fields have cartesian labels, which when multiplied out form a set of concatenated labels: XX a!b!c!d*x!y = {ax ay bx by cx cy dx dy}Ɣ" "The rightmost label varies fastest. When the cartesian label starts with an '*', then the set of multipliedout labels repeats to correspond with the data. X*x!y = {x y} repeating 2tupleƔ" X*a!b*e!f = {ae af be bf} repeating 4tupleƔ"  ISO 8211 terminology for the preceding '*' is 'null vector'. 0*&& @ ddxx ddxx @  (ISO 8211 Array Example XX XL L X%Jan Feb MarƔ" XX XL L X%©Ɣ" XX XL L 1979| 2.1 4.6 3.5Ɣ"L XX XL L 1980| 5.3 4.2 2.5Ɣ"L XX XL L 1981| 7.3 7.1 8.2Ɣ"L Row Order X2200;&1980 Expenses&1979!1980!1981*Jan!Feb!Mar&(R(,));Ɣ" X2.1,4.6,3.5,5.3,4.2,2.5,7.3,7.1,8.2Ɣ" X | | | (correspondingƔ" X1979Jan 1980Feb 1981Mar labels)Ɣ" Column Order X2200;&1980 Expenses&Jan!Feb!Mar*!1979!1980!1981&(R(,));Ɣ" X2.1,5.3,7.3,4.6,4.2,7.1,3.5,2.5,8.2Ɣ" | | | (corresponding Jan1979 Feb1980 Mar1981 labels)  Example: ` ` Encoding an array of information, both rows and columns are labeled. Can be done in either row or column order.(#` If you want to drop the row labels then: Desc:` ` 2200;&1980 Expenses&*Jan!Feb!Mar&(3R(,));(#` Data: 2.1,4.6,3.5,5.3,4.2,2.5,7.3,7.1,8.2 | | | (corresponding Jan Mar Feb labels) [This example uses a square array, but this is not required.] !0*&& @ ddxx ddxx @  (ISO 8211 Array Example If no labels, then Array Descriptors are used. This can be placed in the DDR if all of the DRs have the same amount of data: XDDRX 2600;&Yearly Sales&1,12&(R(6));Ɣ" XEach DR then has 12 data items.Ɣ" This can be placed in the DR if each DR has a different amount of data: XDDRX 2600;&Line Coordinates&&(R(6));Ɣ" XDRX 2,10,2; {20 6digit reals}Ɣ" XDRX 2,25,3; {75 6digit reals}Ɣ" 0*&& @ ddxx ddxx @  -ISO 8211 Tags "Tags link Data with its Description Tags are internal field names that are 17 characters long Allows the same description to apply to more than one data field Tags are internal field names. The data and the description are stored in different records. A matching tag indicates that a description goes with the data. Use of tags allows the same description to apply to more than one data field. Tags only occur in directory entries and in a specialpurpose descriptive field of a level 3 DDF. n0*&& @ ddxx ddxx @ P  !'ISO 8211 Record Structure XData Descriptive Record (DDR)Ɣ" XLeader L L describes the sizes of fields in a directory entry Ɣ"L XDirectory %an entry describes the tag, location and length of field in DDAƔ" XData Descriptive Area TT1describes each user data fieldƔ"T P  Let's take a closer look at the structure of the DDR. It consists of three sections Leader, Directory, and Data Descriptive Area. The DDR is selfdescribing: The leader section is fixed length (24 bytes) and completely defined by the standard what each position is and what it means. Some of the data placed in the leader, defines the next portion of the record the directory. The directory entries then describe the position of the fields in the Data Descriptive Area. 0*&& @ ddxx !ddxx @ P P  !'ISO 8211 Record Structure XData Record (DR)Ɣ" XLeader L L describes the sizes of fields in a directory entry Ɣ"L XDirectory %an entry describes the tag, location and length of a field in UDAƔ" XUser Data Area ` +contains data and delimitersƔ" P  The DR has a structure very similar to that of the DDR. It also consists of three sections a Leader, Directory, and User Data Area. The leader section is fixed length (24 bytes) and completely defined by the standard what each position is and what it means. Some of the data placed in the leader, defines the next portion of the record the directory. The directory entries then describe the position of the fields in the User Data Area. The Leaders of a DDR and a DR are different although they are of the same size and name. 0*&& @ !ddxx Addxx @ P P  N,ISO 8211 Leader Contains: XoX Total length of the recordƔ" XoX DDF level (DDR only)Ɣ" XoX type of record (DDR, DR)Ɣ" XoX size of a directory entryƔ" XoX starting position of third section (DDA or UDA)Ɣ" XoX other information...Ɣ" P  The Leader is the first section of a record: the Leader in the DDR contains information that applies to the entire file. The Leader in the DR only contains information that applies to the rest of the DR. The DDR Leader and the DR Leader are very close in structure. The next page contains a sidebyside comparison of the two types of leaders. When the DDR Leader has filelevel information the DR Leader has "required space". Selfdescription within the record: the leader describes the directory entry size of the directory section that follows. The leader also describes the starting byte position of the third section of the record. 0*&&  k+ #^Hp@;^@#+ISO 8211 Leaderx tT& ԍNote: Consult original standard before relying on information from this table.xփ The leader section for the Data Descriptive Record (DDR) and the Data Record (DR) are very similar. The table below contains the leader sections in a sidebyside display. References to the sections of the ISO 8211 Standard are included in parens. The leader section is a fixed length of 24 bytes. The byte offset is indicated in the middle column. T Addxx  addx < """ T P N    y Explanationh"'DDR(5.2.1)h"6fh"<DR(5.3.1)h KExplanation"N   v   " The total length of the DDR in bytes. Zero means in excess of 99,999.")xRecord )xLength ,P ( (5.2.1.1)H"6B0 6f 6f 6f 6f"=sRecord =sLength @K <(5.3.1.1) The total length of the DR in bytes. Zero means in excess of 99,999."v      h" 1 = entire file contains elementary char data fields; 2 = contains compound data fields; 3 = tree structure of fieldsd "'Interchange *Level ,P ( (5.2.1.2)d "6B5d ">SPACEd  Always a space."      " Always contains "L" ")xLeader 'Identifier ,P ( (5.2.1.3)D"6B6D"=sLeader ;Identifier @K <(5.3.1.3)D D = a leader & dire will be found in the next DR; R = use this L&D for all(?) subsequent DRs."      d " Indicates if inline escape sequences are used in data fields to designate extended coded char sets. SPACE = no extensions "E" = extensions"'Inline Code ( Extension ( Indicator ,P ( (5.2.1.4)"6B7"@K @K >SPACE "   .   " 4"*SPACE4"6B84">SPACE4 ".   J   " Contains SPACEb"'Application ( Indicator ( (5.2.1.6)~"6B9~">SPACE~ "J      4" Number of bytes of the data descriptive field used for field control 00=Level 1 file 03=Level 1 with "E" 06=Level 2/3 file 09=Level 2/3 with "E"0"*Field )TControl )xLength ,P ( (5.2.1.7) ( (5.3.3.2) *(7.2)0"5100"@K @K >SPACE0 "      ~" Combined length in bytes of the L&D including the FT at the end of the directory."&Base address )Tof data $descriptive area ,P ( (5.2.1.8)"512"9/Base address of <Data Area @K @K <(5.3.1.5) Combined length in bytes of the L&D including the FT at the end of the directory.X0*&&"   H   0" Specifies the use of default coded char set extensions in the file SpSpSp=only IRV is used; Sp!Sp=extensions indicated in fields; =applies to entire fileH"(0Extended &|Character Set ( Indicator ,P ( (5.2.1.9) *(7.2) *(7.3)H"517H"@K @K @K >SPACEH  H      The next four fields are collectively referred to as the Entry Map. The sum of them is the size of a directory entry.%   v  H  The size in bytes of the "field length subfield" of a directory entryf ")lSize of *Field )Length ,h '(5.2.1.10) "5.20 "=OSize of >Field =sLength @K <(5.3.1.7)  The size in bytes of the "field length subfield" of a directory entry"v  v  " The size in bytes of the "field position subfield" of a directory entry ")lSize of )Field (HPosition ,h '(5.2.1.10) "5.21 "=OSize of >Field <+Position @K <(5.3.1.7)  The size in bytes of the "field position subfield" of a directory entry"v  .  " Always zero.&",D0&"5.22&"@'0& Always zero.".     " The size in bytes of the "field tag subfield" of a directory entry")lSize of *Field +Tag ,h '(5.2.1.10)"5.23"=OSize of >Field ?Tag @K <(5.3.1.7) The value in this field shall equal the value of DDR "SizeofFieldTag" field   &N0*>%>% #2p;׼# T addx < """ ddxx T  & *ISO 8211 Directory The directory points to the location of each field in the DDA (for the DDR) or UDA (for the DR), and associates a tag with it. The directory section has the same format for both the DDR and DR. An entry contains three pieces of information: XField Tag %the internal field name used to match data and descriptionƔ" XField Length length of the field in the DDA/UDAƔ" XField Position starting position of the field relative to the base address (in the leader)Ɣ"  The Directory is the second section of a record. The directory provides the location and length of each field in the third portion of the record, and associates a tag with it. A directory entry contains three pieces of information tag, length, position. The directory section has the same format for both the DDR and the DR record. The Directory consists of multiple entries and is terminated by a Field Terminator. Each entry in the record is the same size (as specified in the Entry Map of the Leader of that record). Directory entries from different records may be different sizes. Although the same in format, the directories differ in content and ordering requirements. (A comparison is on the next page). "0*&&  k+ #^Hp@;^@#h'Comparison of Directories E ddxx ddx<< E  > "  DDR Directory "@ DR Directory > > "F  CONTENT "C~ CONTENT >   Shall contain one entry for each data descriptive field Shall contain one entry for each user data field   Shall define all DR tags All DR tags shall be defined in the DDR   Field tags are unique within a DDR only occur once Field tags may be repeated (except 0...1)   Field tag 0...0 shall identify the optional FILE CONTROL fieldL  Cannot contain field tag 0...0   Field tag 0...1 shall occur once in each record and identify the record identifier field  Field tag 0...1 shall occur once in each DR and identify the record identifier field J L  Field tag 0...2 shall identify an optional user field of the DDR which has no corresponding DR fieldJ  Cannot contain field tag 0...2J    Field tag 0...3 through 0...9 shall not be usedh Cannot contain field tag 0...3 through 0...9  J "F  ORDERING "BZ ORDERING   h Tags 0...0 through 0...9 inclusive shall occur first and in ascending order: Tag 0...1 shall occur first J  For nonhierarchical, no specific ordering required (other than 0...1 through 0...9) For nonhierarchical, repeated tags shall be logically contiguous and DR tags shall occur in the same order as the tags of the DDR (?)J  : For hierarchical, the directory entries shall be in the same order as the preorder traversal sequence of the generic data tree (see Annex C, Fig 14) For hierarchical, the directory entries shall be in the same order as the preorder traversal sequence of the corresponding data fields of the derived data tree of that DR (see Annex C, Fig 15)   Note: Consult original standard before relying on information from this table.D0*&& #2p;׼# E ddx<< ddxx E d  &ISO 8211 Directory Example XDDRX XL L Ɣ"L XDirectoryL L TAG1 10 0 TAG2 5 10 TAG3 2 15 ...Ɣ"L XDDAX XL L |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|...Ɣ"L XX XL L 0 10 15 17Ɣ"L XDRƔ" XDirectoryL L TAG1 2 0 TAG2 5 2 TAG3 3 7Ɣ"L XUDAX XL L |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|... 0 2 7 10Ɣ"L The tags relate a Data Descriptive Field in the DDA to a corresponding User Data Field in the UDA d The directory entry associates a tag with a field. The DDR directory defines all tags that will be used in the DDF. The DRs only use the tags they need. In the above example, the data in the DR at location 0 length of 2 is described by the information in the DDR at location 0 length 10. This is determined by matching on the tag 'TAG1'. 0*&& @ ddxx ddx x @ dF   'ISO 8211 Record Data Area DDA the data area of the DDR. XIt contains the descriptive fields.Ɣ" UDA the data area of the DR. It contains the user X data and delimiters.Ɣ" XThe association between these sections is done via directory entries and tags.Ɣ"F  The DDA and the UDA are the third sections of the DDR and DR, respectively. The DDA contains Descriptive Fields (It can also contain some special purpose fields.) The UDA contains the userdata and delimiters. The directory entries and tags are used to associate data with its description. Being the last sections of a selfdescribing record, these sections are extremely varying in length. 0*&& @ ddx x ddx!x @ F  (ISO 8211 DDF Structure  ? #x `w;5X# |> (Descriptive Field) | Field Field Labels Format | Control Name structure and || description \/ | (Data Descriptive Record) | Leader Directory DDA \ | \ (DDF) | /\ \> ddr | || dr... FIELD (Directory Entry) dr.... | Tag Length Position dr.. | /> : | || / dr... | \/ / data (Data Record) / | Leader Directory UDA / | | /\ | || |> (User Data Field) the data is here#2p;׼# Summary of what has been covered from the concept of a 'field' to the structure of a DDF. Field has three components description, structure, and data. The Description and structure are in Descriptive Fields and the data is in a User Data Field. The Descriptive Field contains field control, field name, subfield labels, and format controls. The DDR contains the descriptive information. The DR contains the data. The directory entries of each and tags allow the data to be associated with its description. A DDF consists of varying length records. It has 1 DDR and 1 or more DR's. #2p;׼# p#!0*&& @ ddx!x !ddx"x @   )ISO 8211 DDF Example 002212L 0600073 4404000000280000000100300028ATPR00460058ATTP00440104; 0000;&External File Title&&; 0100;&DDF RECORD IDENTIFIER&&; 1600;&ATTRIBUTE PRIMARY&MODN!RCID&(A(4),I(6)); 1600;&PRIMARY ATTRIBUTES&PSAD!NAME&(A(2),A); 00090 D 00061 4404000100070000ATPR00110007ATTP00110018; 1;AP15 1;01Missouri; 00088 D 00061 4404000100070000ATPR00110007ATTP00090018; 2;AP15 2;06Pettis; 00091 D 00061 4404000100070000ATPR00110007ATTP00120018; 3;AP15 3;44Houstonia; 00092 D 00061 4404000100070000ATPR00110007ATTP00130018; 4;AP15 4;44Blackwater; 00091 D 00061 4404000100070000ATPR00110007ATTP00120018; 5;AP15 5;58Houstonia; 00090 D 00061 4404000100070000ATPR00110007ATTP00110018; 6;AP15 6;44Longwood; 00093 D 00061 4404000100070000ATPR00110007ATTP00140018; 7;AP15 7;44Hughesville;  Example of a portion of a DDF (1 DDR and 7 DRs). This is what a DDF starts to look like once you understand the format. It has had carriage returns added to help you see the logical structures of the file. Leader, followed by directories, followed by fields. (Note: The capital D identifies the leader of a data record.) Use the tags of the directories to match the description in the DDR with the data in the DRs.6%"0*&& @ !ddx"x Addx#x @  d )ISO 8211 DDF Example A few descriptions and data from previous example: DDR: 1600;&ATTRIBUTE PRIMARY&MODN!RCID&(A(4),I(6)); DR#1: AP15 1 DR#2: AP15 2 DR#3: AP15 3 DDR: 1600;&PRIMARY ATTRIBUTES&PSAD!NAME&(A(2),A); DR#1: 01 Missouri DR#2: 06 Pettis DR#3: 44 Houstoniad By using the directories and tags the description and data can be matched up. From the previous page, the third directory entry of the DDR is Tag: ATPR Length: 46 Position: 58 Searching through the first DR, a tag match occurs in the second directory entry, Tag: ATPR Length: 11 Position: 7 Retrieving the description from the DDA gives: X1600;&ATTRIBUTE PRIMARY&MODN!RCID&(A(4),I(6));(# The data is: 01Missouri; For the next data record, the data is: 06Pettis; #0*&& @ Addx#x addx$x @ dd (ISO 8211 Fixed Records XThere is one difference between fixed and varying data records.Ɣ" XThe Leader and Directory (L&D) sections may be dropped from DRs if it is the same for all DRs. This indicates fixed records in a DDF, as opposed to varying.Ɣ" XWhen the leader identifier of a DR contains an 'R' it means that the L&D of this record will apply to all subsequent DRs. Once the L&D is dropped it cannot be respecified for the remainder of the DDF.Ɣ" d When the records of a DDF are the same in format & content (i.e., fixed) the Leader & Directory (L&D) sections are not required in all DRs. For the same directory to apply to a set of records means that each record has the exact same set of tags, in the same order, and each corresponding data field has the same start position and length. The records have the characteristic of being fixed records. The L&D sections are required for varying records, and are not required for fixed. When L&D's are to be dropped, an 'R' in the leader identifier indicates that this L&D will apply to all subsequent DRs. Once the L&D is dropped it cannot be respecified for the remainder of the DDF. $0*&& @ addx$x ddx%x @ d2  )ISO 8211 File Levels The interchange level is indicated in the Leader of the DDR. X Level 1 all elementary structures, character dataƔ" XLevel 2 any structure, any data type [Most common]Ɣ" XLevel 3 hierarchical relationship between fieldsƔ"2  There are three levels of files supported by ISO 8211. The level is an indicator of the complexity of the structure. Level 1 does not need field control portion in Data Descriptive Fields, because no variation in structure or data type is allowed all fields are elementary, character data. Level 2 supports any structure (elementary, vector, array), and any data type (integer, real, character, etc.). All of the examples shown were Level 2 files. This is the most common. Level 3 supports level 2 and in addition a hierarchical relationship between fields can be defined. %0*&& @ ddx%x ddx&x @ 2 <  M ISO 8211 Special Purpose Descriptive Fields File Control Field, Tag 0...0 (optional) X© used in the DDR to specify a title for the entire fileƔ" Record Identifier Field, Tag 0...1 (required) X© used to assign an identifier to each recordƔ" User Extension, Tag 0...2 (optional) X© indicates an optional user field of userdetermined contentƔ"<  The DDA of the DDR may contain some special purpose descriptive fields, in addition to regular Descriptive Fields. The File Control Field has Tag 0...0, can only appear in a DDR, and is used to specify an external file title. The Record Identifier field, Tag 0...1, is required. In the DDR, the tag is used to identify the description of record identifiers integer, character, etc. In the DR, the tag identifies the actual record identifier value. The User Extension field, Tag 0...2, is optional and can only appear in the DDR. It indicates that the DDR contains a field of userdefined content. &0*&& @ ddx&x ddx'x @ < F  C)ISO 8211 Binary Data XISO 8211 supports character mode binary (a string of character 0's and 1's) as well as true binary.Ɣ" XSpecial requirements of fixedlength bit fields:Ɣ" XoX must have format controls: B(n)Ɣ" XoX the width is specified in bitsƔ" XoX format controls are not allowed to implicitly repeatƔ" F  FixedLength Bit Fields True binary has different requirements placed on it, than the other data types. Binary presents the problem of not being able to use system delimiters to indicate the end of a data field. The extra restrictions insure that the precise end of the binary data can be determined. Additionally, binary data (or a series of it) must start on a byte boundary and end on a byte boundary (pad with binary zeroes if necessary). A series of binary values must not contain the system subfield delimiters (UT codes) this will mistakenly be interpreted as binary data. [Note: There is a provision for variablelength bit fields, that requires a special format.] '0*&& @ ddx'x ddx(x @ F (  ,Using ISO 8211 USER DATA encode> ISO 8211 decode> USER DATA (Fields) (Fields) Sender System` %X+XTT1X7 Receiver SystemƔ" (  Conceptual Mapping decide how the user data model is mapped into ISO 8211 constructs. What level of interchange? what field structure? data types? Similar to defining templates for DDFs. Encode the senders information is mapped in the interchange format. Decode the receiver then maps from the interchange format without loss of structure or content. x(0*&& @ ddx(x ddx)x @ (  ,Using ISO 8211 There are many ways to do any mapping. A table of information: XX Name%AccountTT1BalanceƔ"T XX Smith, P.%2348981227$2345.61Ɣ" XX Miner, J.%5364564637$1325.45Ɣ" XX Muny, F.%3426595957$0243.75Ɣ" XX  :XL L X% :X+XTT1 X7 :Ɣ" Could be encoded such that a single data field corresponds to XoX an element of the tableƔ" XoX a row of the tableƔ" XoX a column of the tableƔ" XoX the entire tableƔ" There is no single best mapping from a user data model to a DDF some seem more natural than others. The user has extreme flexibility in encoding information. Consider the following example: Encoding options (arranged from least in a field to most): 1) Three elementary structured fields called Name, Account, and Balance. Each DR contains three fields, and corresponds to a table row. 2) One vector structured field with 3 subfields. A single data field in a DR corresponds to a table row. 3) A vector structured field with n subfields. A single field corresponds to a table column. (This makes table row recovery more difficult.) 4) One array structured field. A single data field now corresponds to the entire table. Encoding options should be selected to reflect the structure most inherent in the user data model.,$)0*&& @ ddx)x !ddx*x @ 2   %ISO 8211 Uses Other Standards XThis standard specifies a file and record format that is system and mediaindependent. Therefore, it depends on the use of other standards for Ɣ" XoX character set encoding (ISO 646 ASCII)IƔ" XoX representing numeric forms (ISO 6093)Ɣ" XoX media labeling (ISO 1001, ISO 4341, ISO 7665)Ɣ" 2  Among standards documents there is usually a network of dependencies. ISO 8211 requires the use of ISO 6093, Numeric Forms because all data is represented as characters, even reals. It requires the use of IRV Character Set (ASCII) for all in a field, except the USERdata. It requires the use of ISO 2022 for specifying the use of other character sets in the data fields. It require the use of media labeling standards (ISO 1001, ISO 4341, ISO 7665) It does not require any specific media standards other than varying length records must be supported.