Up to cover page | Back to ECMAScript | On to Appendices
This chapter and its subsections are normative, unless otherwise indicated.
The WebCGM Aplication Configuration Items file (ACI) allows the user to improve font interchange by specifying desired font mapping between CGM files and WebCGM applications.
The ACI file also provides a mechanism to specify default parameters for certain CGM Version 3 elements that are not explicitly defined in a CGM Version 3 file or are to be used as the defaults.
The ACI file can be associated with a WebCGM file by two methods. The
reference to ACI file can be included in the 'href' attribute of
the <a> element using the fragment mechanism described in
the Fragment
definition section, or the reference to the ACI file can be spcified as a
processing instruction in the XCF file (see Scenario 4 of section
4.1).
The WebCGM Application Configurable Item (ACI) file is an XML instance
reflecting the preferences in font substitution and default parameters for
various CGM Version 3 attribute and control elements. It is made up of a root
element (<webcgmConfig>) followed by an optional font map
(<fontMap>) elment and an optional default style properties
(<defaultStyleProp>) element.
A file is a conforming WebCGM 2.1 ACI document if it adheres to the specifications described in this (WebCGM 2.1) document, including those in the WebCGM 2.1 ACI DTD, and in addition:
An ACI file must have webcgmConfig as its root element.
<!ELEMENT webcgmConfig ( fontMap?, defaultStyleProp? ) > |
The fontMap element of the ACI is the mechanism defined for
font substitution.
<!ELEMENT fontMap ( defaultFont?, ( cgmFont, displayFont )* ) > |
The defaultFont element of the ACI is specifies a string
defining the font to be used when mapping cannot be accomplished.
<!ELEMENT defaultFont ( #PCDATA ) > |
The cgmtFont and displayFont elements of the ACI
is specifies which mapping of the font within the CGM file to the font to be
used in the rendering of the text on the display. The content of the
cgmtFont and displayFont elements are simple
strings defining the fonts from the CGM Font List element and the intended
fonts to be used on the display platform, respectively.
<!ELEMENT cgmFont ( #PCDATA ) >
<!ELEMENT displayFont ( #PCDATA ) >
<!ATTLIST displayFont
scaWid CDATA #IMPLIED
scaHgt CDATA #IMPLIED
>
|
Attribute definitions:
scaWid="CDATA"
The scale factor to be applied to the width of each font character. Default
value is 1.0.
scaHgt="CDATA"
The scale factor to be applied to the height of each font character. Default
value is 1.0.
The defaultStyleProp element of the ACI is the mechanism
defined to specify values for certain CGM attribute and control elements that
are not present in the CGM file. If an cooresponding element is present in
the CGM file, the default specification has no effect.
<!ELEMENT defaultStyleProp ( lineCap | edgeCap | lineJoin | edgeJoin
| lineTypeCont | edgeTypeCont | mitreLimit
| restrTextType | lineEdgeTypeDef | hatchStyleDef )+ >
|
For the following CGM Version 3 elements, it is possible to define the default parameters associated with them:
The parameter definition for each element is consistant with ISO/IEC 8632:1999 CGM parameter defintions.
The lineCap element of the ACI is an EMPTY element that
specifies the desired rendering of the end caps of lines and dashes within
lines.
<!ELEMENT lineCap EMPTY >
<!ATTLIST lineCap
lineCapInd ( 1 | 2 | 3 | 4 | 5 ) "1"
lineDashInd ( 1 | 2 | 3 ) "1"
>
|
Attribute definitions:
lineCapInd="1|2|3|4|5"
The line cap indicator is restricted to value of 1-5 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'unspecified'.
lineDashInd="1|23"
The line dash cap indicator is restricted to values of 1-3 as defined in
ISO/IEC 8632:1999.
The default value is '1' or 'unspecified'.
The edgeCap element of the ACI is an EMPTY element that
specifies the desired rendering of the end caps of edge and dashes within
edges.
<!ELEMENT edgeCap EMPTY >
<!ATTLIST edgeCap
edgeCapInd ( 1 | 2 | 3 | 4 | 5 ) "1"
edgeDashInd ( 1 | 2 | 3 ) "1"
>
|
Attribute definitions:
edgeCapInd="1|2|3|4|5"
The edge cap indicator is restricted to value of 1-5 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'unspecified'.
edgeDashInd="1|2|3"
The edge dash cap indicator is restricted to values of 1-3 as defined in
ISO/IEC 8632:1999.
The default value is '1' or 'unspecified'.
The lineJoin element of the ACI is an EMPTY element that
specifies the desired rendering of the join characteristics at vertices of
the line element.
<!ELEMENT lineJoin EMPTY >
<!ATTLIST lineJoin
lineJoinInd ( 1 | 2 | 3 | 4 ) "1"
>
|
Attribute definitions:
lineJoinInd="1|2|3|4"
The line join indicator is restricted to value of 1-4 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'unspecified'.
The edgeJoin element of the ACI is an EMPTY element that
specifies the desired rendering of the join characteristics at vertices of
the edge element.
<!ELEMENT edgeJoin EMPTY >
<!ATTLIST edgeJoin
lineJoinInd ( 1 | 2 | 3 | 4 ) "1"
>
|
Attribute definitions:
edgeJoinInd="1|2|3|4"
The line join indicator is restricted to value of 1-4 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'unspecified'.
The lineTypeCon element of the ACI is an EMPTY element that
specifies the desired rendering of the line type continuation characteristics
of the line element.
<!ATTLIST lineTypeCont
lineContMode ( 1 | 2 | 3 | 4 ) "1"
>
|
Attribute definitions:
lineContMode="1|2|3|4"
The line join indicator is restricted to value of 1-4 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'unspecified'.
The lineTypeCon element of the ACI is an EMPTY element that
specifies the desired rendering of the edge type continuation characteristics
of the edge element.
<!ATTLIST edgeTypeCont
edgeContMode ( 1 | 2 | 3 | 4 ) "1"
>
|
Attribute definitions:
edgeContMode="1|2|3|4"
The edge join indicator is restricted to value of 1-4 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'unspecified'.
The mitreLimit element of the ACI is an EMPTY element that
specifies how line join at vertices are achieved.
<!ELEMENT mitreLimit EMPTY >
<!ATTLIST mitreLimit
limitVal CDATA #REQUIRED
>
|
Attribute definitions:
limitVal="CDATA"
The mitre limit value is defined as a scale factor applied to current line
and edge width. Valid values are non-negative real numbers.
The lineCap element of the ACI is an EMPTY element that
specifies the desired rendering of the end caps of lines and dashes within
lines.
<!ELEMENT restrTextType EMPTY >
<!ATTLIST restrTextType
restrTypep ( 1 | 2 | 3 | 4 | 5 | 6 ) "1"
>
|
Attribute definitions:
restrType="1|2|3|4|5|6"
The restricted text type is restricted to value of 1-6 as defined in ISO/IEC
8632:1999.
The default value is '1' or 'basic'.
The lineEdgeTypeDef element of the ACI is an element that
specifies the desired rendering of the standard line type in ISO/IEC
8632:1999.
<!ELEMENT lineEdgeTypeDef ( dashLength+ ) >
<!ATTLIST lineEdgeTypeDef
lineIndex ( 1 | 2 | 3 | 4 | 5 ) #REQUIRED
repeatLength CDATA #REQUIRED
>
|
Attribute definitions:
lineIndex="1|2|3|4|5"
The line cap indicator is restricted to value of 1-5 as defined in ISO/IEC
8632:1999.
The dashLength element of the ACI is a repeatable string that
specifies a the length of each dash and gap in the defined line pattern in
NVDC units.
<!ELEMENT dashLength ( #PCDATA ) > |
The hatchStyleDef element of the ACI specifies the desired
rendering of the standard hatches in ISO/IEC 8632:1999.
<!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
>
|
Attribute definitions:
hatchIndex="1|2|3|4|5|6"
The line cap indicator is restricted to value of 1-5 as defined in ISO/IEC
8632:1999.
styleInd="paralel|crosshatch"
The style indicator indicates whether the hatch patter is made up of parallel
lines or crosshatch lines.
cycleLength="CDATA"
The duty cycle length defines the length of one pattern. It is measured
perpendicular to the hatch lines and is in NVDC units.
numberOfLines="CDATA"
The number of hatch lines defines the number of entries in the list of gap widths and list of lines types.
The directionVectors element of the ACI contains the
vectorX and vectorY elements to define the
direction of the hatch lines. If the style indicator is parallel, only the
first set of vectors is used, but both must be present.
<!ELEMENT directionVectors ( vectorX, vectorY, vectorX, vectorY ) > <!ELEMENT vectorX ( #PCDATA ) > <!ELEMENT vectorY ( #PCDATA ) > |
The gapWidth element of the ACI defines the width between the
lines in the hatch pattern. The number of gap width elements cooresponds to
the number of lines attribute in the hatch style definition.
<!ELEMENT gapWidth ( #PCDATA ) > |
The lineTypeIndex element of the ACI defines the line types
of the lines that make up the hatch pattern. The number of line type index
elements cooresponds to the number of lines attribute in the hatch style
definition.
<!ELEMENT lineTypeIndex ( #PCDATA ) > |
The complete WebCGM Application Configurable Items (ACI) file DTD follows.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE webcgmConfig [
<!-- ================================================================ -->
<!-- This is the WebCGM Application Configurable Item file DTD -->
<!-- for use with WebCGM 2.1 -->
<!-- ================================================================ -->
<!-- Original issue: March 2008 -->
<!-- -->
<!-- Revision history: -->
<!-- Original Issue -->
<!-- -->
<!-- ================================================================ -->
<!-- -->
<!ELEMENT webcgmConfig ( fontMap?, defaultStyleProp? ) >
<!ELEMENT fontMap ( defaultFont?, ( cgmFont, displayFont )* ) >
<!ELEMENT defaultFont ( #PCDATA ) >
<!ELEMENT cgmFont ( #PCDATA ) >
<!ELEMENT displayFont ( #PCDATA ) >
<!ATTLIST displayFont
scaWid CDATA #IMPLIED
scaHgt CDATA #IMPLIED >
<!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 NMTOKEN #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 ) >]