<?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.           -->
<!--     March 2009 - changed 4 elements to attributes.               -->
<!--     April 2009 - fixed mapList, dashLength to proper camel-case. -->
<!--     May 2009 - fixed erroneous defaultStyleProp (changed to      -->
<!--               defaultAttributes) in external DTD file.           -->
<!--     May 2009 - removed "5" from lineCapInd, edgeCapInd.          -->
<!--     May 2009 - changed attributes to #REQUIRED in the elements   -->
<!--         lineCap, edgeCap, lineJoin, edgeJoin, lineTypeCont,      -->
<!--         edgeTypeCont, restrTextType.                             -->
<!--                                                                  -->
<!-- ================================================================ -->
<!--                                                                  -->
<!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 defaultAttributes ( lineCap | edgeCap | lineJoin | edgeJoin 
                           | lineTypeCont | edgeTypeCont | mitreLimit 
                           | restrTextType | lineEdgeTypeDef 
                           | hatchStyleDef )+                           >

<!ELEMENT lineCap EMPTY                                                 >
<!ATTLIST lineCap
          lineCapInd ( 1 | 2 | 3 | 4 ) #REQUIRED
          lineDashInd ( 1 | 2 | 3 ) #REQUIRED                           >

<!ELEMENT edgeCap EMPTY                                                 >
<!ATTLIST edgeCap
          edgeCapInd ( 1 | 2 | 3 | 4 ) #REQUIRED
          edgeDashInd ( 1 | 2 | 3 ) #REQUIRED                           >

<!ELEMENT lineJoin EMPTY                                                >
<!ATTLIST lineJoin
          lineJoinInd ( 1 | 2 | 3 | 4 ) #REQUIRED                       >

<!ELEMENT edgeJoin EMPTY                                                >
<!ATTLIST edgeJoin
          edgeJoinInd ( 1 | 2 | 3 | 4 ) #REQUIRED                       >

<!ELEMENT lineTypeCont EMPTY                                            >
<!ATTLIST lineTypeCont
          lineContMode ( 1 | 2 | 3 | 4 ) #REQUIRED                      >

<!ELEMENT edgeTypeCont EMPTY                                            >
<!ATTLIST edgeTypeCont
          edgeContMode ( 1 | 2 | 3 | 4 ) #REQUIRED                      >

<!ELEMENT mitreLimit EMPTY                                              >
<!ATTLIST mitreLimit
          limitVal CDATA #REQUIRED                                      >

<!ELEMENT restrTextType EMPTY                                           >
<!ATTLIST restrTextType
          restrType ( 1 | 2 | 3 | 4 | 5 | 6 ) #REQUIRED                 >

<!ELEMENT lineEdgeTypeDef EMPTY                                         >
<!ATTLIST lineEdgeTypeDef
          lineIndex ( 1 | 2 | 3 | 4 | 5 ) #REQUIRED
          dashLength CDATA #REQUIRED
          repeatLength CDATA #REQUIRED                                  >  

<!ELEMENT hatchStyleDef EMPTY                                           >
<!ATTLIST hatchStyleDef 
          hatchIndex ( 1 | 2 | 3 | 4 | 5 | 6 ) #REQUIRED
          styleInd ( parallel | crosshatch ) #REQUIRED
          directionVectors CDATA #REQUIRED
          gapWidth CDATA #REQUIRED
          lineTypeIndex CDATA #REQUIRED       
          cycleLength CDATA #REQUIRED
          numberOfLines CDATA #REQUIRED                                 >

