@@ -357,7 +357,7 @@ WHERE
357357 <xsl : param name =" context" as =" map(*)" />
358358 <xsl : param name =" response" as =" map(*)" />
359359
360- <xsl : sequence select =" map:merge(($context, map{ 'response': $response }))" />
360+ <xsl : sequence select =" map:merge(($context, map{ 'response': $response }), map{ 'duplicates': 'use-last' } )" />
361361 </xsl : function >
362362
363363 <xsl : function name =" ldh:http-request-threaded" as =" map(*)" ixsl : updating =" yes" >
@@ -436,51 +436,7 @@ WHERE
436436 'resource': $resource,
437437 'types': $types,
438438 'response': () (: clear old response :)
439- }))" />
440- </xsl : for-each >
441- </xsl : when >
442- <!-- error response -->
443- <xsl : otherwise >
444- <ixsl : set-style name =" cursor" select =" 'default'" object =" ixsl:page()//body" />
445- <xsl : sequence select =" ixsl:call(ixsl:window(), 'alert', [ ?message ])" />
446- </xsl : otherwise >
447- </xsl : choose >
448- </xsl : for-each >
449- </xsl : function >
450-
451- <xsl : function name =" ldh:load-edited-resource" as =" item()*" ixsl : updating =" yes" >
452- <xsl : param name =" request" as =" map(*)" />
453- <xsl : param name =" response" as =" map(*)" />
454- <xsl : variable name =" block" select =" $request('block')" as =" element()" />
455- <xsl : variable name =" about" select =" $request('about')" as =" xs:anyURI" />
456-
457- <xsl : for-each select =" $response" >
458- <xsl : choose >
459- <xsl : when test =" ?status = 200 and ?media-type = 'application/rdf+xml'" >
460- <xsl : variable name =" etag" select =" ?headers?etag" as =" xs:string?" />
461-
462- <xsl : for-each select =" ?body" >
463- <ixsl : set-property name =" {'`' || ac:absolute-path(ldh:base-uri(.)) || '`'}" select =" ldh:new-object()" object =" ixsl:get(ixsl:window(), 'LinkedDataHub.contents')" />
464- <!-- store document under window.LinkedDataHub.contents[$base-uri].results -->
465- <ixsl : set-property name =" results" select =" ." object =" ixsl:get(ixsl:get(ixsl:window(), 'LinkedDataHub.contents'), '`' || ac:absolute-path(ldh:base-uri(.)) || '`')" />
466- <!-- store ETag header value under window.LinkedDataHub.contents[$base-uri].etag -->
467- <ixsl : set-property name =" etag" select =" $etag" object =" ixsl:get(ixsl:get(ixsl:window(), 'LinkedDataHub.contents'), '`' || ac:absolute-path(ldh:base-uri(.)) || '`')" />
468-
469- <xsl : variable name =" resource" select =" key('resources', $about)" as =" element()" /> <!-- TO-DO: handle error -->
470- <xsl : variable name =" types" select =" distinct-values($resource/rdf:type/@rdf:resource)" as =" xs:anyURI*" />
471- <xsl : variable name =" query-string" select =" 'DESCRIBE $Type VALUES $Type { ' || string-join(for $type in $types return '< ' || $type || '> ', ' ') || ' }'" as =" xs:string" />
472- <xsl : variable name =" request-uri" select =" ac:build-uri(resolve-uri('ns', $ldt:base), map{ 'query': $query-string, 'accept': 'application/rdf+xml' })" as =" xs:anyURI" />
473- <xsl : variable name =" http-request" select =" map{ 'method': 'GET', 'href': $request-uri, 'headers': map{ 'Accept': 'application/rdf+xml' } }" as =" map(*)" />
474- <xsl : variable name =" callback-context" as =" map(*)" select ="
475- map{
476- 'block': $block,
477- 'resource': $resource,
478- 'types': $types
479- }" />
480- <xsl : variable name =" request" select =" map:merge(($http-request, $callback-context))" as =" map(*)" />
481- <xsl : sequence select =" ixsl:http-request($request) =>
482- ixsl:then(ldh:handle-response($request, ?)) =>
483- ixsl:then(ldh:load-type-metadata($request, ?))" />
439+ }), map{ 'duplicates': 'use-last' })" />
484440 </xsl : for-each >
485441 </xsl : when >
486442 <!-- error response -->
@@ -535,7 +491,7 @@ WHERE
535491 'constraints': $constraints,
536492 'shapes': $shapes,
537493 'object-metadata': $object-metadata
538- }))" />
494+ }), map{ 'duplicates': 'use-last' } )" />
539495 </xsl : when >
540496 <!-- error response -->
541497 <xsl : otherwise >
@@ -560,7 +516,7 @@ WHERE
560516 </xsl : variable >
561517 <xsl : sequence select =" map:merge(($context, map{
562518 'document': $document
563- }))" />
519+ }), map{ 'duplicates': 'use-last' } )" />
564520 </xsl : function >
565521
566522 <xsl : function name =" ldh:render-row-form" as =" item()*" ixsl : updating =" yes" >
@@ -823,7 +779,7 @@ WHERE
823779 <xsl : param name =" block" select =" ancestor::div[contains-token(@class, 'modal-constructor')]" as =" element()" />
824780 <xsl : sequence select =" ixsl:call(ixsl:event(), 'preventDefault', [])" />
825781 <xsl : variable name =" form" select =" ." as =" element()" />
826- <xsl : variable name =" method" select =" @method" as =" xs:string" />
782+ <xsl : variable name =" method" select =" upper-case( @method) " as =" xs:string" />
827783 <xsl : variable name =" modal" select =" false()" as =" xs:boolean" />
828784 <xsl : variable name =" id" select =" ixsl:get($form, 'id')" as =" xs:string" />
829785 <xsl : variable name =" action" select =" ixsl:get($form, 'action')" as =" xs:anyURI" />
@@ -877,7 +833,7 @@ WHERE
877833 <xsl : param name =" block" select =" ancestor::div[contains-token(@class, 'block')][1]" as =" element()" />
878834 <xsl : sequence select =" ixsl:call(ixsl:event(), 'preventDefault', [])" />
879835 <xsl : variable name =" form" select =" ." as =" element()" />
880- <xsl : variable name =" method" select =" @method" as =" xs:string" />
836+ <xsl : variable name =" method" select =" upper-case( @method) " as =" xs:string" />
881837 <xsl : variable name =" modal" select =" false()" as =" xs:boolean" />
882838 <xsl : variable name =" id" select =" ixsl:get($form, 'id')" as =" xs:string" />
883839 <xsl : variable name =" action" select =" ixsl:get($form, 'action')" as =" xs:anyURI" />
@@ -1105,7 +1061,7 @@ WHERE
11051061 <xsl : sequence select =" map:merge((
11061062 $context,
11071063 map{ 'rendered-row': $rendered }
1108- ))" />
1064+ ), map{ 'duplicates': 'use-last' } )" />
11091065
11101066 <ixsl : set-style name =" cursor" select =" 'default'" object =" ixsl:page()//body" />
11111067 </xsl : for-each >
@@ -1120,11 +1076,13 @@ WHERE
11201076 <xsl : for-each select =" $response" >
11211077 <xsl : variable name =" href" select =" ac:absolute-path(xs:anyURI(ixsl:location()))" as =" xs:anyURI" /> <!-- TO-DO: pass $context?base-uri -->
11221078 <xsl : variable name =" request" select =" map{ 'method': 'GET', 'href': $href, 'headers': map{ 'Accept': 'application/xhtml+xml' } }" as =" map(*)" />
1123- <xsl : variable name =" context" as =" map(*)" select ="
1079+ <xsl : variable name =" context" select =" map:merge((
1080+ $context,
11241081 map{
11251082 'request': $request,
11261083 'href': $href
1127- }" />
1084+ }
1085+ ), map{ 'duplicates': 'use-last' })" as =" map(*)" />
11281086 <xsl : sequence select ="
11291087 ixsl:http-request($context('request')) (: Step 1: send initial request :)
11301088 => ixsl:then(ldh:rethread-response($context, ?)) (: Step 2: attach response to context :)
@@ -1164,14 +1122,15 @@ WHERE
11641122 <xsl : variable name =" block" select =" $context('block')" as =" element()" />
11651123 <xsl : variable name =" form" select =" $context('form')" as =" element()?" />
11661124 <xsl : variable name =" modal" select =" $context('modal')" as =" xs:boolean" />
1167- <xsl : variable name =" resources" select =" $context('resources')" as =" document-node()" />
1125+ <!-- <xsl:variable name="resources" select="$context('resources')" as="document-node()"/> -- >
11681126
11691127 <xsl : message >ldh:modal-form-submit-violation</xsl : message >
11701128
11711129 <xsl : for-each select =" $response" >
11721130 <xsl : variable name =" body" select =" ?body" as =" document-node()" />
11731131 <!-- TO-DO: refactor to use asynchronous HTTP requests -->
1174- <xsl : variable name =" types" select =" distinct-values($body/rdf:RDF/*[not(@rdf:about = $doc-uri)]/rdf:type/@rdf:resource)" as =" xs:anyURI*" />
1132+ <!-- inverse $types expression compared to ldh:row-form-submit-violation -->
1133+ <xsl : variable name =" types" select =" distinct-values($body/rdf:RDF/*[@rdf:about = $doc-uri]/rdf:type/@rdf:resource)" as =" xs:anyURI*" />
11751134 <xsl : variable name =" query-string" select =" 'DESCRIBE $Type VALUES $Type { ' || string-join(for $type in $types return '< ' || $type || '> ', ' ') || ' }'" as =" xs:string" />
11761135 <xsl : variable name =" request-uri" select =" ac:build-uri(resolve-uri('ns', $ldt:base), map{ 'query': $query-string, 'accept': 'application/rdf+xml' })" as =" xs:anyURI" />
11771136 <xsl : variable name =" type-metadata" select =" if (exists($types)) then document($request-uri) else ()" as =" document-node()?" />
@@ -1251,7 +1210,7 @@ WHERE
12511210 <xsl : variable name =" block" select =" $context('block')" as =" element()" />
12521211 <xsl : variable name =" form" select =" $context('form')" as =" element()?" />
12531212 <xsl : variable name =" modal" select =" $context('modal')" as =" xs:boolean" />
1254- <xsl : variable name =" resources" select =" $context('resources')" as =" document-node()" />
1213+ <!-- <xsl:variable name="resources" select="$context('resources')" as="document-node()"/> -- >
12551214
12561215 <xsl : message >ldh:row-form-submit-violation</xsl : message >
12571216
0 commit comments