[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [dita] Proposal for Triage: RelaxNG for DITA Vocabulary
+1 for officially supporting RELAX NG schemas Jirka On 22.5.2012 23:06, Scott Hudson wrote: > I agree. This is extremely powerful. > > Eliot, I would be willing to help with any editorial work as well. > > Thanks and best regards, > > --Scott > > Scott Hudson | Pelco by Schneider Electric | United States | Standards Lead > Ph: +1-970-282-1952 | M: +1-720-663-7268 | Site: pdn.pelco.com | > scott.hudson@schneider-electric.com > > > > > > On 5/22/12 10:31 PM, "Eliot Kimber" <ekimber@rsicms.com> wrote: > >> George Bina from SynchroSoft (OxygenXML) has developed a technique and >> supporting software for using RelaxNG for defining DITA vocabulary modules. >> He has made this work available through the open-source dita-ng project: >> http://code.google.com/p/dita-ng/. This project provides a complete RelaxNG >> expression of the DITA 1.2 vocabulary and constraint modules and document >> type shells. >> >> George presented on his work at the DITA North America conference and those >> of us who saw it were very excited. >> >> To date, the main barrier to using RelaxNG for DITA vocabulary has been that >> RelaxNG did not have a built-in mechanism for defining default attribute >> values. This made it unsuitable for normal DITA use where we don't want the >> @class and @domains attribute explicit in our source documents. >> >> RelaxNG now has a companion specification that provides a way to define >> attribute defaults. George has implemented processing for this specification >> as an extension to the standard RelaxNG Java library (and has or will >> contribute that code back to the main projects). It works with any >> Java-based process that can add the necessarily libraries, including the >> DITA Open Toolkit. >> >> With the ability to define default attributes through RelaxNG, it now >> becomes possible to use RelaxNG with DITA documents just as you would DTDs >> or XSDs. >> >> That's useful in and of itself. >> >> But what really got us excited was the way that RelaxNG's design makes it >> about as easy as it could possibly be to do module integration and >> constraint. >> >> Here is the RelaxNG for the module inclusions for the topic document type >> shell >> >> <!-- Include modules --> >> <include href="../../base/rng/topic.mod.rng"> >> <!-- >> Redefine the infotype entity to exclude >> other topic types and disallow nesting >> --> >> <define name="topic-info-types"> >> <ref name="topic.element"/> >> </define> >> </include> >> <include href="../../base/rng/highlightDomain.mod.rng"/> >> <include href="../../base/rng/utilitiesDomain.mod.rng"/> >> <include href="../../base/rng/indexingDomain.mod.rng"/> >> <include href="../../base/rng/hazardstatementDomain.mod.rng"/> >> <include href="abbreviateDomain.mod.rng"/> >> <include href="uiDomain.mod.rng"/> >> <include href="programmingDomain.mod.rng"/> >> <include href="softwareDomain.mod.rng"/> >> >> >> That's it. Each module declares how it contributes itself to the larger >> whole like so: >> >> The @domains contribution: >> >> <define name="domains-atts-value" combine="choice"> >> <value>(topic abbrev-d)</value> >> </define> >> >> Content model extensions: >> >> <!-- Define domain extension patterns --> >> <define name="abbrev-d-term"> >> <ref name="abbreviated-form.element"/> >> </define> >> >> <!-- Extend the patterns with the domain contribution --> >> <define name="term" combine="choice"> >> <ref name="abbrev-d-term"/> >> </define> >> >> >> This is simply saying that the <term> element's content is extended by >> adding <abbreviated-form> as an additional choice. >> >> What this means in practice is that the integration of modules is done >> simply by referencing the modules you want--each module manages its own >> integration details. There is no separate integration configuration >> activity. >> >> This makes RelaxNG very attractive as the primary form of vocabulary >> definition *as long as* one can then reliably generate the DTD and XSD >> versions of the vocabulary. George is working on implementing that process >> now and I will probably do some work on it as well. >> >> Personally, I'm very excited about this because it gives me the potential to >> greatly simplify the task of defining and maintaining large vocabulary sets, >> such as DITA for Publishers and allows the easy provisioning of both DTD and >> XSD forms. >> >> RelaxNG also provides for embedding Schematron rules directly in the RelaxNG >> documents, meaning that a single document can define both the base XML rules >> and additional rules checkable through Schematron processing (this is also >> possible in XSD 1.1 with its new "assertion" feature, but support for XSD >> 1.1 is still not universal). >> >> RelaxNG also provides for embedded documentation (similar to how you can do >> it in XSD). >> >> Even if you never used the RelaxNG modules directly with documents, they >> would have tremendous value as the development source for the working >> modules. >> >> Given all that, I would like to propose the inclusion of RelaxNG as a >> recognized DITA schema language in addition to DTD and XSD. I am more than >> willing to act as champion for this proposal and do the editorial work. >> >> Cheers, >> >> Eliot >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dita-unsubscribe@lists.oasis-open.org > For additional commands, e-mail: dita-help@lists.oasis-open.org > -- ------------------------------------------------------------------ Jirka Kosek e-mail: jirka@kosek.cz http://xmlguru.cz ------------------------------------------------------------------ Professional XML consulting and training services DocBook customization, custom XSLT/XSL-FO document processing ------------------------------------------------------------------ OASIS DocBook TC member, W3C Invited Expert, ISO JTC1/SC34 member ------------------------------------------------------------------
Attachment:
signature.asc
Description: OpenPGP digital signature
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]