>>> Peter Flynn<peter.no-> 8/6/2004 9:03:24 PM >>>
> I haven't seen your post in c.t.x.
I had posted, but no-one had responded, and over the past couple of years
I've seen increasingly
fewer discussions of a less directly code-oriented problem.
Thank you for the points. To clarify a little, the company has it's own
proprietory application
for documenting the classes. This tool behaves like a combination database,
configuration management
system and editing environment. The XML instances have no other function
than documentation,
so I think all your comments are valid and were much as I expected, it's
just nice to have them
confirmed by someone more knowledgeable than I.
> 1. XML systems already provide for inheritance by way of descent, so
> imposing it via namespaces is singularly pointless.
I wondered about this one. Just for discussion, consider this:
<elementA>
<name></name>
</elementA>
or
<elementA>
<A:name></A:name>
</elementA>
almost every elementN has a name element, but the namespace usage does make
it easier to address the element uniquely ... but on the other hand, I can't
write a generic
name rule and have to create a separate rule for each N:name element. Seems
a bit
like swings and roundabouts to me.
> 2. Namespaces provide a convenient way of attributing ownership of a
> data structure: in this case they appear to do nothing of the sort
> (although those acronyms may perhaps have a hidden meaning).
The acronyms are simply an abbreviation of the parent element name.
> 4. Short element type names were fine in the days of SGML when files were
> punched onto cards and keystroke minimisation was important. The XML
> Spec, however, makes it clear that terseness is of minimal importance.
> I read this to mean that descriptive names have a semantic value which
> outstrips their length.
I abbreviated some of the element names myself to make the example a bit
more compact.
This is a more complete fragment:
<ET:ExportType
xmlns:EAE="EAE"
xmlns:EAEE="EAEE"
xmlns:EC="EC"
xmlns:EF="EF"
xmlns:EME="EME"
xmlns:EMEE="EMEE"
xmlns:EMEPV="EMEPV"
xmlns:EP="EP"
xmlns:EPA="EPA"
xmlns:EPR="EPR"
xmlns:ET="ET"
xmlns:ETE="ETE"
xmlns:ExportActionElementArgument="ExportActionEle mentArgument"
Key="954_0_168798">
<ET:Name>Calendar</ET:Name>
<ET

escription></ET

escription>
<ET:Hyperlink></ET:Hyperlink>
<ET:Kind>Logic</ET:Kind>
<ET

arentName>Object</ET

arentName>
<ET:LastChangedVersion>3.2</ET:LastChangedVersion>
<ET:LastChanged>0001-01-01T00:00:00.000</ET:LastChanged>
<ET:LastDelivered>0001-01-01T00:00:00.000</ET:LastDelivered>
<ET:LastDocumented>0001-01-01T00:00:00.000</ET:LastDocumented>
<ET:LastImported>2004-05-05T18:45:23.000</ET:LastImported>
<ET:ExportMoment>2004-05-12T17:24:37.000</ET:ExportMoment>
<ET:ExportComponent>
<EC:ExportComponent Key="954_0_168799">
<EC:Hyperlink></EC:Hyperlink>
<EC:Name>Calendar</EC:Name>
</EC:ExportComponent>
</ET:ExportComponent>
<ET:ExportFunctionality>
</ET:ExportFunctionality>
<ET:ExportTypeExample>
</ET:ExportTypeExample>
<ET:ExportModelElement>
<EME:ExportModelElement Key="954_0_168800">
<EME:Kind>Attribute</EME:Kind>
<EME

escription></EME

escription>
<EME:IsReadOnly>true</EME:IsReadOnly>
<EME:Name>CalendarDirty</EME:Name>
<EME:TypeName>Boolean</EME:TypeName>
<EME:ExportModelElementPossibleValue>
</EME:ExportModelElementPossibleValue>
<EME:ExportModelElementExample>
</EME:ExportModelElementExample>
</EME:ExportModelElement>
</EME:ExportModelElement>
<EME:ExportModelElement Key="954_0_168806">
<EME:Kind>Attribute</EME:Kind>
<EME

escription></EME

escription>
<EME:IsReadOnly>false</EME:IsReadOnly>
<EME:Name>UpdateInterval</EME:Name>
<EME:TypeName>Duration</EME:TypeName>
<EME:ExportModelElementPossibleValue>
</EME:ExportModelElementPossibleValue>
<EME:ExportModelElementExample>
</EME:ExportModelElementExample>
</EME:ExportModelElement>
</ET:ExportModelElement>
etc.
> 5. If you are documenting computer procedures, then use DocBook. It was
> written specifically to do exactly that. It's not perfect, but it's
> very good, reliable, stable, well-supported, and easy to use.
True, with reservations. In this instance I am only providing a quick way
to provide navigable C++ code (the guys rejected the conventional 'doxygen'
embedded comment approach).
> Convert your existing instances into DocBook and retrain your authors
> to use it -- there are copious amounts of software, stylesheets and
> support available. Then if your colleague insists on retaining the
> above format for some exogenous reason, write an XSLT transformation
> to output it.
I'm not really interested in text documents. With all due credit to Norm,
docbook
would be complete overkill for this application. The effort of tailoring
docbook to
give me what I want and then writing an XSLT transform would be orders of
magnitude greater than the 2 days it's taken me so far. I've tool-generated
a
schema that gives me enough validation to confirm that the input code is
consistent
and that's all I need.
There are no static instances as such. As the classes change (often) I can
export
a new set of XML data, pump them through my XSLT transform and then use the
HTML
code in RoboHelp. The authors (me and the developers) simply see ascii text
in fields
in a GUI. No human is every going to write or edit the code. I'm the only
one who really
gets to see the XML code, and I'm the only one who really does anything with
it.
I'm the sole writer here too.
Thanks for the fuel,
Simon North
Quintiq Application Software BV
's Hertogenbosch, The Netherlands