Re: [xml-dev] XML Schema 1.0 and Relax NG Only Partially Support Context-Free Grammars

From
Michael Sokolov <>
To
Lauren Wood <>, "Costello, Roger L." <>
Date
2014-01-01T20:35:16Z
ID
<>
Thread
Re: [xml-dev] XML Schema 1.0 and Relax NG Only Partially Support Context-Free Grammars
You can also achieve something that enforces the ordering constraint as 
stated if you allow an intervening container element:

pub = ( book, pub-content?, magazine)
pub-content = element container { pub }
book = element Book { text }
magazine = element Magazine { text }
bookstore = element BookStore { pub }
start = bookstore

validates documents like:

<BookStore><Book/><container><Book/><Magazine/></container><Magazine/></BookStore>

-Mike

On 1/1/2014 1:33 PM, Lauren Wood wrote:
> Hi Roger,
>
> the sentence "BookStore must contain an equal number of Book and
> Magazine elements" can be validated, simply by rewording the
> constraints to "The content of BookStore shall be N pairs of elements,
> which each pair consists of one Book element followed by one Magazine
> element." Should you then require the elements in a different order,
> it should be a simple matter to transform the document to the required
> order.
>
> Is this not sufficient? In XML we have the power of XSLT and pipelines
> and in my opinion we should use them to break problems down into
> readily-solvable pieces whenever possible.
>
> regards,
>
> Lauren
>
>
> On Wed, Jan 1, 2014 at 9:39 AM, Costello, Roger L. <> wrote:
>> Hi Folks,
>>
>> Did you know that neither XML Schema 1.0 nor Relax NG has the power to express this very simple grammar:
>>
>>          The content of BookStore shall be N Book elements
>>          followed by N Magazine elements.
>>
>> That is, BookStore must contain an equal number of Book and Magazine elements.
>>
>> It's true.
>>
>> Neither XML Schema 1.0 nor Relax NG can express that basic context-free grammar.
>>
>> That's sad.
>>
>> More ... http://xfront.com/XML-Schema-1-0-and-Relax-NG-Partially-Support-Context-Free-Grammars.pdf
>>
>> /Roger
>>
>> _______________________________________________________________________
>>
>> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
>> to support XML implementation and development. To minimize
>> spam in the archives, you must subscribe before posting.
>>
>> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
>> Or unsubscribe: 
>> subscribe: 
>> List archive: http://lists.xml.org/archives/xml-dev/
>> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: 
> subscribe: 
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php