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

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-comment message

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


Subject: Re: [office-comment] Ambiguity problems caused by ID/IDREF


Hi Murata-san,

Alex Brown suggested the following:

"In fact I think that (ideally) the schema should be re-written so that
its dependency on DTD-compatibility features is removed, and the
standard can then remove the reference to this troublesome spec."

and

"Personally, I would remove all the XSD datatyping from the ODF schema
too so that the schema became "pure" 19757-2"

Do you agree with his assessment? 

-Rob


"MURATA Makoto (FAMILY Given)" <eb2m-mrt@asahi-net.or.jp> wrote on 
05/11/2008 10:29:03 AM:

> Dear colleagues,
> 
> The RNG schema for ODF 1.0 is "correct" (as defined in ISO/IEC
> 197575-2), but is it not compatible (as defined in  "RELAX NG DTD
> Compatibility"), as Alex correctly pointed out.
> 
> For example, consider the form:id attribute.  It is defined as
> ID. After schema normalization (as defined in ISO/IEC 197575-2), this
> attribute will occur in the define element for <form:text>. That
> define element competes with the definition of anyElements.  However,
> the definition of anyElements does not specify the attribute form:id
> as an ID.  Therefore, the condition in the last bullet of the first
> itemized list of Section 3 of "RELAX NG DTD Compatibility" is not
> satisfied.
> 
> One way to solve this problem is to replace
> 
> mathMarkup =
>   (attribute * { text }
>    | text
>    | element * { mathMarkup })*
> 
> 
> by 
> 
> mathMarkup =
>   (attribute * -  (anim:id
>               | draw:control
>               | draw:end-shape
>               | draw:id
>               | draw:shape-id
>               | draw:start-shape
>               | form:id
>               | presentation:master-element
>               | smil:targetElement
>               | text:change-id
>               | text:id)  { text }
>    | attribute anim:id { ID }
>    | attribute draw:control { IDREF }
>    | attribute draw:end-shape { IDREF }
>    | attribute draw:id { ID }
>    | attribute draw:shape-id { IDREF }
>    | attribute draw:start-shape { IDREF }
>    | attribute form:id { ID }
>    | attribute presentation:master-element { IDREF }
>    | attribute smil:targetElement { IDREF }
>    | attribute text:change-id { IDREF }
>    | attribute text:id { ID }
>    | text
>    | element * { mathMarkup })*
> 
> and replace 
> 
> anyAttListOrElements =
>   attribute * { text }*,
>   anyElements
> 
> by
> 
> anyAttListOrElements =
>   attribute * -  (anim:id
>       | draw:control
>       | draw:end-shape
>       | draw:id
>       | draw:shape-id
>       | draw:start-shape
>       | form:id
>       | presentation:master-element
>       | smil:targetElement
>       | text:change-id
>       | text:id) { text }*,
>   (attribute anim:id { ID }
>    | attribute draw:control { IDREF }
>    | attribute draw:end-shape { IDREF }
>    | attribute draw:id { ID }
>    | attribute draw:shape-id { IDREF }
>    | attribute draw:start-shape { IDREF }
>    | attribute form:id { ID }
>    | attribute presentation:master-element { IDREF }
>    | attribute smil:targetElement { IDREF }
>    | attribute text:change-id { IDREF }
>    | attribute text:id { ID })*,
>   anyElements
> 
> After this change, jing does not complain.  (But remember that jing
> does not check a:defaultValue.)
> 
> You might want to be more specific.  For example, the definition of
> mathMarkup can be:
> 
> mathMarkup =
>   attribute local:*  { text }
>    | attribute xlink:href { text }
>    | attribute xlink:type { text }
>    | text
>    | element mml:* { mathMarkup })*
> 
> where 
> 
> namespace local = ""
> namespace mml = "http://www.w3.org/1998/Math/MathML";
> 


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