GRF 1.1 document type definition

The purpose of a document type definition (DTD) is to define the legal building blocks of an XML document. It defines the document structure with a list of legal elements. The DTD below is intended to help you develop code that generates custom GRF files. You can also use this DTD to verify whether the GRF files you create are valid.

The GRF 1.1 DTD file is installed with ArcPad in the Rhode Island sample data folder. The complete DTD is also listed below.

<!ENTITY % boolean

"(true|True|TRUE|false|False|FALSE)" >

<!ELEMENT GRFDOC (ROUTE_INFO)>

<!ATTLIST GRFDOC version CDATA #IMPLIED>

<!ELEMENT ROUTE_INFO ( STOPS?,BARRIERS?,PUSHPINS?,ROUTERESULT? )>

<!ELEMENT STOPS ( STOP+ ) >

<!ELEMENT STOP ( LOCATION,SEGMENTID?,POSITION?,POINTSTOP? ) >

<!ATTLIST STOP enabled %boolean; #IMPLIED >

<!ELEMENT LOCATION ( POINT,TITLE,COMMENTS? ) >

<!ATTLIST LOCATION visible %boolean; #IMPLIED closed %boolean; #IMPLIED>

<!ELEMENT POINT EMPTY > <!ATTLIST POINT x CDATA #REQUIRED y CDATA #REQUIRED >

<!ELEMENT TITLE ( #PCDATA ) >

<!ELEMENT SEGMENTID ( #PCDATA ) >

<!ELEMENT POSITION ( #PCDATA ) >

<!ELEMENT POINTSTOP ( POINT ) >

<!ELEMENT BARRIERS ( BARRIER+ ) >

<!ELEMENT BARRIER ( LOCATION,SEGMENTID?,POSITION? ) >

<!ATTLIST BARRIER enabled %boolean; #IMPLIED >

<!ELEMENT PUSHPINS ( PUSHPIN+ ) >

<!ELEMENT PUSHPIN ( LOCATION ) >

<!ATTLIST PUSHPIN enabled %boolean; #IMPLIED > <!ELEMENT COMMENTS ( #PCDATA ) >

<!ELEMENT ROUTERESULT ( TOTALSTEXT,FOOTER?,HEADER?,LENGTH,TRAVELTIME,DRIVINGTIME,ITEMS ) >

<!ELEMENT TOTALSTEXT ( TEXT+ ) >

<!ELEMENT TEXT ( STRING+ ) >

<!ELEMENT STRING ( #PCDATA ) >

<!ATTLIST STRING style NMTOKEN #IMPLIED >

<!ELEMENT FOOTER ( TEXT ) >

<!ELEMENT HEADER ( TEXT ) >

<!ELEMENT LENGTH ( #PCDATA ) >

<!ELEMENT TRAVELTIME ( #PCDATA ) >

<!ELEMENT DRIVINGTIME ( #PCDATA ) >

<!ELEMENT ITEMS ( ITEM+ ) >

<!ELEMENT ITEM ( PARTID,ITEMLENGTH,ITEMTIME,ITEMTYPE,ITEMTEXT,DRIVETEXT?,SHAPE ) >

<!ELEMENT PARTID ( #PCDATA ) >

<!ELEMENT ITEMLENGTH ( #PCDATA ) >

<!ELEMENT ITEMTIME ( #PCDATA ) >

<!ELEMENT ITEMTYPE ( #PCDATA ) >

<!ELEMENT ITEMTEXT ( TEXT ) >

<!ELEMENT SHAPE ( TYPE,POLYLINE ) >

<!ELEMENT TYPE ( #PCDATA ) >

<!ELEMENT POLYLINE ( PATH ) >

<!ELEMENT PATH ( COORDS ) >

<!ELEMENT COORDS ( #PCDATA ) >

<!ELEMENT DRIVETEXT ( STRING+ ) >

9/23/2019