OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: Key precedence, binding of controlled values, and subjectScheme

My take ...

For question #1 - I think the duplicate key is ignored, and that your
understanding is correct. Where is that example today in the spec?

For question #2 - I think the goal there is to extend the values, rather
than to override. The idea of a baseScheme pulled in with <schemeref> is
that the baseScheme supplies a core set of value, and the local scheme
extends it with local values (rather than changing it). I haven't done a
deep read of this scenario in the spec lately, but it seems to be backed up
by the definition of <schemeref>:
Typically, the referenced scheme defines a base set of controlled values
extended by the current scheme. The values in the referenced scheme are
merged with the current scheme; the result is equivalent to specifying all
of the values in a single map.

That said, the examples in the spec show extending a category already
associated with @platform, rather than defining a second set of values
associated with @platform, so I don't think your exact example is covered
today (at least in the examples I found in a quick check).

Robert D Anderson
IBM Authoring Tools Development
Chief Architect, DITA Open Toolkit (http://dita-ot.sourceforge.net/)

From:	Kristen James Eberlein <kris@eberleinconsulting.com>
To:	DITA TC <dita@lists.oasis-open.org>,
Cc:	Eliot Kimber <ekimber@reallysi.com>, Robert D
Date:	03/07/2013 14:34
Subject:	Key precedence, binding of controlled values, and subjectScheme

As I work through the subjectScheme topics, I've developed the following

1) In the following scenario, what happens to the subject definition with a
duplicate key? Is it ignored and thus the subject definitions that it
contains are also ignored?

  <subjectdef keys="os">
    <subjectdef keys="solaris"/>
    <subjectdef keys="hpunix"/>
   . . .
  <subjectdef keys="os">
    <subjectdef keys="linux"/>
    <subjectdef keys="mswin"/>
    <subjectdef keys="zos"/>

We essentially have this code example in the spec. I would have assumed
that the 2nd subject definition would need to reference the os subject by
the @keyref attribute in order to merge additional subjects ...

2) What about the following situation? Is the 2nd binding of the @platform
attribute ignored, or does it override the binding in the base scheme?

Here is the contents of baseScheme.ditamap, which defines the os subject
and binds its values to the @platform attribute:

  <subjectdef keys="os" navtitle="Operating system">
    <subjectdef keys="linux" navtitle="Linux">
      <subjectdef keys="redhat" navtitle="RedHat Linux"/>
      <subjectdef keys="suse"   navtitle="SuSE Linux"/>
    <subjectdef keys="mswin" navtitle="Windows"/>
    <subjectdef keys="zos"   navtitle="z/OS"/>
    <attributedef name="platform"/>
    <subjectdef keyref="os"/>

Another subjectScheme map contains the following content:

  <schemeref href="baseScheme.ditamap"/>
  . . .
 <subjectdef keys="app" navtitle="Applications">
      <subjectdef keys="apacheserv" navtitle="Apache Web Server"/>
      <subjectdef keys="mysql"      navtitle="MySQL Database"/>
  . . .
    <attributedef name="platform"/>
    <subjectdef keyref="app"/>


Kristen James Eberlein
Principal consultant, Eberlein Consulting
Co-chair, OASIS DITA Technical Committee
Charter member, OASIS DITA Adoption Committee
+1 919 682-2290; kriseberlein (skype)

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]