Source for file XML.php
Documentation is available at XML.php
require_once RDFAPI_INCLUDE_DIR .
'sparql/SparqlEngineDb/ResultRenderer.php';
* Sparql DB XML result renderer as defined by
* http://www.w3.org/TR/rdf-sparql-XMLres/
* @author Christian Weiske <cweiske@cweiske.de>
* Defines the methods needed to create the types
* Key is the type (e.g. "s" for subject), and
* value the method's name.
's' =>
'createSubjectFromDbRecordSetPart',
'p' =>
'createPredicateFromDbRecordSetPart',
'o' =>
'createObjectFromDbRecordSetPart'
* Converts the database results into nice HTML.
* @param array $arRecordSets Array of (possibly several) SQL query results.
* @param Query $query SPARQL query object
* @param SparqlEngineDb $engine Sparql Engine to query the database
* @return mixed HTML code
$this->sg =
$engine->getSqlGenerator();
$strResultForm =
$query->getResultForm();
switch ($strResultForm) {
'Construct and describe are not supported by the'
if (count($arRecordSets) >
1) {
'More than one result set for a '
.
$strResultForm .
' query!'
$dbRecordSet =
reset($arRecordSets);
foreach ($dbRecordSet as $row) {
$nCount =
intval($row['count']);
if ($strResultForm ==
'ask') {
.
self::getSpokenBoolean($nCount >
0)
throw
new Exception('Unsupported result form: ' .
$strResultForm);
}//public function convertFromDbResults($arRecordSets, Query $query, SparqlEngineDb $engine)
<
sparql xmlns="
http://
www.
w3.
org/2005/
sparql-
results#">
}//protected function wrapCode($strCode)
protected function getHead($strXml =
'')
}//protected function getHead($strXml = '')
$arResultVars =
$this->query->getResultVars();
$arResultVars =
array_keys($this->sg->arVarAssignments);
"\"/>\n <variable name=\"",
foreach ($arRecordSets as $dbRecordSet) {
//work around bug in adodb:
// ADORecordSet_empty does not implement php5 iterators
if ($dbRecordSet->RowCount() <=
0) {
foreach ($dbRecordSet as $row) {
foreach ($arResultVars as $strVarName) {
if (!isset
($this->sg->arVarAssignments[$strVarName])) {
//variable is in select, but not in result (test: q-select-2)
$arResultRow[$strVarName] =
'';
$arVarSettings =
$this->sg->arVarAssignments[$strVarName];
$arResultRow[$strVarName] =
$this->$strMethod($dbRecordSet, $arVarSettings[0], $strVarName);
$arResult[] =
$arResultRow;
$arSM =
$this->query->getSolutionModifier();
.
self::getSpokenBoolean($arSM['order by'] !==
null)
.
self::getSpokenBoolean($strResultForm ==
'select distinct')
}//protected function createFromRecords($arRecordSets)
foreach ($arResult as $arSet) {
$strCode .=
" <result>\n";
foreach ($arSet as $strVarName =>
$strValue) {
if ($strValue !==
null) {
$strCode .=
' <binding name="' .
$strVarName .
'">'
$strCode .=
" </result>\n";
}//protected function getResultXml($arResult)
return $b ?
'true' :
'false';
}//protected static function getSpokenBoolean($b)
* Creates an RDF subject object
* contained in the given $dbRecordSet object.
* @see convertFromDbResult() to understand $strVarBase necessity
* @param ADORecordSet $dbRecordSet Record set returned from ADOConnection::Execute()
* @param string $strVarBase Prefix of the columns the recordset fields have.
* @return string HTML code
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']] ===
null) {
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_is']] ==
'r'
//null should be predicate which is always a resource
||
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_is']] ===
null
return $this->getXmlResource($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
return $this->getXmlBlank($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
}//protected function createSubjectFromDbRecordSetPart(ADORecordSet $dbRecordSet, $strVarBase, $strVarName)
* Creates an RDF predicate object
* contained in the given $dbRecordSet object.
* @see convertFromDbResult() to understand $strVarBase necessity
* @param ADORecordSet $dbRecordSet Record set returned from ADOConnection::Execute()
* @param string $strVarBase Prefix of the columns the recordset fields have.
* @return string HTML code
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']] ===
null) {
return $this->getXmlResource($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
}//protected function createPredicateFromDbRecordSetPart(ADORecordSet $dbRecordSet, $strVarBase, $strVarName)
* Creates an RDF object object
* contained in the given $dbRecordSet object.
* @see convertFromDbResult() to understand $strVarBase necessity
* @param ADORecordSet $dbRecordSet Record set returned from ADOConnection::Execute()
* @param string $strVarBase Prefix of the columns the recordset fields have.
* @return string HTML code
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']] ===
null) {
switch ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_is']]) {
return $this->getXmlResource($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
return $this->getXmlBlank($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']],
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_lang']],
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_type']]
}//protected function createObjectFromDbRecordSetPart(ADORecordSet $dbRecordSet, $strVarBase, $strVarName)
}//protected function getHtmlNull()
return '<bnode>' .
$value .
'</bnode>';
}//protected function getHtmlBlank($value)
}//protected function getHtmlResource($value)
$strCode .
' xml:lang="' .
$language .
'"';
$strCode .
' datatype="' .
$datatype .
'"';
}//protected function getHtmlLiteral($value, $language, $datatype)
}//class SparqlEngineDb_ResultRenderer_XML implements SparqlEngineDb_ResultRenderer
Documentation generated on Fri, 1 Jun 2007 16:52:45 +0200 by phpDocumentor 1.3.2