- From: Jeen Broekstra <jeen@fastmail.com>
- Date: Thu, 08 Oct 2020 11:50:18 +1100
- To: public-sparql-dev@w3.org
- Message-Id: <838f0c6b-f601-4cf1-827e-df0f76ccb8f1@www.fastmail.com>
I'm a bit rusty on my XML Schema, but the (normative) definition (see https://www.w3.org/2007/SPARQL/result.xsd) of the <bnode> element is that it is of type string: <xs:element name="bnode" type="xs:string"/> I'm reasonably sure this requires a non-empty value. IIRC a non-empty element is only allowed if the element is defined as a complex type, with a restriction. So I agree that the informal intent in the spec and the normative definition both say that a bnode element should always have a label value, and cannot be an empty element. Cheers, Jeen On Wed, Oct 7, 2020, at 21:45, Martynas Jusevičius wrote: > Hi, > > I'm getting some SPARQL XML results from Dydra with empty > <bnode></bnode> elements. > > This is something I hadn't encountered before, and also impractical if > the nodes do not have the labels ready. > > I looked at the spec but found only > "<binding><bnode>I</bnode></binding>" which kind of suggests there > should be a label. > > To be sure, I decided to try validating the XML results against the > schema. I downloaded both > https://www.w3.org/2007/SPARQL/result.xsd > https://www.w3.org/2007/SPARQL/result.rng > > and a random test file sq02.srx and attempted to validate against the > RNG and the XSD, but both failed inexplicably: > > $ xmlstarlet val -r result.rng -e sq02.srx > sq02.srx:12.10: Did not expect element sparql there > sq02.srx:12.10: Did not expect element head there > sq02.srx:12.10: Did not expect element variable there > sq02.srx:12.10: Did not expect element variable there > sq02.srx:12.10: Did not expect element results there > sq02.srx:12.10: Did not expect element result there > sq02.srx:12.10: Did not expect element binding there > sq02.srx:12.10: Did not expect element uri there > sq02.srx:12.10: Did not expect text in element TODO content > sq02.srx:12.10: Did not expect element binding there > sq02.srx:12.10: Did not expect element uri there > sq02.srx:12.10: Did not expect text in element TODO content > sq02.srx - invalid > > $ xmlstarlet val -s result.xsd -e sq02.srx > sq02.srx:1.55: Element > '{http://www.w3.org/2005/sparql-results#}sparql': No matching global > declaration available for the validation root. > sq02.srx - invalid > > So the questions: > - is <bnode/> allowed? > - how does one validate? What are the schemas for if they don't work > -- or is it xmlstarlet? > > > Martynas > >
Received on Thursday, 8 October 2020 00:51:01 UTC