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: [dita] While is info-types The Way It Is?

Michael Priestley wrote:
> Re:
>  >What is the justification for having this shared parameter entity name
>  >(info-types) and why can't we define topic-specific parameter entities
>  >that allow us to have a single conherent set of declarations that
>  >encompasses all of the topic element types?
> The idea is to provide control over how a particular doctype allows 
> nesting of different topic types:

> - If you just want a general bucket that allows any type as root and any 
> type nesting, you can use <dita> as a containing element, and list all 
> the valid structural types in the info-types entity.
> - If you want specific control (like concept only concepts, or concept 
> and task can nest reference but not vice versa) then you can set the 
> type-specific entities (like concept-info-types).

But that doesn't answer my question about why you need *one* parameter 
entity that leads to this syntactic conflict. Why not just have five, 
one for each DITA-defined topic type? It's not like the convenience 
provided is so overwhelming that without it people would be unable to 
manage the declarations.

> There is every possibility for a dozen different doctypes all using 
> <concept> as the root, and all allowing different nesting rules (as well 
> as combinations of included domains).

So what? That's not the point of my question: the point of my question 
is why are the declarations *as provided* defined in such a way that it 
is impossible to have what would otherwise be easy and natural: a single 
set of declarations that provide all the DITA-defined topic elements.

That is, there's no reason that every unspecialized DITA topic document 
couldn't have *exactly the same external identifier* regardless of what 
it's root element type is. The *only* reason is because of the use of 
the shared info-types parameter entity.

> Right now we don't have a meaningful way to communicate the nesting 
> rules to non-doctype-aware processes, the way we do with domain 
> inclusion. Since the main focus in DITA is on the topic, and nesting 
> rules are at a higher level, I don't think it's a huge problem, but it 
> is something we should probably look at for 1.2.

This can only be an authoring issue, right? Any generic DITA processor 
has to already handle the case of any topic type within any other topic 
type (since that's what the ditabase declarations allow) so why would 
knowing what the local constraints are matter to them at all?

 From an authoring standpoint, anybody doing non-schema-aware authoring 
is already in a world of pain we can't help them with so it's not worth 
worrying about.

If you're building a processor specifically for your locally-specialized 
DITA document type then you know what the nesting rules are (because 
it's your document type and you can just look at the declarations to see 
what the rules are) and even there the only reason to care would be to 
validate violations of the rules, which could only happen if somebody 
were violating the schema while creating documents....

If it's a question of what's allowed to be done via maps, that's another 
issue entirely and I don't think that defining nesting constraints on 
topic elements would be the solution there anyway. Rather it would 
probably make sense to allow topicref to declare what its reference type 
constraints are, which would then let you use specialized topicref 
elements to control what kinds of topics could be referenced from which 
contexts within a map.


W. Eliot Kimber
Professional Services
Innodata Isogen
8500 N. Mopac, Suite 402
Austin, TX 78759
(214) 954-5198


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