- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Wed, 23 Mar 2005 07:37:50 -0500
- To: Bijan Parsia <bparsia@isr.umd.edu>
- Cc: howardk@fatdog.com, Yoshio FUKUSHIGE <fuku@w3.org>, 'RDF Data Access Working Group' <public-rdf-dawg@w3.org>
- Message-ID: <20050323123750.GA27026@w3.org>
On Tue, Mar 22, 2005 at 03:06:06PM -0500, Bijan Parsia wrote:
>
> On Mar 22, 2005, at 2:09 PM, Howard Katz wrote:
>
> >Bijan,
> >Can you briefly explain why the attribute form is more "XML Schemable"
> >than
> >the element form?
>
> I'm no schema wonk (which is fine, btw :)), but looking at:
>
> <xs:element name="result">
> <xs:complexType>
> <xs:group minOccurs="0" maxOccurs="unbounded" ref="res:var"/>
> <xs:attribute ref="xml:lang"/>
> </xs:complexType>
> </xs:element>
> <xs:group name="var">
> <xs:sequence>
> <xs:any namespace="##targetNamespace" processContents="skip"/>
> </xs:sequence>
> </xs:group>
>
> That processContents="skip" is a consequence of not having a fixed set
> of names for the binding forms and that is unfortunate.
I think it comes down to, unlike RelaxNG,
var = element res:* {
xmllang?, uriAttr?, datatypeAttr?, bnodeidAttr?, boundAttr?,
literal
}
XML Schema can't have wildcard nodenames. I think this is why RDF/XML
is only describable with RelaxNG.
> I would prefer for the element children of resutls to be fixed and data
> bindable. I would also like to use xsi:type to enforce schema
> processing of their children.
Another argument for this is that it fits with the common idiom for
XSLT templates. I originally voted for a regular XML syntax that was
also usefully parsable as RDF. Failing that, I prefer to go all the
way to the XML side and do things in the most common idioms possible,
which I think is consistent with Yoshio's syntax.
> Heck. It'd be nice to be able to distinguish bindings with a node vs. a
> literal content. If we can't distinguish by attribute value, then i'd
> be in favor of things like nodeVar, literalVar, etc.
>
> I do not yet intend this as a proposal. I hope to flesh it out a bit
> more. Deadlines and illness have interceded a bit.
>
> But even the little bit more schema processing seems worth it to me.
>
> I did some experiments with kendall on Dave's example transform scripts
> to HTML tables, and it doesn't complicate them significantly (to my
> eye). Also, you can, in XQuery, use typecase (or whatever it's called)
> which might have optimization and safety advantages.
Maybe it's not significant, but transformers that don't have a priori
knowledge of which variables to expect (say, an HTML presenter for
*any* results) will need to use
<!-- datatyped literals template -->
<xsl:template match="*/[type='datatype']">
<html:th>?<xsl:value-of select="self::name()"/></html:th>
instead of
<!-- datatyped literals template -->
<xsl:template match="var/[type='datatype']">
<html:th>?<xsl:value-of select="@name"/></html:th>
The former is not many more characters, but involves being further
into the tutorial and further from the shortcut syntaxes of XSLT.
PROPOSAL: that the XML Results Format change from
<result>
<x bnodeid="r2"/>
<hpage uri="http://work.example.org/bob/"/>
<name xml:lang="en">Bob</name>
<mbox uri="mailto:bob@work"/>
<age
datatype="http://www.w3.org/2001/XMLSchema#integer">30</age>
<blurb bound="false"/>
<friend bnodeid="r1"/>
</result>
to
<result>
<bind name="x" bnodeid="r2"/>
<bind name="hpage" uri="http://work.example.org/bob/"/>
<bind name="name" xml:lang="en">Bob</bind>
<bind name="mbox" uri="mailto:bob@work"/>
<bind name="age"
datatype="http://www.w3.org/2001/XMLSchema#integer">30</bind>
<bind name="blurb" bound="false"/>
<bind name="friend" bnodeid="r1"/>
</result>
I reallize it's extra bytes, but I think having XML Schema validation
<xs:group name="var">
<xs:complexType>
<xs:attribute name="uri" type="res:URI-reference"/>
<xs:attribute name="datatype" type="res:URI-reference"/>
<xs:attribute name="bnodeid" type="xs:NMTOKEN"/>
<xs:attribute name="bound">
</xs:complexType>
</xs:group>
all the way down is worth it.
--
-eric
office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
Shonan Fujisawa Campus, Keio University,
5322 Endo, Fujisawa, Kanagawa 252-8520
JAPAN
+1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell: +81.90.6533.3882
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Received on Wednesday, 23 March 2005 12:37:50 UTC