- From: Joseph Reagle <reagle@w3.org>
- Date: Mon, 15 Jul 2002 16:45:49 -0400
- To: jjc@jclark.com
- Cc: www-archive@w3.org, relax-ng-comment@lists.oasis-open.org
- Message-Id: <200207151645.49876.reagle@w3.org>
I've fixed the errors below and a number of other stupid mistakes. These mistakes result from the way I'm used to thinking about schema whereby in order to make an element and its type re-usable, I defined an element name *and* its type as seperate global definitions. In RelaxNG, the examples I read typically include element name is part of its definition... For example, ...<ref name="AddressBook"/> <define name="AddressBook"> <element name="addressBook"> <zeroOrMore> <ref name="Card"/> </zeroOrMore> </element> </define> whereas I'm partially emulating my schema approach: <element name="addressBook"><ref name="AddressBook"/></element> <define name="AddressBook"> <zeroOrMore> <ref name="Card"/> </zeroOrMore> </define> and this resulted in some confusion for me, which has now been remedied. (Of course, doing a relaxNG without concern about schema would be more straightforward...) Next step: have the xenc rng borrow from the xmldsig rng! <smile/> On Wednesday 10 July 2002 04:52 pm, Joseph Reagle wrote: > I'm now trying to transliterate the XSD to RNG, and have made decent > progress so far, but have run into two errors with the attached rng I > don't understand. > > "file:/home/reagle/data/2web/WWW/Signature/Drafts/xmldsig-core/xdsig-sche >ma.rng", line number 40: duplicate attribute > > I know one or both of the two are guilty, but I don't see what's wrong > with them: > <element name='CanonicalizationMethod'> > <ref name='CanonicalizationMethodType'/> > </element> > <element name='SignatureMethod'> > <ref name='SignatureMethodType'/> > </element> > > > "file:/home/reagle/data/2web/WWW/Signature/Drafts/xmldsig-core/xdsig-sche >ma.rng", line number 100: both operands of "interleave" contain "text" > Error at URL > > And I'm not sure what's wrong with this either. I'm emulating a schema > strategy, should I instead use a <interleave> with every element a child > of <zeroOrMore>? (That wouldn't quite do it as I definitely want *one* of > something, other than that it can be any of these things, one or more > times, in any order.) > <define name='KeyInfoType'> > <oneOrMore> > <choice> > <element name='KeyName'><data type='string'/></element> > <element name='KeyValue'><ref name='KeyValueType'/></element> > <element name='RetrievalMethod'> > <ref name='RetrievalMethodType'/> > </element> > <element name='X509Data'><ref name='X509DataType'/></element> > <element name='PGPData'><ref name='PGPDataType'/></element> > <element name='SPKIData'><ref name='SPKIDataType'/></element> > <element name='MgmtData'><data type='string'/></element> > <optional><attribute name='Id'> > <data type='ID'/></attribute> > </optional> > </choice> > </oneOrMore> > </define>
Attachments
- text/xml attachment: xdsig-schema.rng
Received on Monday, 15 July 2002 16:45:53 UTC