OLE Automation and DSSSL

Subject: OLE Automation and DSSSL
From: Jean-Xavier LOTTHE <mg068-3@xxxxxxxxxxxxxxx>
Date: Thu, 12 Jun 1997 16:06:20 +0000
A.S.: Attached is a raw listing of all the objects
        with their properties/methods available
        in the GroveBuilder from Jade 0.8.


I first discovered Jade some weeks ago. Since then I'm swimming in the
delights of learning yet another programming language.

I rapidly got lost with lambda expressions, side effects, lazy evaluation,
recursivity and the like. I guess it happens to all newcomers, so I put all
my brain's little grey cells at work and tried to figure out where this all
was leading to. I somehow made my way between nodes and formatting
instructions and came out with a restricted but enthusiastic intuition of
how DSSSL worked.

Then James made the GroveBuilder accessible through OLE Automation (many
thanks again James !). Whereas I am now in the position of working on my
Sgml documents with Visual Basic, which makes the debugging faster, I seem
to have lost the backend facilities.

Then an idea struck my already impoverished cerebrum (stroked my cerebrum,
actually): Would it be possible to combine OLE Automation and DSSSL ? 

Let's take a short example:
I have a Sgml document which is composed of several articles' abstract.
Along with each abstract come the title, author's name and keyterms.
I would like to get the list of all:
        - the titles,
        - the keyterms,
        - the authors.

I would like those lists to appear in three different dropdown lists.
Selecting an item in one of these lists would make the corresponding
abstract(s) appear in a text box.

So far, the user interface can rapidly be built with Visual Basic, thanks to
GroveBuilder and OLE.

What if I now want to consistently format all the abstract's information
(bold titles, italic keyterms paragraph indents and so on) in my text box ?
I would like to make use of some DSSSL instructions, without having either
to launch Jade in a command line background or to write a comprehensive
DSSSL file for the whole document.

In other words, I would like to apply a sequence of process specification on
an already identified node. 

Something looking like this:
WITH node DO format USING "abstract.dsl" OUTPUT AS "rtf"

Using DSSSL would allow, among other things, to take advantage of the lazy
implementation, to benefit from already developped Jade's backends and to
have some specialised "black box" ready-to-use routines.


Has this idea already been discussed ? More important: Is this idea of any
interest to any member of this list ?



Wishing secretly the answer could be 'Yes !',

Xavier
AttributeAssignementNode
	- Children
	- ChunkChildren
	- ChunkValue
	- Class
	- FirstChild
	- GroveRoot
	- Implied
	- Name
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- StringValue
	- TokenSep
	- TreeRoot
	- Value
AttributeValueTokenNode
	- Children
	- ChunkChildren
	- Class
	- Entity
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Notation
	- Origin
	- Parent
	- Referent
	- SiblingIndex
	- StoragePos
	- Token
	- TreeRoot
DataCharNode
	- Char
	- CharChunk
	- Children
	- ChunkChildren
	- Class
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- NonSgml
	- Origin
	- Parent
	- SiblingIndex
	- SiblingIndex
	- StoragePos
	- TreeRoot
DocumentNodeType
	- Children
	- ChunkChildren
	- Class
	- FirstChild
	- GeneralEntities
	- Governing
	- GroveRoot
	- Name
	- NextChunkSibling
	- NextSibling
	- Notations
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
ElementNode
	- Attributes
	- Children
	- ChunkChildren
	- ChunkContent
	- Class
	- Content
	- FirstChild
	- Gi
	- GroveRoot
	- id
	- Included
	- MustOmitEndTag
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
EntityNode
	- Attributes
	- Children
	- ChunkChildren
	- Class
	- Defaulted
	- EntityType
	- ExternalId
	- FirstChild
	- GroveRoot
	- Name
	- NextChunkSibling
	- NextSibling
	- Notation
	- NotationName
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- Text
	- TextNull
	- TreeRoot
EntityType
	- entityTypeCdata
	- entityTypeNdata
	- entityTypePi
	- entityTypeSdata
	- entityTypeSubdocument
	- entityTypeText
ErrorType
	- errorAfdr
	- errorIdref
	- errorLpdNotation
	- errorSignificant
	- errorValid
ExternalDataNode
	- Children
	- ChunkChildren
	- Class
	- Entity
	- EntityName
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
ExternalNode
	- Children
	- ChunkChildren
	- Class
	- FirstChild
	- GeneratedSystemId
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- PublicId
	- PublicIdNull
	- SiblingIndex
	- StoragePos
	- SystemId
	- SystemIdNull
	- TreeRoot
GroveBuilder
	- DefaultCatalogs
	- DefaultDirectories
	- DefaultEncoding
	- Encoding
	- Error(type:=)
	- ExtraCatalogs
	- ExtraDirectories
	- Includes
	- parse(SystemId:=)
	- ValidateOnly
	- Warning(type:=)
MessageNode
	- Children
	- ChunkChildren
	- Class
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- Severity
	- SiblingIndex
	- StoragePos
	- Text
	- TreeRoot
NamedNodeList
	- Count
	- Item(nodeName:=)
	- NodeList
	- nodeName(__MIDL_0092:=)
	- Normalize(nodeName:=)
Node
	- Children
	- ChunkChildren
	- Class
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
NodeClass
	- nodeClassAttributeAssignment
	- nodeClassAttributeValueToken
	- nodeClassDataChar
	- nodeClassDocumentType
	- nodeClassElement
	- nodeClassEntity
	- nodeClassExternalData
	- nodeClassExternalId
	- nodeClassMessage
	- nodeClassNotation
	- nodeClassPi
	- nodeClassSdata
	- nodeClassSgmlConstants
	- nodeClassSgmlDocument
	- nodeClassSubdoc
NodeList
	- Count
	- First
	- Item(index:=)
	- Rest
NotationNode
	- Children
	- ChunkChildren
	- Class
	- ExternalId
	- FirstChild
	- GroveRoot
	- Name
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
PiNode
	- Children
	- ChunkChildren
	- Class
	- Entity
	- EntityName
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- SystemData
	- TreeRoot
SdataNode
	- Children
	- ChunkChildren
	- Class
	- Entity
	- EntityName
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- SystemData
	- TreeRoot
Severity
	- severityError
	- severityInfo
	- severityWarning
SgmlConstantsNode
	- Children
	- ChunkChildren
	- Class
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
SgmlDocumentNode
	- ApplicationInfo
	- ApplicationInfoNull
	- Children
	- ChunkChildren
	- Class
	- DefaultedEntities
	- DoctypesAndLinktypes
	- DocumentElement
	- Elements
	- Entities
	- Epilog
	- FirstChild
	- GoverningDoctype
	- GroveRoot
	- Messages
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- Prolog
	- SgmlConstants
	- SiblingIndex
	- StoragePos
	- TreeRoot
StoragePos
	- ByteIndex
	- CharacterIndex
	- ColumnNumber
	- LineNumber
	- StorageManagerName
	- StorageObjectId
SubdocNode
	- Children
	- ChunkChildren
	- Class
	- Entity
	- EntityName
	- FirstChild
	- GroveRoot
	- NextChunkSibling
	- NextSibling
	- Origin
	- Parent
	- SiblingIndex
	- StoragePos
	- TreeRoot
WarningType
	- warningDefaultEntityReference
	- warningDuplicateEntity
	- warningEmptyTag
	- warningMixedContent
	- warningNet
	- warningNotationSystemId
	- warningSgmlDecl
	- warningShould
	- warningUnclosedTag
	- warningUndefinedElement
	- warningUnusedMap
	- warningUnusedParam
Current Thread