Link to USGS Home Page

[Top] [Prev] [Next] [Bottom]



4.2 Transfer Module Specification Conventions

The following contains the conventions and notation for the module specification tables of section 5.

4.2.1 Specification Layout

Each specification consists of a table describing the composition of records in a module. A module record is composed of module fields consisting of a set of subfields. Each subfield has a specified data type and domain. The columns of the specification table are (1) Field Name, (2) Subfield Name, (3) Field/Subfield Description, and, for subfields, (4) Data Type, (5) Domain, and (6) Domain Description. Column (7) gives a four-character mnemonic tag for each field and subfield specified.

The primary module field name for a module record is also the module type. Subfield names must identify the data content of the module records. The Data Type indicates the manner in which the subfield will be encoded. Each of the codes have the following meaning:

	A: graphic, alphanumeric, or alphabetic chars
	I:  implicit-point (integer)
	R: explicit-point unscaled (fixed point real)
	S: explicit-point scaled (floating point real)
	B: bitfield data (see types listed below)
	C: char mode bitfield (zero and one chars)

In some instances, one may select from two or more of the above types, in which case the code letters will be separated by a vertical bar ( | ). The data type used should always be predictable.

The code "B" for bitfield data may have an additional qualification as follows:

	BI8:		8-bit signed integer
	BI16:		16-bit signed integer
	BI24:		24-bit signed integer
	BI32:		32-bit signed integer
	BUI:		unsigned integer, length specified 
by implementation
	BUI8:		8-bit unsigned integer
	BUI16:		16-bit unsigned integer
	BUI24:		24-bit unsigned integer
	BUI32:		32-bit unsigned integer
	BFP32:		32-bit floating point real
	BFP64:		64-bit floating point real

B or BUI binary patterns may be used when their extent can be described by the implementation and the bit order is preserved by the implementation. When B is used without qualification, the bit pattern must be interpreted according to a subfield description contained in the Domain Value Definition subfield of the appropriate Data Dictionary/Domain module. When BUI is used, the bit string must be interpreted as an unsigned integer with the most significant bit first and least significant bit last.

The domain column specifies the set of values that may be encoded within the indicated data type. There are nine major domain specifications:

a) Graphics characters (Gr-chars)
b) Alphanumeric (Alphanum)
c) Aphabetic (Alpha)
d) Integer
e) Real
f) Binary
g) Allowable values (domain enumeration)
h) Standard code sets
i) Standard field where domain is defined in Data Dictionary/Domain module

In the first six cases (a, b, c, d, e, f), the domain column must indicate "Alphanum," "Integer," etc.

In case (g), the permitted values must be listed, and each value must be defined in the domain description column. The domain description column may provide further restrictions on the allowable domain. For example, if an alphanumeric item must begin with an alphabetic character, this will be stated. When the domain column indicates "Integer," a positive, negative, or unsigned whole number is indicated. A "Real" number on the other hand calls for a positive or negative number with a fraction. In either case, there is no difference in meaning between a negative or positive zero. The actual implementation of an integer or real number must be according to the domain Data Type in the Domain Description column and as further specified in ISO 6093 for numeric values in character string format and ANSI X3.122-l986 (FIPSPUB 128) for binary data. For additional information see part 3.

In case (h), in most instances the number of a specific FIPS standard code set will be given, preceded by the characters "cs:" (e.g., cs:FIPSPUB4-1 for calendar dates). The Data Dictionary modules also provide a general capability to use code sets from any other FIPS standard as Attribute Values. (See 5.2.6)

In case (i), a standard field may take on specified values that are defined in the domain description column and (or) additional values defined in a Data Dictionary/Domain module. The notation in the domain column must be preceded by "dd:" followed by any appropriate limitation in the domain. For example, dd:<0 means that negative values are permitted but they must be defined in an associated Data Dictionary/Domain module.

Table 6 contains a complete enumeration of the character sets to be used for the graphics characters, alphabetic, numeric, and alphanumeric domains. All graphics characters must be encoded as specified in ANSI X3.4, extended to an 8-bit environment if required. Note that the set of graphics characters has been expanded slightly to include unprintable characters for carriage return (CR), line feed (LF), backspace (BS), tab, and form feed (FF) commonly found in text strings.

4.2.2 Generic Versus Explicit Specification

Various specification elements, such as module names, field names, and subfield names, can be specified generically rather than explicitly. In this case, the user must replace the generic names with names composed by the user or selected by the user from a name substitution table as indicated by the notation and naming conventions in the following.

An explicit specification is one that must appear verbatim as documented in this standard (independent of case). Names may be abbreviated internal to the transfer as long as the meaning of the data are unambiguously transmitted to the user of the standard (also see 4.1.3.1 and part 3, annex B).

Table 6 - Character sets used to express the Graphics Characters, Alphanumeric, Alphabetic, and Numeric domains1


Graphics Characters

Alphanumeric


Alphabetic

Numeric


A


N


a


n


SPACE


0


E2


!


|


_


B


O


b


o



1


.


"


/


{


C


P


c


p



2


+


#


:


}


D


Q


d


q



3


-


$


;


FF


E


R


e


r



4


SPACE3


%


<


LF


F


S


f


s



5



&


=


CR


G


T


g


t



6



'


>


BS


H


U


h


u



7



(


?


TAB


I


V


i


v



8



)


@



J


W


j


w



9



*


[



K


X


k


x





~


]



L


Y


l


y





,


\



M


Z


m


z






^


1

The width of the row containing the character set name indicates which characters are included in the set.

2

The "E" in the Numeric set is used for expressing an exponent. Note that the characters ".","+", and "-" are not part of the Alphanumeric set.

3

SPACEs may be used in numeric forms as defined in ISO 6093.

4.2.3 Notation and Naming Conventions

This subsection specifies notation conventions for the nature and character of field names and subfield names occurring in the module specification tables. A summary of this section is provided in Table 7.

4.2.3.1 Explicit Specification.

All explicit field names are specified in alphabetic characters, with the first character in uppercase. Subfield names are specified the same as field names. Upper and lowercase expression is only significant for the specification of this standard, not for the content of field and subfield names in a transfer.

4.2.3.2 Generic Specification.

Generic field names and subfield names are specified in lower-case alphabetic characters only, and the entire name is to be replaced, according to the instructions for the particular specification.

After substitution, all specifications appear as though they were explicit specifications.

4.2.3.3 Classes of Fields.

Fields may be grouped into different classes. Some fields may have repeated instances in the transfer, while others are not allowed to repeat. For some fields ordering may be important, while for others it is not. Therefore, to designate the class of a field, each field has one or more characters following its name. The meaning of these designations is as follows.

Primary fields are marked by (P), secondary fields where order of repetition is not significant are marked by (R), and secondary fields where the order is significant are marked by (O). Secondary fields that must not be repeated within a module record are marked by (N).

Secondary fields where order of repetition is significant and is correlated with the repetition of one or more other fields are designated as follows. Each set of fields within a module record where ordering is correlated will be assigned a character. This character is appended to the order symbol (O) for a field, symbolically expressed as (O/x), where x is replaced by an uppercase alphabetic character in the specifications. For example, if two fields named Internal address and External address have an ordering relationship in which there is a one-to-one correspondence between the elements in the list of instances of these fields, then the pair of these fields is designated as set A and the fields are marked:

          Internal address (O/A)
          External address (O/A)

4.2.3.4 Repeated Subfields in Generic Specifications.

Certain subfields of a field, such as the components of a spatial address, are generically identical and are thus described only once in each generic specification. In the generic specification, the number of these subfields is variable because the number of subfields required depends on the individual application. After user substitution, however, the subfield names will be different, and the number of subfields will be the same for the field throughout the entire module. Subfields of this type are specified only once and are flagged by a "+" in subsequent specifications.

For example, the subfield names for the attributes of an attribute module are not known until the user determines the types of attributes to be used in the transfer. For this reason, the generic specification for the subfield names of the Attributes field in the Attribute Primary module (and similarly for the Attribute Secondary module) is as follows:

	FIELD		SUBFIELD	FIELD/SUBFIELD 
	NAME 		NAME   		DESCRIPTION     
	Attributes 
	(N)
			(+) attribute
					Primary attributes for 
					the spatial object.

with the meaning that the user should make substitutions for the "(+) attribute" generic subfield name for his/her specific application so that for the user's purpose the table then reads (for example):

	FIELD		SUBFIELD	FIELD/SUBFIELD 
	NAME 		NAME    		DESCRIPTION    
	Attributes
			DEPTH		Depth of soil
			TEXTURE		Texture of soil
			SLOPE		Slope of soil

4.2.3.5 Variably Repeating Subfields.

Subfields with a given name and type that may repeat a variable number of times (0 or more repetitions) within a given transfer will have a name flagged by a "#" in subsequent specifications. (Not currently used anywhere in this standard. Subfields only repeat if the entire containing field repeats.)

4.2.3.6 Shared Module Field Types.

Some module fields that occur in a number of modules, and do not change from module to module, are specified only once in 5.1. These fields will thereafter be shown only as a field name; subfield names and descriptions will be omitted from the module specification tables. The entire field will be absent in the domain description table.

For foreign identifiers and spatial addresses the shared field is generic, and these fields may then be assigned a different name in the module descriptions tables. However, to indicate that the contents and structure of these fields are either that of a foreign identifier or a spatial address, foreign identifier fields will be prefixed with the symbol "^" and spatial addresses will be prefixed with the symbol "-".

4.2.3.7 Subfields with Default Values.

Subfields that have a specified default value will be prefixed with the symbol "d". The default values are specified in the standard.

4.2.3.8 Mandatory and Optional Presence and Absence of Fields.

Presence or absence of fields and subfields can be mandatory or optional, depending on the context in which the field or subfield is used. Unless the field is completely optional, one or more status codes may appear in the field or subfield description in the module specification tables indicating the disposition of the field. The status code is enclosed in square brackets and consists of up to three parts. The first part is a key that can be followed by one or more conditions in the second and (or) third part. The key is one of four symbols with the following meaning:

	Key	No condition or true	 Condition false
	A	Mandatory				Mandatory
	 	absence				presence
	M	Mandatory				Optional 
	 	presence				presence
	X	Mandatory				Optional
	 	absence				presence
	O	Optional				Mandatory
	 	presence				presence

The second part is an optional set of one or more Object Representation codes, separated by vertical bars ( | ). The third part is an optional set of field or subfield names with optional values, separated by a "+" or "|", the plus indicating that both fields are present and the vertical bar indicating that either one, but not both, fields are present.

For example, the Domain subfield in the Catalog/Spatial Domain module is optional if the Map, Theme, Aggregate Object subfield is used: Domain [O/Map|Theme|Aggregate Object]. The Chain Component ID field in the Line module is optional if the Object Representation Codes "LE", "LL", "LW" or "LY" is used or the Spatial Address field is used. This is indicated as: Chain Component ID [O/LE|LL|LW|LY/Spatial Address]

The required presence or absence of a field or subfield can also depend on the value of another field or subfield. This will be indicated by the field or subfield name, followed by a "=" and by one or more values separated by vertical bars. For instance, the Vertical Component Format subfield is required when the value of the Spatial Address Type is "3-TUPLE." This is indicated as: Vertical Component Format [M/Spatial Address Type = 3-TUPLE].

The following BNF fully describes the structure of the field and subfield status notation:

	status code ::=			'[' <status key> 
			['/' <object representation codes> ]
			['/' <field and subfield names > ] ']'
	<object representation codes> ::=
		<object representation code>
		{'|' < object representation code> }
	<field and subfield names> ::=
		<field or subfield>
		{ <separator> <field or subfield>}
	<field or subfield> ::=
				<field or subfield name>
				[ ' = ' value ]
	<separator> ::=  '|' | '+'
	<field or subfield name> ::=
					<character string> |
					<'character string'>

Each field or subfield can have one or more status codes, indicating the conditions under which the field or subfield should be included, excluded, or optionally included. A field or subfield can have a single status code with an attached condition. If the condition is false, then the disposition of the field or subfield depends on the status code as indicated in the table above. For multiple status codes, the disposition of the field is determined by the intersection of the logical conditions resulting from each status code.

The status codes are relative to the optionality of the module so that when a field or subfield is mandatory, it is mandatory within each SDTS transfer only if the module in which the field or subfield occurs is mandatory.

4.2.3.9 Notation Summary.

The notation conventions are as follows:


All fields will have one field class code of (P), (O), (O/x), (R), or (N). Each field or subfield may have zero, one, or more status codes: [A], [M], [X], and [O]. Zero status codes means completely optional. Multiple status codes means the intersection of the interpretations. See Table 7 -, Summary of the special flags used with field names and subfield names.

Table 7 - Summary of the special flags used with field names and subfield names


Flag

Used with

Meaning

(+)


generic subfield name


User must substitute one or more explicit subfields with user-assigned names for the generic subfield in the generic specification.


(#)


subfield name


Subfield with given name and type can be repeated an indefinite number of times. (Currently not in use.)


(P)


field name


Primary module field. Not allowed to repeat.


(O)


field name


Secondary module field where order of repetition is significant and the criteria for order are specified.


(O/x)


field name


Secondary module field where order of repetition is significant, and where the order is correlated with the order of one or more other fields belonging to the set x (x to be replaced with an uppercase alphabetic character).


(R)


field name


Secondary module field where order of repetition is not significant.


(N)


field name


Nonrepeating secondary module field.


(-)


field name


Contents and structure of the field is that of a spatial address. (see Table 8)


(^)


field name


Contents and structure of the field is that of a foreign identifier. (see Table 9)


(d)


subfield


Subfield has a preassigned default value.


[A/..]


field, subfield name


Mandatory absence if condition true; otherwise mandatory presence.


[M/..]


field, subfield name


Mandatory presence if condition true; otherwise optional.


[X/..]


field, subfield name


Mandatory absence if condition true; otherwise optional.


[O/..]


field, subfield name


Optional presence if condition true; otherwise mandatory



[Top] [Prev] [Next] [Bottom]
| SDTS Home Page | MCMC Home | Geography | USGS | Search

U.S. Department of the Interior || U.S. Geological Survey
1400 Independence Road, Rolla, MO 65401
For general information call: (573)308-3500
URL: http://mcmcweb.er.usgs.gov/sdts/SDTS_standard_nov97/part1b19.html
Last modified: Monday, 14-Jan-2013 19:27:55 EST
Maintainer: mcmcweb@usgs.gov
Privacy Statement || Disclaimers || FOIA || Accessibility