<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics#">
<icf:age-over-18>...</icf:age-over-18>
</doc>
<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics#">
<icf:age-over-18/2008-11>...</icf:age-over-18/2008-11>
</doc>
Paul,
XML-friendliness was never a requirement of the ICF claim syntax or we would not have used forward slash as a separator. However, Markus’ solution will work fine.
Alternately, if you want the XML binding to reflect the real information in the identifier, it should follow the structure of the identifier itself:
<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics#">
<icf:age-over-18>
<icf-ver:2008-11>...</icf-ver:
2008-11>
</icf:age-over-18>
</doc>
=Drummond
<?xml version="1.0"?>This would be awkward if we had to include the <icf-ver:2008-11> sub elements everywhere. Especially in the presence of other attributes. So something like what Markus suggested (e.g. “<icf:age-over-18_2008-11>) would be better.
<ex:paul
xmlns:icf="http://schemas.informationcard.net/@ics#”
xmlns:pcrd=”http://schemas.xmlsoap.org/ws/2005/05/identity/claims#”>
<icf:age-over-18>1</icf:age-over-18></ex:paul>
<pcrd:givenname>Paul</pcrd:givenname>
<pcrd:surname>Paul</pcrd:surname>
<icf:us-resident>1</icf:us-resident>
Paul,
XML-friendliness was never a requirement of the ICF claim syntax or we would not have used forward slash as a separator. However, Markus’ solution will work fine.
Alternately, if you want the XML binding to reflect the real information in the identifier, it should follow the structure of the identifier itself:
<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics#">
<icf:age-over-18>
<icf-ver:2008-11>...</icf-ver: 2008-11>
</icf:age-over-18>
</doc>
=Drummond
From: icf-wg-...@googlegroups.com [mailto:icf-wg-...@googlegroups.com] On Behalf Of Markus Sabadello
Sent: Monday, July 13, 2009 12:03 AM
To: icf-wg-...@googlegroups.com
Cc: Drummond Reed
Subject: [ICF.WG.Schemas] Re: Claim catalog URI syntax isn't XML friendly
Maybe the solution is to simply use a different separator, e.g. _
<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics# <http://schemas.informationcard.net/@ics> ">
<icf:age-over-18_2008-11>...</icf:age-over-18_2008-11>
</doc>
I don't think this is too ugly; after all the syntax defines the "claim-name" to be only the "age-over-18", not the entire "age-over-18/2008-11"...
I.e. "age-over-18/2008-11" is not an opaque string, it's just one way to serialize the claim definition to a string.
Markus
On Mon, Jul 13, 2009 at 1:08 AM, Paul Trevithick <ptrev...@gmail.com> wrote:
Drummond,
I just noticed a problem with the ICF-defined claims that follow [1]. (This issue doesn’t apply to Microsoft’s original claims). The syntax we have defined prevents ICF claims from being used in XML element names. For example, this is valid XML:
<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics# <http://schemas.informationcard.net/@ics> ">
<icf:age-over-18>...</icf:age-over-18>
</doc>
But this isn’t:
<?xml version="1.0"?>
<doc xmlns:icf="http://schemas.informationcard.net/@ics# <http://schemas.informationcard.net/@ics> ">
Von: icf-wg-...@googlegroups.com [mailto:icf-wg-...@googlegroups.com] Im Auftrag von Paul Trevithick
Gesendet: Montag, 13. Juli 2009 21:42
An: ICF.WG.Schemas
Betreff: [ICF.WG.Schemas] Re: Claim catalog URI syntax isn't XML friendly
Von: icf-wg-...@googlegroups.com [mailto:icf-wg-...@googlegroups.com] Im Auftrag von Paul Trevithick
Gesendet: Montag, 13. Juli 2009 22:57
An: ICF.WG.Schemas
Betreff: Re: AW: [ICF.WG.Schemas] Re: Claim catalog URI syntax isn't XML friendly
- Old RDFXML habit sorry.
- This was discussed and rejected by the group I’d have to dig back to remember why. As I recall Drummond got hold of some W3C (I think it was) best practice documents for URIs and they suggested that trailing dates was better than what you have below. Personally I like what you’ve proposed below better and I was thinking the same thing. Or even something more heretical: switching to yearly versioning so that there weren’t so many “xmlns” declarations required!
## Hm, then we discussed claims URIs not XML namespaces. There is no formal translation between the claims catalog and some XML (yet).
If we would define an XML schema for the catalog then each claim URI would be an xs:token. [The Claim-Name might be considered to be an identifier / xs:token too but only because (until now) there is no collision between Claim-Names.] The unique identifier of a claim is its URI.
The value of icam-assurance-level-1 is likely a entityID that can be
used to discover if the certificate that signed the cert is valid for
asserting icam-assurance-level-1.
## Err. What do you mean by an entityID? Why do you mention this here. Is this related to the syntax (“/”) issue? I’m not following you.
An empty entityID would be no but people shouldn't issue cards with
that claim if they are not certified.
In the first stage white-lists will probably be manually configured
and the return value ignored.
The claim is mostly used to drive card selection, as the RP cant
specify a set of issuers.
<snip>
Hmmm. This is very interesting. I see what you’d like to do. It’s just that having claim URIs serve double duty as XML Qnames just hasn’t been brought up before.
You can either build the versioning into the XML namespace, as Axel suggests, or build it into the claim name itself, as Markus suggests. If those are the only two options, I personally prefer the latter, to keep the XML namespaces clean. But I’d want the revised ABNF for ICF claim URIs to still be structured so that a smart parser can still understand either the URI or the XML, i.e., use something like:
http://schemas.informationcard.net/@ics/age-18-or-over-v-2008-12
…where the –v–YYYY-MM pattern is enforced by the ABNF.
But the big question is…what do we do about all our existing claims? Do we start issuing synonyms?
(Isn’t semantics fun? ;-)
=Drummond
<BR
The problem if you just drop it, i.e. if you do this
<icf:age-over-18 xmlns:icf="http://schemas.informationcard.net/@ics#">...</icf:age-over-18>
.. is that you cannot map that back to the claim URI without looking it up somehow.
Markus
On Tue, Jul 14, 2009 at 3:55 AM, John Bradley <ve7...@ve7jtb.com> wrote:
One thing you could do is just drop the trailing date in the qname.
It isn't really adding anything. The claim without the date is the
most recent version.
If there is more than one version of the age-18-or-over you replace
the / with some other character.
Turning the claim into a qname is a connivence there is no formal
transform rule.
John B.
<snip>