Up to cover page | Back to Profile

CGM Open specification - WebCGM 2.0 - Appendixes


Contents


A. Conformance


This section and its subsections are normative, unless otherwise indicated.

A.1 Conformance definitions

WebCGM 2.0 defines conformance for these classes of product:

WebCGM contains both static graphics functionality and dynamic behaviors functionality. Viewer conformance to the static graphics functionality can be measured for any kind of WebCGM viewer. Full viewer conformance to the dynamic behaviors specifications can only be measured in an environment of HTML-based documents and Web browsers. Therefore, full dynamic conformance of a viewer to all specifications in WebCGM 2.0 can only be measured for a WebCGM browser plugin (or equivalent architecture).

A.2 Deprecated and obsolete features

These features of WebCGM 1.0 have been made obsolete, and are not part of the WebCGM 2.0 standard:

These WebCGM 1.0 features are deprecated in WebCGM 2.0, and may be removed (made obsolete) in a future version:

For WebCGM 2.0, deprecation is defined as follows. Deprecated features must not be present in conforming 2.0 content, but must be supported by conforming 2.0 viewers that support conforming 1.0 content.

A.3 Optional features

There are no optional features in WebCGM. Conforming static implementations must implement all static functionality as defined herein. Conforming dynamic implementations must implement all dynamic functionality, including DOM and XCF functionality, as defined herein.

A.4 Extensibility

A.4.1 Extensibility by implementations

For WebCGM implementations, the following extensibility rules apply to the given WebCGM components for which WebCGM defines conformance.

Metafiles
Metafiles are absolutely not extensible. There shall be no content in conforming WebCGM metafile instances beyond what is defined and allowed by the WebCGM Proforma of Chapter 6.
DOM

A conforming WebCGM DOM implementation must implement the interfaces of WebCGM DOM definition (Chapter 5) exactly as described therein. Any DOM implementation, whether profile defined or private (vendor defined), that extends, subsets, or modifies the WebCGM DOM is not a conformant WebCGM DOM implementation. The specification of a DOM based on or derived from the WebCGM DOM is considered to be a new, independent DOM that would be outside of the scope of the WebCGM specification. Such a DOM would not be WebCGM conformant, and a WebCGM DOM implementation is not expected to handle this DOM.

Companion files (XCF)
XML Companion Files (XCF) are extensible with application-specific metadata in foreign namespaces, following the extension rules defined in Chapter 5, XML Companion File. Such namespace extensions shall have no graphical effects, i.e., if the namespace extensions are stripped from a companion file, then the graphical rendering following the load and apply of that XCF shall be the match the rendering following the load-and-apply of the unaltered XCF.

A.4.2 Extensibility by profiles

This sub-section is informative (non-normative.)

One design goal of WebCGM is to serve as a foundation profile for a family of closely related technical application sectors. The aim is that those sectors may succinctly present their profile definitions as delta documents from WebCGM, as explained in Cascading Profiles. The following rules should be observed by such profiles.

Metafiles
Profiles typically define their valid metafile content to be a subset of the full WebCGM Proforma (Chapter 6). Other than subsetting values and elements, profiles should not modify any standard WebCGM content. Profiles may extend standard WebCGM content by using the defined CGM:1999 extension mechanisms (ESCAPE, GDP, APPLICATION DATA), provide the constraints of CGM:1999 Rules for Profiles (clause 9) are observed. Specifically, such extensions should be either profile defined (sufficient for universal unambiguous implementation) or registered (in the ISO Registry of Graphical Items). Note: Profiles should use caution when extending valid metafile content, as it fragments implementations and creates interoperability problems with other application sectors.
DOM
Profiles based on WebCGM should not modify or add to the standardized WebCGM DOM methods or interfaces. Niether should such profiles add entirely new interfaces. A profile-defined DOM based on or derived from the WebCGM DOM is considered to be a new, independent DOM. A WebCGM DOM implementation should not be expected to interoperate with this DOM. The recommendations of this paragraph should help to minimize the interoperability differences amongst closely-related technical constituencies whose profiles derive from WebCGM.
Companion files (XCF)
Profiles may subset WebCGM WebCGM's XML Companion File (XCF) definition. Profiles may extend WebCGM's XCF definition with application-specific metadata in foreign namespaces, following the extension rules defined in Chapter 5, XML Companion File. As for implementation-defined XCF extensions, profile-defined XCF extensions shall be non-graphical.

A.5 Normativitity

A.5.1 Normative and informative content

The sections and subsections of this specification are labelled, after the section heading, to specify whether they are normative or informative. If a subsection is not labelled, it has the same normativity as its parent section.

For example, this conformance clause (Appendix A) says, right after the section heading, "This section and its subsections are normative, unless otherwise indicated." Section A.4.1 has no label, so it is normative, while A.4.2 says "This sub-section is informative (non-normative.)"

All examples in this specification are informative. All illustrations in this specification are informative. All EBNF in this specification is normative, unless specifically labelled as informative. All DTDs and DTD fragments are normative, unless specifically labelled as informative.

A.5.2 Normative language and conformance requirements

The individual conformance requirements of this specification are presented in these principal ways:

A.6 Validation tools

This subsection is informative.

One of the primary benefits of any CGM profile is the ability to insure interoperability through the use of validation tools against CGM instances and certification services for applications. Once an application has been certified through a testing service, behavior of that application is predictable under the constraints of the profile. Validation and certification tools and services which exist (or have existed) and can be leveraged for WebCGM are:


B. References


B.1 Normative References

This section is normative.

All valid profiles of CGM conform to the ISO CGM standard. As are all profiles, the WebCGM profile is defined by reference to the ISO standard:

ISO/IEC 8632:1999(E)
Information technology - Computer graphics - Metafile for the storage and transfer of picture description information
- Part 1: Functional description
- Part 3: Binary encoding
- Part 4: Clear text encoding

Available at the ISO page of Publicly Available Standards. CGM:1999 was reaffirmed by ISO, without changes, at its 5-year review in 2004.

The other normative references of this profile are:

RFC-3986
Uniform Resource Identifiers (URI): Generic Syntax,
URL: http://www.ietf.org/rfc/rfc3986.txt
RFC-1951
Deutsch, P., "DEFLATE Compressed Data Format Specification version 1.3", RFC1951, Aladdin Enterprises, May 1996,
URL: http://www.w3.org/Graphics/PNG/RFC-1951
ISO/IEC 10646-1:1993, AM2:1996
Information technology - Universal multiple-octet coded character set (UCS)
- Part 1: Architecture and Basic Multilingual Plane
AMENDMENT 2: UCS Transformation Format 8 (UTF-8)
REC-png
PNG (Portable Network Graphics) Specification, Version 1.0, URL:
http://www.w3.org/TR/REC-png-multi
RFC2119
IETF RFC 2119: Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, March 1997. Available at http://www.ietf.org/rfc/rfc2119.txt .
XML 1.0
XML 1.0, third edition, http://www.w3.org/TR/2004/REC-xml-20040204/.
Namespaces in XML
http://www.w3.org/TR/REC-xml-names

B.2 Informative References

This section is informative (non-normative).

SVG 1.1
http://www.w3.org/TR/SVG11/
DOM Level 3
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/
HTML 4.01
HTML 4.01 Specification
CSS 2.0
http://www.w3.org/TR/CSS2/
Xpointer Framework
http://www.w3.org/TR/2003/REC-xptr-framework-20030325/
Cascading Profiles
Definition and description of how to write a profile based on WebCGM as the starting point, for closely related technical application sectors. At http://www.cgmopen.org/technical/cascading-profiles.html
WebCGM 2.0 Requirements
The requirements used to define the new functionality for WebCGM 2.0. At http://www.oasis-open.org/committees/download.php/14243/WebCGM_20_Requirements.html
SpecGL 1.0
The W3C QA Framework: Specification Guidelines, has guided the inclusion of the normative Conformance clause, and other conformance-related details of WebCGM. At http://www.w3.org/TR/qaframe-spec/.

B.3 Document Sources and Registration Authority

This section is informative (non-normative).

Copies of the ISO standards may be obtained from ISO:

ISO Central Secretariat
1, rue de Varembe
Case postale 56
CH-1211 Geneve 20
Switzerland

For the purpose of this Recommendation and according to the rules for the designation and operation of registration authorities in the ISO/IEC Directives, the ISO and IEC Councils have designated the following as the registration authority:

National Imagery and Mapping Agency (NIMA)
(Joint Interoperability Test Command)
The Registration Authority for Graphical Items
Building 57305
Fort Huachuca
Arizona
85613-7020
USA

For more information on the CGM standard itself, the CGM Open Web site has both bibliographic references, and short articles on CGM topics:

CGM Open
http://www.cgmopen.org/

The following World Wide Web sites have more information on CGM:

ISO/JTC1/SC24
http://www.cwi.nl/JTC1SC24/
W3C WebCGM Overview
http://www.w3.org/Graphics/WebCGM


C. What's new in WebCGM 2


This section is informative (non-normative).

  1. DOM. A major functional addition is a limited WebCGM Document Object Model (DOM), carefully targetted at the WebCGM 2.0 requirements.
  2. XCF. The second major functional addition is the definition of a standard XML Companion File for use by WebCGM (and related) applications, closely integrated with WebCGM DOM.
  3. Event model. As an adjunct to the DOM definition, a more detailed event model has been specified, allowing definition and attachment of user event handlers to objects, and specifying how "pick" events are handled in a backward compatible way to WebCGM 1.0.
  4. Complementing the event model, a new param sub-element is added to the OBJECT element, to allow handling of onload events.
  5. Single picture. Whereas ISO CGM:1999 allows multiple independent pictures in a metafile, and WebCGM 1.0 originally did, multiple pictures were deemed not amongst the requirements for WebCGM. To simplify WebCGM, they were deprecated in WebCGM 1.0 2nd Release, and are now removed from WebCGM 2.0.
  6. Fragment syntax. Small changes to allowable values, in order to embody the single-picture rule, but the overall structure of the fragment is unchanged for backward compatibility.
  7. Fragment syntax and xcfterm. It is now possible in the link fragment to specify to load-and-apply an XML companion file before first display of the graphics of a targetted picture.
  8. More object behaviors. The set of object behaviors that can be included in the link fragment syntax has been expanded to give much more user control. A set of of behaviors is built from EBNF syntax, by combinations of an orthogonal navigation term and highlighting term. The 3 behaviors of WebCGM 1.0 are deprecated.
  9. Grnode. WebCGM 2.0 defines a purely graphical grouping mechanism, "graphical node", which groups graphical primitives as an Application Structure, but diallows the attributes or properties that associate intelligence with objects.
  10. New APS attributes. WebCGM defines new APS attributes of type 'visibility' and 'interactivity' that may be applied to most object (APS) types.
  11. Style Properties. For use in DOM and XCF, WebCGM 2.0 defines a set of Style Properties -- text color, stroke weight, etc -- that transiently (for the duration of a DOM or viewing session) override the corresponding CGM attributes for targeted picture and APS nodes.
  12. Obsolete features. A number of previously deprecated WebCGM 1.0 features are made obsolete (removed from WebCGM 2.0).
  13. Deprecated features. A number WebCGM 1.0 features are deprecated in WebCGM 2.0 (may be removed in a future revision).
  14. Symbol Libraries. This capability was in WebCGM 1.0, but was removed from WebCGM 2.0 because of lack of interest (POLYSYMBOL, several SYMBOL LIBRARY elements, some registered ESCAPEs, etc).
  15. 2.0 and has added some graphical items that were deferred from WebCGM 1.0 (for expedience)


D. Glossary


Application Structure, APS
The CGM structure for grouping other elements and assigning them a unique identifier, a type, and attaching attributes. WebCGM contains five valid APS types: grobject, layer, para, subpara, grnode.
APS Attribute, Application Structure Attribute
The CGM element that is used to define and associate an attribute with an APS. WebCGM contains ten valid APS Attribute types: region, viewcontext, linkuri, layername, layerdesc, screentip, name, content, visibility, interactivity.
Style Property
A graphical attributes that may be applied and manipulated at the APS or picture level, transiently, by WebCGM DOM and WebCGM XCF. WebCGM 2.0 defines nine style properties.
DOM, Document Object Model
A Document Object Model is a platform- and language-neutral interface that allows programs and scripts to dynamically access and manipulate the content, structure and style of documents. WebCGM defines a DOM of limited scope, allowing discovery and navigation of the WebCGM structure tree, transient manipulation of styles and standardized metadata, and discovery and manipulation of application-specific metadata. The WebCGM DOM is based upon and borrows from the principles the W3C DOM Level 2 and DOM Level 3 Recommendations.
WDOM, WebCGM DOM
The WebCGM Document Object Model, this terminology is used when it is needed to unambiguously distinguish the WebCGM DOM from the generalized W3C DOM specifications.
CGM, Computer Graphics Metafile
ISO/IEC standard 8632:1999 (CGM:1999), CGM is a metafile format consisting of composite raster and scalable vector graphics information.
metafile
A mechanism for retraining and transporting graphical data and control information, containing a device independent description of one or more pictures.
NVDC, Normalized Device Coordinates
The coordinate system that is used to communicate coordinate data through the WebCGM DOM, NVDC is VDC normalized so that the origin is lower-left and units are millimeters.
EBNF, Extended Bauer Normal Form
A formal specification technique used in WebCGM to express pieces of grammar and syntax such as the URI fragment syntax.
XCF, XML Companion File
An XML file format defined by WebCGM, that can be used to externalize metadata from WebCGM instances and bind it to objects in the metafile.
Cascading profile
A method by which closely related profiles can be expressed efficiently, by only enumerating the differences between a given profile and a base profile such as WebCGM.
PPF, Profile Proforma
A method of expressing profiles standardized in CGM:1999 (clause 9), the PPF presents a profile as a single table covering all aspects of the CGM standard, with a reference column (enumerating a Model Profile or other base profile), and a column to define the target profile by comparison to the reference column.
handler, event handler
An event handler is a method called by the WebCGM DOM implementation whenever a specified event occurs. Users register the event types they are interested in by calling the addEventListener() method of the WebCGMMetafile object.
listener, event listener
The event listener specifies the interface via which users register event handlers with the WebCGM DOM implementation. This interface consists of a single method, handleEvent(), which the WebCGM DOM implementation calls whenever specified events occur. Users pass WebCGMEventListener objects as arguments to the addEventListener() method of the WebCGMMetafile object to register a specific event handler with the WebCGM DOM implementation.
host application
The user agent, typically is a script that controls the behavior of a web page. In the context of WebCGM the host application controls the behavior of the WebCGM renderer through the DOM.
host environment
The combination of the host application and the host document
host document
The web page, contains a combination of both HTML and WebCGM content.
object
An Application Structure or Picture in a WebCGM.
object behavior
One of a set of (thirteen) ways in which the view of an object or collection of objects is presented following the execution of a hyperlink to the object(s). WebCGM standardizes a number of objects that give complete control over the zoom, pan, and highlight aspects of the view.
picture behavior
One of a set of (six) ways in which the view of a picture is handled following the execution of a hyperlink to the picture. Based on the 'target' attribute of the HTML 'a' tag, the WebCGM picture behaviors allow the specification of the new view to occur in a new window, to overwrite the whole contents of the source window, to overwrite the parent window, etc.
metadata
Non graphical information contained within or associated with standard graphical files, in WebCGM metadata supports such anciliary functions as hierarchical picture structuring, object identification and navigation, and association of application-specific non-graphical data with graphical objects.
fragment (URI fragment)
As standardized in RFC3986, the fragment is a part of a URI that is separated from the path/file name by a "#" character, and provides information that is reserved for processing by agents that are invoked by the browser to handle the resource information type of the URI. WebCGM standardizes the syntax and semantics of a URI fragment, for transmitting object and picture selection and behavior information to WebCGM viewers.
interactive region
the effective geometric region for the purposes of all interactive cursor and mouse operations, such as picking and mouseover. By default, the drawn graphical primitives of the object define the interactive region. For filled-area primitives this includes: the edge, if edge visibility is 'on'; the interior, if the interior style is other than 'empty' or 'hollow'; and, the boundary, for interior style 'hollow'. For all graphical primitive types, drawn graphical primitives exclude any that are fully transparent (so a fully transparent object is equivalent to an empty object, for purposes of interactive region definition). If the object contains a 'region' APS Attribute, then that region area is the interactive region.
target rectangle
A rectangular region around the target object(s) that is used for the application of object behaviors following hyperlink execution. The target region is defined by APS Attributes and/or target geometry, and for example provides the area to be encompassed by a zoomed view.
inheritance
The determination of values of APS Attributes and Style Properties for objects in the WebCGM hierarchical object tree, when all aspects have not been explicitly specified for all objects in the tree. WebCGM defines an inheritance model that is closely based on CSS (Cascading Style Sheets, a W3C Recommendation).
NS, namespace
A method devised and standardized by the XML Namespaces standard, namespace provides a way to distinguish to which specification and grammar elements and attributes belong, when information from distinct XML languages is mixed in the same document. WebCGM uses namespaces to separate standardized WebCGM XCF elements and attributes from embedded and intermingled application-specific metadata.


E. Change Log


This section is informative (non-normative).

Changes since OASIS-published first Committee Draft:


F. ECMAScript binding


[Ed. Better formatting is intended in next version...]

Prototype Object WebCGMException
    The WebCGMException class has the following constants:
        WebCGMException.INDEX_SIZE_ERR
            This constant is of type Number and its value is 1.
        WebCGMException.WEBCGMSTRING_SIZE_ERR
            This constant is of type Number and its value is 2.
        WebCGMException.INVALID_CHARACTER_ERR
            This constant is of type Number and its value is 3.
        WebCGMException.NO_DATA_ALLOWED_ERR
            This constant is of type Number and its value is 4.
        WebCGMException.NO_MODIFICATION_ALLOWED_ERR
            This constant is of type Number and its value is 5.
        WebCGMException.NOT_SUPPORTED_ERR
            This constant is of type Number and its value is 6.
        WebCGMException.INVALID_ACCESS_ERR
            This constant is of type Number and its value is 7.
        WebCGMException.FILE_NOT_FOUND_ERR
            This constant is of type Number and its value is 8.
        WebCGMException.FILE_INVALID_ERR
            This constant is of type Number and its value is 9.

Object WebCGMException
    The WebCGMException object has the following properties:
        code
            This property is of type Number.

Object GetWebCGMDocument
    The GetWebCGMDocument object has the following methods:
        getWebCGMDocument()
            This method returns a WebCGMMetafile.
    getAppName()
            This method returns a String.
    getAppVersion()
            This method returns a String.

Object WebCGMMetafile
    The WebCGMMetafile object has the following properties:
        metafileDescription
            This read-only property is of type String.
        firstPicture
            This read-only property is a WebCGMPicture object.
        metafileID
            This read-only property is of type String.
        metafileVersion
            This read-only property is of type Number.
        src
            This property is of type String.

    The WebCGMMetafile object has the following methods:
        addEventListener(type,listener);
            The type parameter is of type String.
            The listener parameter is a WebCGMEventListener object.
        removeEventListener(type,listener);
            The type parameter is of type String.
            The listener parameter is a WebCGMEventListener object.

Prototype Object WebCGMNode
    The WebCGMNode class has the following constants:
        WebCGMNode.PICTURE_NODE
            This constant is of type Number and its value is 1.
        WebCGMNode.APP_STRUCTURE_NODE
            This constant is of type Number and its value is 2.
        WebCGMNode.XML_METADATA_NODE
            This constant is of type Number and its value is 3.
        WebCGMNode.TEXT_NODE
            This constant is of type Number and its value is 4.
        WebCGMNode.ATTR_NODE
            This constant is of type Number and its value is 5.

Object WebCGMNode
    The WebCGMNode object has the following properties:
        nodeName
            This read-only property is of type String.
        nodeValue
            This read-only property is of type String, can raise a WebCGMException object on retrieval.
        nodeType
            This read-only property is of type Number.
        parentNode
            This read-only property is a WebCGMNode object.
        childNodes
            This read-only property is a WebCGMNodeList object.
        firstChild
            This read-only property is a WebCGMNode object.
        lastChild
            This read-only property is a WebCGMNode object.
        previousSibling
            This read-only property is a WebCGMNode object.
        nextSibling
            This read-only property is a WebCGMNode object.
        attributes
            This read-only property is a WebCGMNodeList object.
        ownerPicture
            This read-only property is a WebCGMPicture object.
        namespaceURI
            This read-only property is of type String.
        prefix
            This read-only property is of type String.
        localName
            This read-only property is of type String.

    The WebCGMNode object has the following methods:
        hasChildNodes()
            This method returns a Boolean.
        hasAttributes()
            This method returns a Boolean.
        getAttributeNS(namespaceURI, localName)
            This method returns a String.
            The namespaceURI parameter is of type String.
            The localName parameter is of type String.
        setAttributeNS(namespaceURI, qualifiedName, value)
            This method has no return value.
            The namespaceURI parameter is of type String.
            The qualifiedName parameter is of type String.
            The value parameter is of type String.
        getElementsByTagNameNS(namespaceURI, localName)
            This method returns a WebCGMNodeList object.
        The namespaceURI parameter is of type String.
            The localName parameter is of type String.

Object WebCGMPicture
    WebCGMPicture has all the properties and methods of the WebCGMNode object as well as the 
    properties and methods defined below.

    The WebCGMPicture object has the following properties:
        width
            This read-only property is of type Number.
        height
            This read-only property is of type Number.
        pictid
            This read-only property is of type String.

    The WebCGMPicture object has the following methods:
        applyCompanionFile(fileURI)
            This method returns a Boolean.
            The fileURI parameter is of type String.
        getAppStructureById(apsId)
            This method retuns a WebCGMNode.
            The apsId parameter is of type String.
        getAppStructuresByName(apsName)
            This method retuns a WebCGMNodeList.
            The apsName parameter is of type String.
        highlight(nodes,state)
            This method has no return value.
            The nodes parameter is WebCGMNodeList object.
            The state parameter is of type Boolean.
        setPictureVisibility(visibility)
            This method has no return value.
            The visibility parameter is of type String.
        setStyleProperty(style,value)
            This method has no return value.
            The style parameter is of type String.
            The value parameter is of type String.
        reloadPicture()
            This method has no return value.

Object WebCGMAppStructure
    WebCGMAppStructure has all the properties and methods of the WebCGMNode object as well as the 
    properties and methods defined below.

    The WebCGMAppStructure object has the following properties: 
        apsId
            This read-only property is of type String.
        nameCount
            This read-only property is of type Number.
        linkuriCount
            This read-only property is of type Number.

    The WebCGMAppStructure object has the following methods:
        getAppStructureAttr(name)
            This method returns a String.
            The name parameter is of type String.
        setAppStructureAttr(name,value)
            This method has no return value.
            The name parameter is of type String.
            The value parameter is of type String.
        removeAppStructureAttr(name)
            This method has no return value.
            The name parameter is of type String.
        setStyleProperty(style,value)
            This method has no return value.
            The style parameter is of type String.
            The value parameter is of type String.

Object WebCGMNodeList
    The WebCGMNodeList object has the following properties: 
        count
            This read-only property is of type Number.

    The WebCGMNodeList object has the following methods:
        item(index)
            This method returns a WebCGMNode object.
            The index parameter is of type Number.
        removeItem(index) // should this raise an exception?
            This method returns a WebCGMNode object.
            The index parameter is of type Number.
        appendItem(newItem) // should this raise an exception?
            This method returns a WebCGMNode object.
            The newItem parameter is of type String.


Object WebCGMAttr
    WebCGMAttr has all the properties and methods of the WebCGMNode object as well as the 
    properties and methods defined below.

    The WebCGMAttr object has the following properties: 
        name
            This read-only property is of type String.
        value
            This property is of type String.
        ownerNode
            This read-only property is a WebCGMNode object.

Object WebCGMEventListener
    This is an ECMAScript function reference. This method has no return value. The parameter 
    is a WebCGMEvent object.

Object WebCGMEvent
    The WebCGMEvent object has the following properties:
        type
            This read-only property is of type String.
        target
            This read-only property is a WebCGMNode object.
        button
            This read-only property is of type Number.
        numPressed
            This read-only property is of type Number.
        clientX
            This read-only property is of type Number.
        clientY
            This read-only property is of type Number.
        ctrlKey
            This read-only property is of type Boolean.
        shiftKey
            This read-only property is of type Boolean.
        altKey
            This read-only property is of type Boolean.
        metaKey
            This read-only property is of type Boolean.

    The WebCGMEvent object has the following methods:
        preventDefault()
            This method has no return value.

Back to top of appendixes