- From: Joseph Reagle <reagle@w3.org>
- Date: Fri, 29 Mar 2002 11:32:34 -0500
- To: relax-ng-comment@lists.oasis-open.org
- Cc: www-archive@w3.org
Hello, I have some silly newbie questions about Relax NG -- I'm documenting these for myself as much as asking the question. (Is this the appropriate list, is there a relax-ng-dev forum?) Given the incomplete rng below: 1. The *only* thing I've discovered that I don't like in rng so far is that it is "vertically verbose." Are there any conventions for trying to make the presentation a bit more compact and vertically "striped". I can take in a lot more information with my (admittedly more practiced) schema eye than in a couple of pages of rng. I tried to do it in the EncryptedKey below, but it's probably not a good idea and the word wrapping will make it a confused mess in email. 2. In schema, I made most every structure a global type to aid in its reuse. While I plan emulating the same for EncryptedType (as an abstract type) in rng because the EncryptedData and EnryptedKey genuinely share a lot of structure, I don't think all of those other intermediate types [1] will be necessary in rng. [1] http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd 3. Since so many of my elements and attributes are optional (and this leads to the vertical verbosity) is there a means to say "all patterns in this sequence are optional"? (I don't want to say the whole sequence is optional.) <?xml version="1.0" encoding="UTF-8"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:ds='http://www.w3.org/2000/09/xmldsig#' ns="http://www.w3.org/2001/04/xmlenc#" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <choice> <ref name="EncryptedData"/> <ref name="EncryptedKey"/> </choice> <define name="EncryptedData"> <ref name="EncryptedType"/> </define> <define name="EncryptedKey"> <ref name="EncryptedType"/> <optional><ref name='xenc:ReferenceList' minOccurs='0'/></optional> <optional><element name='CarriedKeyName'><data type="string"/></element></optional> <optional><attribute name='Recipient'> <data type="string"/></attribute></optional> </define> <define name="EncryptedType"> <ref name="EncryptionMethod"/> <optional> <ref name="ds:KeyInfo"/> </optional> <optional> <ref name="CipherData"/> </optional> <optional> <ref name="EncryptionProperties"/> </optional> <optional> <ref name="EncryptionProperties"/> </optional> <optional> <attribute name="ID"> <data type="ID"/> </attribute> </optional> <optional> <attribute name="Type"> <data type="anyURI"/> </attribute> </optional> <optional> <attribute name="MimeType"> <data type="string"/> </attribute> </optional> <optional> <attribute name="Encoding"> <data type="anyURI"/> </attribute> </optional> </define> -- Joseph Reagle Jr. http://www.w3.org/People/Reagle/ W3C Policy Analyst mailto:reagle@w3.org IETF/W3C XML-Signature Co-Chair http://www.w3.org/Signature/ W3C XML Encryption Chair http://www.w3.org/Encryption/2001/
Received on Friday, 29 March 2002 11:32:46 UTC