Download presentation
Presentation is loading. Please wait.
1
RelaxNG Compact Syntax for XDI
Bill Barnhill XDI TC Meeting 2005 June 29
2
Overview RelaxNG: A short introduction The RNC schema proposal
The RNC schema for XDI Benefits The top reason for the XDI TC to adopt RNC
3
RelaxNG: A Short Introduction
Based on TREX, XDUCE, RELAX Created by OASIS RelaxNG TC Primary goals... To be easier to read and construct Efficient parsing via a solid theoretical basis Supports XML namespaces Does not change infoset of XML document Two flavors: The standard XML syntax RNC (RelaxNG Compact)
4
The RNC Schema Proposal
In a nutshell: The nominative XDI schema language is RelaxNG Compact Syntax As a convenience to implementors we provide: W3C Schema translation of each XDI schema A RelaxNG XML schema translation as well The naming convention be xdi-VNN.rnc, xdi-VNN.rng, xdi-VNN.xsd XDI extension schemas would be xdi-extname-VNN.xxx
5
The RNC Schema for XDI default namespace xdi = " namespace local = "" datatypes xsd = " start = resource resource = element Resource { xriset, resource*, ref*, backref*, link*, ( data | xmlresource )* } link = element Link { xriset, ref+ } backref = element Backref { xri, backref* } ref = element Ref { xri } data = element Data { mixed { ref+ | anyElement* } } xriset = element XRISet { authority*, type*, instance* } xri = element XRI { authority?, type?, instance? } authority = element Authority { text } type = element Type { text } instance = element Instance { text } xmlresource = element XMLResource { xmlheader, xmldata } xmlheader = element XMLHeader { foreignAttribute*, anyElement* } xmldata = element XMLData { foreignAttribute*, anyElement*} xmlref = element XMLData { att.uri?, xmltransforms? } xmltransforms = element XMLTransforms { xmltransform+ } xmltransform = element XMLTransform {att.algorithm, (foreignElement | xpath )* } xpath = element XPath { xsd:string } att.algorithm = attribute Algorithm { xsd:anyURI } att.uri = attribute URI { xsd:anyURI } foreignElement = element * - xdi:* { (anyAttribute | text | anyElement)* } foreignAttribute = attribute * - (xdi:*|local:*) { text } anyElement = element * { (anyAttribute | text | anyElement)* } anyAttribute = attribute * { text }
6
Benefits Allows us to support all the major schema languages
Easier to read and modify More efficient parsing Less of a learning curve
7
The Top Reason Backwards compatibility
RelaxNG is capable of validating multiple versions of the same schema, W3C schema is not with multiple passes The speed at which we are implementing software and developing XDI means allowing vendors to support multiple versions of the XDI schema is IMHO not just desirable, but crucial to our success.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.