[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [xri] RelaxNG schemas for XRI resolution
+1 to Gabe's proposal. =Drummond > -----Original Message----- > From: John Bradley [mailto:jbradley@mac.com] > Sent: Thursday, October 25, 2007 2:50 PM > To: OASIS XRI TC > Subject: Re: [xri] RelaxNG schemas for XRI resolution > > Agreed for what its worth. The potential for collision always > bothered me. > > =ve7jtb > On 25-Oct-07, at 2:23 PM, Tan, William wrote: > > > I agree that we should not allow extension attributes that are no > > namespace qualified, if for no other reason than to be able to tell > > them apart from the "built-in" ones. > > > > =wil > > > > Gabe Wachob wrote: > >> > >> Besides the attribute extension and missing redirect attribute > >> issues, I also realized that the "extension" attribute pattern in > >> the original schema was wrong, I THINK. > >> > >> Here's the thing - if we allow "extension" attributes - what > >> attributes do we allow exactly? > >> > >> Do we allow **any** attribute, whether local or namespace > >> qualified? What are your thoughts? My feeling is that you are > >> asking for trouble if you start sprinkling around non-namespaced > >> attributes as **extension* *attributes.. (its fine when they are > >> in elements YOU define). > >> > >> So my preference I think is to allow only extension attributes > >> that are namespace qualified, and NOT in the xrd/xrds namespaces > >> (we don't define **any** attributes that are namespace qualified > >> with the xrd or xrds namespaces) . Anyone gotta problem with THAT? > >> > >> -Gabe > >> > >> --------------------------------------------------------------------- > >> --- > >> > >> *From:* Gabe Wachob [mailto:gabe.wachob@amsoft.net] > >> *Sent:* Monday, October 22, 2007 6:18 PM > >> *To:* 'OASIS XRI TC' > >> *Subject:* [xri] RelaxNG schemas for XRI resolution > >> > >> I went ahead and threw together two RelaxNG schemas (one for XRDS, > >> one for XRD). Please check carefully - this is a very rough cut > >> and I had to guess at element ordering in many places. > >> > >> I note that in the document, there are a lot of places where > >> attributes are referred to by qualified name - I missed in this in > >> my last review, but I believe the XML schema and our decision was > >> to make them **unqualified** - so in section 4.1, you wouldn't use > >> @xrds:ref, you'd simply use @ref > >> > >> Anyway here's the two schemas cut n pasted in: > >> > >> xrds.rnc > >> > >> namespace xrds = "xrd://$xrds" > >> > >> datatypes xs = "http://www.w3.org/2001/XMLSchema-datatypes" > >> > >> anyelement = > >> > >> element * { > >> > >> (attribute * { text } > >> > >> | text > >> > >> | anyelement)* > >> > >> } > >> > >> start = element xrds:XRDS { > >> > >> attribute ref { xs:anyURI }, > >> > >> anyelement * > >> > >> } > >> > >> xrd.rnc > >> > >> default namespace = "xrd://$xrd*($v*2.0)" > >> > >> namespace xrd = "xrd://$xrd*($v*2.0)" > >> > >> namespace saml = "urn:oasis:names:tc:SAML:2.0:assertion" > >> > >> namespace ds = "http://www.w3.org/2000/09/xmldsig#" > >> > >> datatypes xs = "http://www.w3.org/2001/XMLSchema-datatypes" > >> > >> datatypes rd = "http://relaxng.org/ns/compatibility/datatypes/1.0" > >> > >> start=XRD > >> > >> anyelementbody = > >> > >> (attribute * {text} > >> > >> | text > >> > >> | element * {anyelementbody} )* > >> > >> non.xrd.element = element * - xrd:* { > >> > >> anyelementbody > >> > >> } > >> > >> non.xrd.attribute = attribute * - xrd:* {text} > >> > >> # XRD Element > >> > >> # XXX Need to check order of the following > >> > >> XRD=element XRD { > >> > >> attribute xml:id {rd:ID} ?, > >> > >> attribute idref {rd:IDREF} ?, > >> > >> attribute version { "2.0" } ?, > >> > >> Query ?, > >> > >> Status ?, > >> > >> ServerStatus ?, > >> > >> Expires ?, > >> > >> ProviderID ?, > >> > >> (Redirect | Ref) ?, > >> > >> LocalID *, > >> > >> EquivID *, > >> > >> CanonicalID ?, > >> > >> CanonicalEquivID ?, > >> > >> Service *, > >> > >> element saml:Assertion {anyelementbody} ?, > >> > >> non.xrd.element * > >> > >> } > >> > >> Query=element Query { > >> > >> non.xrd.attribute *, > >> > >> text > >> > >> } > >> > >> statuspattern = attribute code {xs:integer}, > >> > >> attribute cid { "absent" | "off" | "verified" | "failed" }, > >> > >> attribute ceid { "absent" | "off" | "verified" | "failed" }, > >> > >> text > >> > >> Status=element Status { > >> > >> statuspattern > >> > >> } > >> > >> ServerStatus = element ServerStatus { > >> > >> statuspattern > >> > >> } > >> > >> Expires = element Expires { > >> > >> xs:dateTime > >> > >> } > >> > >> Redirect = element Redirect { > >> > >> attribute priority {xs:integer}?, > >> > >> xs:anyURI > >> > >> } > >> > >> Ref = element Ref{ > >> > >> attribute priority {xs:integer}?, > >> > >> xs:anyURI > >> > >> } > >> > >> ProviderID = element ProviderID { > >> > >> xs:anyURI > >> > >> } > >> > >> # not specifying requirements for saml:Assertion - maybe we should? > >> > >> LocalID = element LocalID { > >> > >> attribute priority {xs:integer}, > >> > >> xs:anyURI > >> > >> } > >> > >> EquivID = element EquivID { > >> > >> attribute priority {xs:integer}, > >> > >> xs:anyURI > >> > >> } > >> > >> CanonicalID = element CanonicalID { > >> > >> xs:anyURI > >> > >> } > >> > >> CanonicalEquivID = element CanonicalEquivID { > >> > >> xs:anyURI > >> > >> } > >> > >> Service = element Service { > >> > >> attribute priority {xs:integer}?, > >> > >> ProviderID?, > >> > >> LocalID *, > >> > >> Type *, > >> > >> Path *, > >> > >> MediaType *, > >> > >> (URI+|Redirect+|Ref+)?, > >> > >> element ds:KeyInfo {anyelementbody}?, > >> > >> non.xrd.element * > >> > >> } > >> > >> URI = element URI { > >> > >> attribute priority {xs:integer}?, > >> > >> xs:anyURI > >> > >> } > >> > >> selection.attributes = attribute match {"any" | "default" | "non- > >> null" | "null" }, > >> > >> attribute select { xs:boolean} > >> > >> Type = element Type { > >> > >> selection.attributes, > >> > >> xs:anyURI > >> > >> } > >> > >> Path = element Path { > >> > >> selection.attributes, > >> > >> xs:string > >> > >> } > >> > >> MediaType = element MediaType { > >> > >> selection.attributes, > >> > >> xs:string > >> > >> } > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe from this mail list, you must leave the OASIS TC that > > generates this mail. You may a link to this group and all your TCs > > in OASIS > > at: > > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]