next up previous contents
Up: FSML_specification Previous: 3.7 Putting It All   Contents


4 FSML Document Type Definition (DTD)

This section presents the FSML DTD. The DTD defines the grammar for FSML and provides a means to validate an FSML document's structure and syntax. However, an FSML document that is valid according to the DTD is not necessarily a valid FSML document. The DTD does not, for example, identify parameter references that are made before the value of the referenced parameter is set. It is the responsibility of the FSML processor to perform additional validation on the document.

<!--Header
FSML.dtd (File Specification Markup Language)
File Description:       XML DTD for representing a text file's structure
Version:                2.9
Date of Last Revision:  February 9, 2004
Contact:                Eric Wood(wood@ship.saic.com)
Namespace:              none
Notes:                  This revision provides the ability to set whether
                        blank values should be ignored or reported as an error
-->
 
<!ENTITY % FILE_DATA_CM
"
(Integer | Float | String | Array)+
">
 
<!ENTITY % DATA_CM
"
   EMPTY
" >
 
<!ENTITY % DATA_ATT
"
   name        ID    #REQUIRED
   description CDATA #IMPLIED
   units       CDATA #IMPLIED
   group       CDATA #IMPLIED
" >
 
<!ENTITY % FILE_STRUCTURE_CM
"
(Record | Loop | Condition | StaticText)+
">
 
<!ENTITY % OPS
"
(GT | LT | EQ | NE)
">
 
<!ENTITY % RECORD_CM
"
SetValue | SetDims | SetSize | AddValue | Loop | Condition | Separator
">
 
<!ENTITY % OPERATION_ATTS
"
target   IDREF   #REQUIRED
">
 
<!ENTITY % MUTATOR_ATTS
"
%OPERATION_ATTS;
">
 
<!ELEMENT FileTypeSpecification (FileData,FileStructure)>
<!ATTLIST FileTypeSpecification
   type                CDATA          #IMPLIED
   description         CDATA          #IMPLIED
   lineCommentStart    CDATA          #IMPLIED
   blockCommentStart   CDATA          #IMPLIED
   blockCommentEnd     CDATA          #IMPLIED
   ignoreBlankLines    (true | false) "true"
   delimiters          CDATA          #IMPLIED
   ignoreMissingValues (true | false) "false">
 
<!ELEMENT FileData %FILE_DATA_CM;>
 
<!ELEMENT Integer %DATA_CM; >
<!ATTLIST Integer %DATA_ATT; >
 
<!ELEMENT Float %DATA_CM; >
<!ATTLIST Float %DATA_ATT; >
 
<!ELEMENT String %DATA_CM; >
<!ATTLIST String %DATA_ATT; >
 
<!ELEMENT Array %DATA_CM; >
<!ATTLIST Array %DATA_ATT;
   ndims     CDATA                      #REQUIRED
   dims      CDATA                      #REQUIRED
   baseType  (String | Integer | Float) #REQUIRED >
 
<!ELEMENT Dim EMPTY >
<!ATTLIST Dim
   size      CDATA #IMPLIED >
 
<!ELEMENT FileStructure %FILE_STRUCTURE_CM;>
 
<!ELEMENT StaticText (#PCDATA) >
 
<!ELEMENT Record (%RECORD_CM;)+>
<!ATTLIST Record
   ignoreOnRead       (true | false) #REQUIRED
   format             CDATA          #IMPLIED
   ignoreFormatOnRead (true | false) #IMPLIED
>
 
<!ELEMENT SetValue EMPTY >
<!ATTLIST SetValue
   %MUTATOR_ATTS;
>
 
<!ELEMENT AddValue EMPTY >
<!ATTLIST AddValue
   %MUTATOR_ATTS;
>
 
<!ELEMENT SetDims EMPTY >
<!ATTLIST SetDims
   %OPERATION_ATTS;
   dims       CDATA   #REQUIRED
>
 
<!ELEMENT SetSize EMPTY >
<!ATTLIST SetSize
   %OPERATION_ATTS;
   dimIndex   CDATA   #REQUIRED
   size       CDATA   #REQUIRED
>
 
<!ELEMENT Loop (%RECORD_CM; | Record)+>
<!ATTLIST Loop
   loopVariable CDATA          #IMPLIED
   start        CDATA          #REQUIRED
   end          CDATA          #REQUIRED
   incr         CDATA          #REQUIRED
   check        CDATA          #IMPLIED
   operator     %OPS;          #IMPLIED
   checkValue   CDATA          #IMPLIED
   stopOnEof    (true | false) #IMPLIED
   doOnce       (true | false) #IMPLIED
>
 
<!ELEMENT Condition (%RECORD_CM; | Record | StaticText)+>
<!ATTLIST Condition
   check        CDATA          #REQUIRED
   operator     %OPS;          #REQUIRED
   checkValue   CDATA          #REQUIRED
>
 
<!ELEMENT Separator EMPTY>
<!ATTLIST Separator
   ignoreOnRead (true | false) #REQUIRED
   string       CDATA          #REQUIRED
   repeat       CDATA          #IMPLIED
>


next up previous contents
Up: FSML_specification Previous: 3.7 Putting It All   Contents

SAIC Ship Technology Division, Annapolis, Maryland, USA
2004-10-26