<?xml version="1.0" encoding="UTF-8"?>
<!-- ================================================================ -->
<!-- This is the WebCGM Application Configurable Item file DTD        -->
<!-- for use with  WebCGM 2.1                                         -->
<!-- ================================================================ -->
<!-- Original issue: March 2008                                       -->
<!--                                                                  -->
<!-- Revision history:                                                -->
<!--      June 2008 - modified for changes to CD02 ACI text.          -->
<!--                                                                  -->
<!-- ================================================================ -->
<!--                                                                  -->
<!ELEMENT webcgmConfig ( fontMap?, defaultAttributes? )                 >

<!ELEMENT fontMap ( defaultFont?, maplist* )  >

<!ELEMENT defaultFont EMPTY                                             >
<!ATTLIST defaultFont 
          useFont CDATA #REQUIRED >

<!ELEMENT maplist EMPTY                                                 >
<!ATTLIST maplist
          forceSubstitution ( yes | no ) "yes" 
          cgmFont CDATA #REQUIRED 
          substitutionList CDATA #REQUIRED                              >

<!ELEMENT defaultStyleProp ( lineCap | edgeCap | lineJoin | edgeJoin 
                           | lineTypeCont | edgeTypeCont | mitreLimit 
                           | restrTextType | lineEdgeTypeDef 
                           | hatchStyleDef )+                           >

<!ELEMENT lineCap EMPTY                                                 >
<!ATTLIST lineCap
          lineCapInd ( 1 | 2 | 3 | 4 | 5 ) "1"
          lineDashInd ( 1 | 2 | 3 ) "1"                                 >

<!ELEMENT edgeCap EMPTY                                                 >
<!ATTLIST edgeCap
          edgeCapInd ( 1 | 2 | 3 | 4 | 5 ) "1"
          edgeDashInd ( 1 | 2 | 3 ) "1"                                 >

<!ELEMENT lineJoin EMPTY                                                >
<!ATTLIST lineJoin
          lineJoinInd ( 1 | 2 | 3 | 4 ) "1"                             >

<!ELEMENT edgeJoin EMPTY                                                >
<!ATTLIST edgeJoin
          edgeJoinInd ( 1 | 2 | 3 | 4 ) "1"                             >

<!ELEMENT lineTypeCont EMPTY                                            >
<!ATTLIST lineTypeCont
          lineContMode ( 1 | 2 | 3 | 4 ) "1"                            >

<!ELEMENT edgeTypeCont EMPTY                                            >
<!ATTLIST edgeTypeCont
          edgeContMode ( 1 | 2 | 3 | 4 ) "1"                            >

<!ELEMENT mitreLimit EMPTY                                              >
<!ATTLIST mitreLimit
          limitVal CDATA #REQUIRED                                      >

<!ELEMENT restrTextType EMPTY                                           >
<!ATTLIST restrTextType
          restrType ( 1 | 2 | 3 | 4 | 5 | 6 ) "1"                       >

<!ELEMENT lineEdgeTypeDef ( dashLength+ )                               >
<!ATTLIST lineEdgeTypeDef
          lineIndex ( 1 | 2 | 3 | 4 | 5 ) #REQUIRED
          repeatLength CDATA #REQUIRED                                  >

<!ELEMENT dashLength ( #PCDATA )                                        >

<!ELEMENT hatchStyleDef ( directionVectors, ( gapWidth+ ), 
                                            ( lineTypeIndex+ ) )        >
<!ATTLIST hatchStyleDef
          hatchIndex ( 1 | 2 | 3 | 4 | 5 | 6 ) #REQUIRED
          styleInd ( parallel | crosshatch ) #REQUIRED
          cycleLength CDATA #REQUIRED
          numberOfLines CDATA #REQUIRED                                 >

<!ELEMENT directionVectors ( vectorX, vectorY, vectorX, vectorY )       >

<!ELEMENT vectorX ( #PCDATA )                                           >

<!ELEMENT vectorY ( #PCDATA )                                           >

<!ELEMENT gapWidth ( #PCDATA )                                          >

<!ELEMENT lineTypeIndex ( #PCDATA )                                     >
