Print

Print


What about using a schema that combines the two schemas, like

<grammar
     xmlns="http://relaxng.org/ns/structure/1.0"
     xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
     datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
     <start>
         <choice>
          <externalRef 
href="http://www.tei-c.org/Vault/P5/1.7.0/xml/tei/custom/schema/relaxng/tei_all.rng"/>
          <externalRef 
href="https://subversion.le-tex.de/common/schema/tei-cssa/docbook-like-divs.rng"/>
         </choice>
     </start>
</grammar>

Note that you need to disable the ID/IDREF checking from 
Options->Preferences -- XML / XML Parser / RELAX NG because there are 
conflicting IDs defined.

Best Regards,
George
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 24/06/16 02:30, Imsieke, Gerrit, le-tex wrote:
> Hi Gioele,
>
> Neither an ODD nor a Schematron approach: You can use a second RNG
> schema. Here is a sample schema (that also serves as a blog post about
> this approach):
> https://subversion.le-tex.de/common/schema/tei-cssa/docbook-like-divs.rng
>
> I tried to prescribe div/@type attributes in such a way that the types
> correspond to DocBook element names, and the grammar is (roughly) the
> same as in DocBook. So you have parts or chapters in the body, prefaces
> and dedications in the frontmatter, etc.
>
> The nice thing is that you superimpose a bespoke grammar on an
> off-the-shelf TEI schema. An actual grammar refining an unaltered base
> schema, if that doesn’t sound compelling. You can’t do this with
> Schematron so handily.
>
> A sample document is here:
> https://gist.github.com/gimsieke/44748c504783590ef906c7dc0c2e268b
> If you open it in oXygen and add a type attribute to body/div, you will
> be presented with a choice of part and chapter.
> This is the good news.
> The bad news is that there will be no other completion hints than those
> from the epischema – unless you swap the xml-model PIs at the top, but
> then you’ll only have the default TEI vocabulary as suggestions.
> Maybe we can convince the oXygen people to restrict the autocomplete
> options to the intersection of the choices that all referenced schemas
> offer at a given location.
>
> Gerrit
>
> On 22.06.2016 18:14, Gioele Barabucci wrote:
>> Hello,
>>
>> in ODD, how can I change the constraints of the <div> elements that
>> appear in a certain position (e.g., /TEI/text/body) while using the
>> default definition for all the other elements?
>>
>> I could specify those constraints as a set of Schematron assertions, but
>> those would not be picked up by, for example, oXygen for the automatic
>> completion of element names and attribute values.
>>
>> In RelaxNG one can give two different definitions of <div>: one for
>> those elements appearing in a certain production, and another for all
>> the others contexts. Can the same thing be done in ODD?
>>
>> The use case for this request is that I would like <div>s in
>> /TEI/text/body to contain only few whitelisted elements, while allowing
>> <div> in other places (mainly the header) to be unconstrained.
>>
>> Note: Element names and element definitions are separate entities in
>> RelaxNG; in ODD it looks like element names and their definitions cannot
>> be separated (I suppose this has to do with DTD support). Probably this
>> means that what I am looking for cannot be done, but I think it is worth
>> asking anyway.
>>
>> Regards,
>>
>