[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Changes to XCF chapters
Hi all, We have been talking about an XML companion file architecture for some time now. Dieter and I had the action item to write it up. We're aiming to have it done before the Munich meeting. Here's the first part... Given the spec is currently structured, we don't have "one" XML companion file chapter. So first things first, Section 5. WebCGM XML Companion File, needed more description. We have to provided detailed information on each elements and attributes, this is what I've tried to do here. There are two things that I haven't done in this section yet (I think they should go here), that is to explain why the DTD is flat, and to expand the explanation of the metadata extensions a bit. There was already something, but I think we should attempt to add some more and clarify. So here is my suggestion for our new Section 5. Lofton, please advise on how to proceed with the spec editing? --- The WebCGM XML Companion file is a new component of WebCGM, forecast in 1.0 and added in the 2.0 upgrade. The companion files may be used for several purposes; an XML companion file can be used as a scaled down XML representation of a CGM illustration by enumerating the Application Structures IDs, types and attributes; it can be used to bind application specific details (such as a part number) to a particular Application Structure; or alternatively, it could also be used with the WebCGM DOM, to update a CGM illustration (see section 6.3 Relationship with XML companion file for more information). There are certainly other conceivable usage scenarios, but for the scope of WebCGM 2.0, those three were identified as more important. In all cases, a base and generic DTD is required. The WebCGM XML Companion file DTD is designed as a generic structure that may allow certain aspects of the WebCGM file to be modified or added during the load and display of the CGM file. The WebCGM XML Companion file DTD is extensible so that industry specific metadata may be added to the WebCGM DOM. The extension definitions are implemented using namespaces. As an example, an industry of widgets makers may want to dynamically control stroke-weight style attribute of a grobject representing a widget based on an external attribute of the widget. This might be implemented with an extension that looks like: <!ENTITY % grobjectAttEXT "widget:linewt (regular | heavy) #IMPLIED > If the widget:linewt attribute were set to 'heavy' in the companion file instance, the widget application could query the CGM file using WebCGM DOM to determine the value of the attribute. It could then instruct the WebCGM viewer to increase the stroke weight of the lines in the associated grobject. 5.1 The 'webcgm' element A WebCGM companion file (or any other CGM profile derived from the WebCGM profile) must have a 'webcgm' element as the root element. <!ENTITY % webcgmEXT "" > <!ENTITY % webcgmAttEXT "" > <!ELEMENT webcgm ( (layer | grobject | para | subpara | bindById | bindByName)* %webcgmEXT; ) > <!ATTLIST webcgm id ID #IMPLIED version CDATA #REQUIRED filename CDATA #REQUIRED %webcgmAttEXT; > Attribute definitions: id="xml:id" Standard XML attribute for assigning a unique name to an element. Refer to the "Extensible Markup Language (XML) 1.0" Recommendation [XML10]. version="CDATA" Represents the metafile version of the WebCGM file identified by the 'filename' attribute. 'version' is a descriptive attribute. filename="CDATA" Represents the filename of the given WebCGM file. 'filename' is a descriptive attribute. 5.2 The 'layer' element The 'layer' element of an XML companion file represents an CGM Application Structure of type 'layer'. The corresponding 'layer' is identifiable given its assigned 'apsid' attribute value. <!ENTITY % layerEXT "" > <!ENTITY % layerAttEXT "" > <!ELEMENT layer %layerEXT; > <!ATTLIST layer apsid ID #REQUIRED layerdesc CDATA #IMPLIED visibility ( on | off ) #IMPLIED interactivity ( on | off ) #IMPLIED %layerAttEXT; > Attribute definitions: apsid="xml:id" The unique identifier of a 'layer' Application Structure for the given WebCGM file. layerdesc="CDATA" Value of the 'layerdesc' Application Structure attribute for this object. visibility="on|off" Value of the 'visibility' Application Structure attribute for this object. interactivity="on|off" Value of the 'interactivity' Application Structure attribute for this object. layerAttEXT="" An extensible metadata attribute for the 'layer' of unique ID 'apsid'. Metadata attributes such as 'layerAttEXT' have no visual impact on the object. The metadata attribute, if loaded into memory via a WebCGM DOM call, only has meaning the external application controlling the WebCGM illustration. 5.3 The 'grobject' element The 'grobject' element of an XML companion file represents an CGM Application Structure of type 'grobject'. The corresponding 'grobject' is identifiable given its assigned 'apsid' attribute value. <!ENTITY % grobjectEXT "" > <!ENTITY % grobjectAttEXT "" > <!ELEMENT grobject ( linkuri* %grobjectEXT; ) > <!ATTLIST grobject apsid ID #REQUIRED screentip CDATA #IMPLIED visibility ( on | off ) #IMPLIED interactivity ( on | off ) #IMPLIED %grobjectAttEXT; > Attribute definitions: apsid="xml:id" The unique identifier of a 'grobject' Application Structure for the given WebCGM file. screentip="CDATA" Value of the 'screentip' Application Structure attribute for this object. visibility="on|off" Value of the 'visibility' Application Structure attribute for this object. interactivity="on|off" Value of the 'interactivity' Application Structure attribute for this object. grobjectAttEXT="" An extensible metadata attribute for the 'grobject' of unique ID 'apsid'. Metadata attributes such as 'grobjectAttEXT' have no visual impact on the object. The metadata attribute, if loaded into memory via a WebCGM DOM call, only has meaning the external application controlling the WebCGM illustration. 5.4 The 'para' element The 'para' element of an XML companion file represents an CGM Application Structure of type 'para'. The corresponding 'para' is identifiable given its assigned 'apsid' attribute value. <!ENTITY % paraEXT "" > <!ENTITY % paraAttEXT "" > <!ELEMENT para ( linkuri* %paraEXT; ) > <!ATTLIST para apsid ID #REQUIRED screentip CDATA #IMPLIED visibility ( on | off ) #IMPLIED interactivity ( on | off ) #IMPLIED %paraAttEXT; > Attribute definitions: apsid="xml:id" The unique identifier of a 'para' Application Structure for the given WebCGM file. screentip="CDATA" Value of the 'screentip' Application Structure attribute for this object. visibility="on|off" Value of the 'visibility' Application Structure attribute for this object. interactivity="on|off" Value of the 'interactivity' Application Structure attribute for this object. paraAttEXT="" An extensible metadata attribute for the 'para' of unique ID 'apsid'. Metadata attributes such as 'paraAttEXT' have no visual impact on the object. The metadata attribute, if loaded into memory via a WebCGM DOM call, only has meaning the external application controlling the WebCGM illustration. 5.5 The 'subpara' element The 'subpara' element of an XML companion file represents an CGM Application Structure of type 'subpara'. The corresponding 'subpara' is identifiable given its assigned 'apsid' attribute value. <!ENTITY % subparaEXT "" > <!ENTITY % subparaAttEXT "" > <!ELEMENT subpara ( linkuri* %subparaEXT; ) > <!ATTLIST subpara apsid ID #REQUIRED screentip CDATA #IMPLIED visibility ( on | off ) #IMPLIED interactivity ( on | off ) #IMPLIED %subparaAttEXT; > Attribute definitions: apsid="xml:id" The unique identifier of a 'subpara' Application Structure for the given WebCGM file. screentip="CDATA" Value of the 'screentip' Application Structure attribute for this object. visibility="on|off" Value of the 'visibility' Application Structure attribute for this object. interactivity="on|off" Value of the 'interactivity' Application Structure attribute for this object. subparaAttEXT="" An extensible metadata attribute for the 'subpara' of unique ID 'apsid'. Metadata attributes such as 'subparaAttEXT' have no visual impact on the object. The metadata attribute, if loaded into memory via a WebCGM DOM call, only has meaning the external application controlling the WebCGM illustration. 5.6 The 'linkuri' element A 'linkuri' element of an XML companion file represents a WebCGM 'linkuri' Application Structure attribute. Contrary to other attributes, the 'linkuri' attribute is expressed as an element in the XML companion file. The corresponding Application Structure of this 'linkuri' is its parent element. <!ELEMENT linkuri EMPTY > <!ATTLIST linkuri uri CDATA #REQUIRED behavior CDATA #IMPLIED desc CDATA #IMPLIED > Attribute definitions: uri="CDATA" The href of this 'linkuri' attribute. See Section 6.4 Basic Data Types for more information. behavior="CDATA" The behavior of this 'linkuri' attribute. See Section 6.4 Basic Data Types for more information. desc="CDATA" The title or description of this 'linkuri' attribute. See Section 6.4 Basic Data Types for more information. 5.7 The 'bindByName' element A 'bindByName' element of an XML companion file is intended to correspond to one or more Application Structure in a CGM file. The common link between those Application Structures is that their 'name' or 'layername' attribute value corresponds to 'apstargetname'. See section 6.3 Relationship with XML companion file for more information on the rules of mapping 'bindByName' attributes to WebCGM Application Structures. <!ENTITY % bindByNameEXT "" > <!ENTITY % bindByNameAttEXT "" > <!ELEMENT bindByName ( linkuri* %bindByNameEXT; ) > <!ATTLIST bindByName apstargetname CDATA #REQUIRED screentip CDATA #IMPLIED layerdesc CDATA #IMPLIED visibility ( on | off ) #IMPLIED interactivity ( on | off ) #IMPLIED %bindByNameAttEXT; > Attribute definitions: apstargetname="CDATA" Name used to identify the corresponding Application Structure(s) for a given WebCGM file. screentip="CDATA" Value of the 'screentip' Application Structure attribute for this object. layerdesc="CDATA" Value of the 'layerdesc' Application Structure attribute for this object. visibility="on|off" Value of the 'visibility' Application Structure attribute for this object. interactivity="on|off" Value of the 'interactivity' Application Structure attribute for this object. bindByNameAttEXT="" An extensible metadata attribute for the Application Structure(s) which have a 'name' or 'layername' corresponding to 'apstargetname'. Metadata attributes such as 'bindByNameAttEXT' have no visual impact on the object. The metadata attribute, if loaded into memory via a WebCGM DOM call, only has meaning the external application controlling the WebCGM illustration. 5.8 The 'bindById' element The 'bindById' element of an XML companion file represents an CGM Application Structure of unknown type (some possibilities are: layer, grobject, para, subpara). The corresponding object is identifiable given its assigned 'apsid' attribute value. See section 6.3 Relationship with XML companion file for more information on the rules of mapping 'bindById' attributes to WebCGM Application Structures. <!ENTITY % bindByIdEXT "" > <!ENTITY % bindByIdAttEXT "" > <!ELEMENT bindById ( linkuri* %bindByIdEXT;) > <!ATTLIST bindById apsid ID #REQUIRED screentip CDATA #IMPLIED layerdesc CDATA #IMPLIED visibility ( on | off ) #IMPLIED interactivity ( on | off ) #IMPLIED %bindByIdAttEXT; > Attribute definitions: apsid="xml:id" The unique identifier of an Application Structure for the given WebCGM file. screentip="CDATA" Value of the 'screentip' Application Structure attribute for this object. layerdesc="CDATA" Value of the 'layerdesc' Application Structure attribute for this object. visibility="on|off" Value of the 'visibility' Application Structure attribute for this object. interactivity="on|off" Value of the 'interactivity' Application Structure attribute for this object. bindByIdAttEXT="" An extensible metadata attribute for the 'bindById' of unique ID 'apsid'. Metadata attributes such as 'bindByIdAttEXT' have no visual impact on the object. The metadata attribute, if loaded into memory via a WebCGM DOM call, only has meaning the external application controlling the WebCGM illustration. [We should probably insert the full DTD here.] -- Benoit mailto:benoit@itedo.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]