zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #18012
[Merge] lp:~zorba-coders/zorba/fix_schema_resolution into lp:zorba
Sorin Marian Nasoi has proposed merging lp:~zorba-coders/zorba/fix_schema_resolution into lp:zorba.
Commit message:
- replaced the resolver with mapper for the schema resolution
- fixed test cases 'qischema032', 'qischema032a', 'qischema032b'
Requested reviews:
Sorin Marian Nasoi (sorin.marian.nasoi)
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/fix_schema_resolution/+merge/147752
- replaced the resolver with mapper for the schema resolution
- fixed test cases 'qischema032', 'qischema032a', 'qischema032b'
--
https://code.launchpad.net/~zorba-coders/zorba/fix_schema_resolution/+merge/147752
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'test/fots/CMakeLists.txt'
--- test/fots/CMakeLists.txt 2013-02-10 09:16:28 +0000
+++ test/fots/CMakeLists.txt 2013-02-11 19:52:31 +0000
@@ -1041,9 +1041,6 @@
EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema005 0)
EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema016 0)
EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema031 0)
-EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032 0)
-EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032a 0)
-EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032b 0)
EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032c 0)
EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema040 0)
EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema040a 0)
=== modified file 'test/fots_driver/environment.xq'
--- test/fots_driver/environment.xq 2013-02-04 16:48:16 +0000
+++ test/fots_driver/environment.xq 2013-02-11 19:52:31 +0000
@@ -365,7 +365,7 @@
"variable $contextItemQuery := xqxq:prepare-main-module('",
env:get-schema-import($env),
concat('validate { doc("', $ciURI, '")', "}',", " "),
- "resolver:url-resolver#2, ());",
+ "(), mapper:uri-mapper#2);",
"variable $contextItem := xqxq:evaluate($contextItemQuery);")
,"
")
};
@@ -464,37 +464,14 @@
$testSetBaseURI as xs:anyURI
) as xs:string?
{
- let $envSchema := $env/fots:schema,
- $tcSchema := $case/fots:environment/fots:schema,
- $schemas := ($envSchema, $tcSchema),
- $modules := $case/fots:module,
- $resources := ($env/fots:resource, $case/fots:environment/fots:schema)
+ let $modules := $case/fots:module
+ let $resources := $env/fots:resource
return
- if (empty($schemas) and empty($modules) and empty($resources))
+ if (empty($modules) and empty($resources))
then ()
else string-join(
- ("declare namespace resolver = 'http://www.zorba-xquery.com/modules/xqxq/url-resolver';",
- $env:hof,
- "declare function resolver:url-resolver($namespace as xs:string, $entity as xs:string) {",
+ ("declare function resolver:url-resolver($namespace as xs:string, $entity as xs:string) {",
"switch($entity)",
- if (exists($schemas))
- then string-join(("case 'schema'",
- " return switch($namespace)",
- (for $schema in $envSchema
- return concat(" case '",
- data($schema/@uri),
- "' return doc('",
- resolve-uri($schema/@file, $envBaseURI),
- "')"),
- for $schema in $tcSchema
- return concat(" case '",
- data($schema/@uri),
- "' return doc('",
- resolve-uri($schema/@file, $testSetBaseURI),
- "')")),
- " default return ()"),
- "
")
- else (),
if (exists($modules))
then string-join(("case 'module'",
" return switch($namespace)",
@@ -530,6 +507,51 @@
"
")
};
+(:~
+ : Returns the XQXQ URL mapper declaration.
+ : @param $case the test case.
+ : @param $env the environment.
+ : @param $envBaseURI URI of the environment.
+ : @param $testSetBaseURI URI to the test set that defines the test case.
+ : @return the XQXQ URL mapper declaration.
+ :)
+declare function env:mapper(
+ $case as element(fots:test-case),
+ $env as element(fots:environment)?,
+ $envBaseURI as xs:anyURI?,
+ $testSetBaseURI as xs:anyURI
+) as xs:string?
+{
+ let $envSchema := $env/fots:schema,
+ $tcSchema := $case/fots:environment/fots:schema,
+ $schemas := ($envSchema, $tcSchema)
+ return
+ if (empty($schemas))
+ then ()
+ else string-join(
+ ("declare function mapper:uri-mapper($namespace as xs:string, $entity as xs:string) {",
+ "switch($entity)",
+ if (exists($schemas))
+ then string-join(("case 'schema'",
+ " return switch($namespace)",
+ (for $schema in $envSchema
+ return concat(" case '",
+ data($schema/@uri),
+ "' return '",
+ resolve-uri($schema/@file, $envBaseURI),
+ "'"),
+ for $schema in $tcSchema
+ return concat(" case '",
+ data($schema/@uri),
+ "' return '",
+ resolve-uri($schema/@file, $testSetBaseURI),
+ "'"),
+ " default return ()")),
+ "
")
+ else (),
+ "default return ()","};"),
+ "
")
+};
(:~
: Checks that a set of dependencies (associated with some test-set or test-case)
=== modified file 'test/fots_driver/feedback.xq'
--- test/fots_driver/feedback.xq 2013-02-09 12:51:32 +0000
+++ test/fots_driver/feedback.xq 2013-02-11 19:52:31 +0000
@@ -176,8 +176,7 @@
}
}
else <fots:test-case name="{data($case/@name)}"
- result="{$status}"
- executionTime="{$duration}" />
+ result="{$status}"/>
};
@@ -212,6 +211,7 @@
if ($expectedFailure)
then insert node attribute comment{$info} as last into $case
else (),
+ insert node attribute executionTime{$duration} as last into $case,
insert node
<fots:info>
{$env}
@@ -231,12 +231,10 @@
else if ($expectedFailure)
then <fots:test-case name="{data($case/@name)}"
result="{$status}"
- comment="{$info}"
- executionTime="{$duration}"/>
+ comment="{$info}"/>
else <fots:test-case name="{data($case/@name)}"
- result="{$status}"
- executionTime="{$duration}"/>
+ result="{$status}"/>
};
=== modified file 'test/fots_driver/fots-driver.xq'
--- test/fots_driver/fots-driver.xq 2013-01-31 18:06:16 +0000
+++ test/fots_driver/fots-driver.xq 2013-02-11 19:52:31 +0000
@@ -752,16 +752,26 @@
$env,
$envBaseURI,
$testSetBaseURI)
+ let $mapper as xs:string? := env:mapper($case,
+ $env,
+ $envBaseURI,
+ $testSetBaseURI)
return
string-join
(
(
"",
"import module namespace xqxq = 'http://www.zorba-xquery.com/modules/xqxq';",
- "",
if (exists($resolver))
- then ($resolver, "")
- else (),
+ then "declare namespace resolver = 'http://www.zorba-xquery.com/modules/xqxq/url-resolver';"
+ else (),
+ if (exists($mapper))
+ then "declare namespace mapper = 'http://www.zorba-xquery.com/modules/xqxq/uri-mapper';"
+ else (),
+ if (exists($resolver) or exists($mapper)) then $env:hof else (),
+ "",
+ if (exists($resolver)) then ($resolver, "") else (),
+ if (exists($mapper)) then ($mapper, "") else (),
concat("variable $queryID := xqxq:prepare-main-module(",
"
",
@@ -772,8 +782,12 @@
"'",
"
",
if (exists($resolver))
- then ", resolver:url-resolver#2, ());"
- else ");"),
+ then if(exists($mapper))
+ then ", resolver:url-resolver#2, mapper:uri-mapper#2);"
+ else ", resolver:url-resolver#2, ());"
+ else if(exists($mapper))
+ then ", (), mapper:uri-mapper#2);"
+ else");"),
env:set-context-item($env, $envBaseURI),
env:set-context-item($case/fots:environment, $testSetBaseURI),
Follow ups