From ndw@nwalsh.com Tue Dec 22 12:44:43 1998 Date: Mon, 21 Dec 1998 15:57:39 -0500 From: Norman Walsh <ndw@nwalsh.com> To: davenport@berkshire.net Subject: DAVENPORT: Major additions planned for DocBook 3.1
Since the OASIS TC meeting in Chicago, the DocBook Technical Committee has been working hard to finalize DocBook 3.1. We expect it to be released in January.
Along with a number of smaller changes, DocBook 3.1 will introduce two new, substantial constructs: QAndASet and MediaObject.
In two following messages, I'll summarize the content models and semantics of QAndASet and MediaObject.
If you have comments, particularly if you think these elements fail to address your needs in these areas, please post them to the list.
Cheers, norm
P.S. These messages represent my views and not necessarily the views of the entire committee (I feel I have to say that since I'm about to head out of town and I wanted to post these to the public list before I went; the TC didn't get any previews ;-)
Norman Walsh <ndw@nwalsh.com> | Truth lies within a little http://nwalsh.com/ | uncertain compass, but error is | immense.
From ndw@nwalsh.com Tue Dec 22 12:44:51 1998 Date: Mon, 21 Dec 1998 15:58:31 -0500 From: Norman Walsh <ndw@nwalsh.com> To: davenport@berkshire.net Subject: DAVENPORT: DocBook 3.1: MediaObject
MediaObject addresses several needs:
In DocBook 3.1, MediaObject (or InlineMediaObject, as appropriate) is allowed anywhere Graphic (InlineGraphic) can occur. In DocBook _5.0_, we plan to remove Graphic and InlineGraphic.
The design goal was to provide the simplest mechanism that would offer the functionality. As additional needs are articulated, the model can be extended.
Generally, a MediaObject consists of at least one VideoObject, AudioObject, or ImageObject. It may also provide any number of alternative objects, including one or more TextObjects.
The intended semantic is that the _first_ element in a MediaObject is the preferred content source. If that source cannot be used, an alternative may be selected. Generally, alternatives are listed in priority order, but stylesheets are free to make other choices besides "the first one that could work".
Under no circumstances will more than one alternative in the MediaObject be presented simultaneously.
The TextObject has two forms, it can be a single Phrase (this would likely suitable for an ALT attribute, for example), or it can be any block of descriptive text desired.
<!ENTITY % local.mediaobject.mix ""> <!ENTITY % mediaobject.mix "VideoObject|AudioObject|ImageObject %local.mediaobject.mix"> <!ELEMENT MediaObject - - (ObjectInfo?, (%mediaobject.mix;), (%mediaobject.mix;|TextObject)*, Caption?)> <!ATTLIST MediaObject %common.attrib; %mediaobject.role.attrib; %local.mediaobject.attrib; > <!ELEMENT InlineMediaObject - - (ObjectInfo?, (%mediaobject.mix;), (%mediaobject.mix;|TextObject)*)> <!ATTLIST InlineMediaObject %common.attrib; %inlinemediaobject.role.attrib; %local.inlinemediaobject.attrib; > <!ELEMENT VideoObject - - (ObjectInfo?, VideoData)> <!ATTLIST VideoObject %common.attrib; %videoobject.role.attrib; %local.videoobject.attrib; > <!ELEMENT AudioObject - - (ObjectInfo?, AudioData)> <!ATTLIST AudioObject %common.attrib; %audioobject.role.attrib; %local.audioobject.attrib; > <!ELEMENT ImageObject - - (ObjectInfo?, ImageData)> <!ATTLIST ImageObject %common.attrib; %imageobject.role.attrib; %local.imageobject.attrib; > <!ELEMENT TextObject - - (ObjectInfo?, (Phrase|(%textobject.mix;)+))> <!ATTLIST TextObject %common.attrib; %textobject.role.attrib; %local.textobject.attrib; > <!ELEMENT ObjectInfo - - ((Graphic | MediaObject | LegalNotice | ModeSpec | SubjectSet | KeywordSet | ITermSet | %bibliocomponent.mix;)+) -(BeginPage)> <!ATTLIST ObjectInfo %common.attrib; %objectinfo.role.attrib; %local.objectinfo.attrib; > <!ENTITY % local.objectdata.attrib ""> <!ENTITY % objectdata.attrib " --EntityRef: Name of an external entity containing the content of the object data-- EntityRef ENTITY #IMPLIED --FileRef: Filename, qualified by a pathname if desired, designating the file containing the content of the object data-- FileRef CDATA #IMPLIED --Format: Notation of the element content, if any-- Format (%notation.class;) #IMPLIED --SrcCredit: Information about the source of the image-- SrcCredit CDATA #IMPLIED %local.objectdata.attrib;" > <!ELEMENT VideoData - O EMPTY> <!ATTLIST VideoData %common.attrib; %objectdata.attrib; --Width: Same as CALS reprowid (desired width)-- Width NUTOKEN #IMPLIED --Depth: Same as CALS reprodep (desired depth)-- Depth NUTOKEN #IMPLIED --Align: Same as CALS hplace with 'none' removed; #IMPLIED means application-specific-- Align (Left |Right |Center) #IMPLIED --Scale: Conflation of CALS hscale and vscale-- Scale NUMBER #IMPLIED --Scalefit: Same as CALS scalefit-- Scalefit %yesorno.attvals; #IMPLIED %videodata.role.attrib; %local.videodata.attrib; > <!ELEMENT AudioData - O EMPTY> <!ATTLIST AudioData %common.attrib; %objectdata.attrib; %local.audiodata.attrib; %audiodata.role.attrib; > <!ELEMENT ImageData - O EMPTY> <!ATTLIST ImageData %common.attrib; %objectdata.attrib; --Width: Same as CALS reprowid (desired width)-- Width NUTOKEN #IMPLIED --Depth: Same as CALS reprodep (desired depth)-- Depth NUTOKEN #IMPLIED --Align: Same as CALS hplace with 'none' removed; #IMPLIED means application-specific-- Align (Left |Right |Center) #IMPLIED --Scale: Conflation of CALS hscale and vscale-- Scale NUMBER #IMPLIED --Scalefit: Same as CALS scalefit-- Scalefit %yesorno.attvals; #IMPLIED %local.imagedata.attrib; %imagedata.role.attrib; > <!ELEMENT Caption - - (%textobject.mix;)*> <!ATTLIST Caption %common.attrib; %local.caption.attrib; %caption.role.attrib; > <!ELEMENT MediaObjectCO - - (ObjectInfo?, ImageObjectCO, (ImageObjectCO|TextObject)*)> <!ATTLIST MediaObjectCO %common.attrib; %mediaobjectco.role.attrib; %local.mediaobjectco.attrib; > <!ELEMENT ImageObjectCO - - (AreaSpec, ImageObject, CalloutList*)> <!ATTLIST ImageObjectCO %common.attrib; %imageobjectco.role.attrib; %local.imageobjectco.attrib; >
From ndw@nwalsh.com Tue Dec 22 12:44:55 1998 Date: Mon, 21 Dec 1998 15:58:12 -0500 From: Norman Walsh <ndw@nwalsh.com> To: davenport@berkshire.net Subject: DAVENPORT: DocBook 3.1: QAndASet
QAndASet provides a framework for sets of "Questions and Answers".
A QAndASet can be broken into QAndADivs (with titles). Each set (or division) contains one or more question/answer pairs. Questions are not required to have Answers. Answers can be broken down into subquestions and answers.
A label can be provided for each Question and Answer. Alternatively, "Q:"/"A:" or numbered questions can be specified.
The relevant content model pieces are:
<!ENTITY % local.qandaset.mix ""> <!ENTITY % qandaset.mix "%list.class; |%linespecific.class; |%synop.class; |%para.class; |%informal.class; |%formal.class; |Procedure |%genobj.class; %local.qandaset.mix;"> <!ELEMENT QandASet - - ((%formalobject.title.content;)?, (%qandaset.mix;)*, (QandADiv+|QandAEntry+))> <!ATTLIST QandASet DefaultLabel (qanda|number|none) #IMPLIED %common.attrib; %qandset.role.attrib; %local.qandset.attrib;> <!ELEMENT QandADiv - - ((%formalobject.title.content;)?, (%qandaset.mix;)*, (QandADiv+|QandAEntry+))> <!ATTLIST QandADiv %common.attrib; %qandadiv.role.attrib; %local.qandadiv.attrib;> <!ELEMENT QandAEntry - - (Question, Answer*)> <!ATTLIST QandAEntry %common.attrib; %qandaentry.role.attrib; %local.qandaentry.attrib;> <!ELEMENT Question - - (Label?, (%qandaset.mix;)+)> <!ATTLIST Question %common.attrib; %question.role.attrib; %local.question.attrib; > <!ELEMENT Answer - - (Label?, (%qandaset.mix;)*, QandAEntry*)> <!ATTLIST Answer %common.attrib; %answer.role.attrib; %local.answer.attrib; > <!ELEMENT Label - - (%word.char.mix)*> <!ATTLIST Label %common.attrib; %label.role.attrib; %local.label.attrib; >
[Note: See the Davenport Group web site.]