From cd3027dc3f60c95200d32cba2402f8650e17ca30 Mon Sep 17 00:00:00 2001 From: David Lichteblau Date: Sat, 26 Apr 2008 15:56:21 +0200 Subject: [PATCH] Check position of import --- TEST | 4 ++-- xslt.lisp | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/TEST b/TEST index 4d75525..34595d5 100644 --- a/TEST +++ b/TEST @@ -13448,7 +13448,7 @@ PASS Import__91173 [XSLT-Structure] Expected output (1): MSFT_Conformance_Tests/Import/Import__91173.saxon Actual output: MSFT_Conformance_Tests/Import/Import__91173.xuriella -FAIL Import_Import_IncludeBeforeImportInStylesheet [XSLT-Structure]: expected error not signalled: +PASS Import_Import_IncludeBeforeImportInStylesheet [XSLT-Structure]: raised an xslt-error as expected Stylesheet: MSFT_Conformance_Tests/Import/xslt_import_IncludeBeforeImport.noindent-xsl Data: MSFT_Conformance_Tests/Import/xslt_import_IncludeBeforeImport.xml Supplemental stylesheet: MSFT_Conformance_Tests/Import/xslt_import_IncludeBeforeImport2.xsl @@ -19382,4 +19382,4 @@ PASS XSLTFunctions_DocumentFuncWithEmptyArg [Mixed] Expected output (1): MSFT_Conformance_Tests/XSLTFunctions/XSLTFunctions_DocumentFuncWithEmptyArg.saxon Actual output: MSFT_Conformance_Tests/XSLTFunctions/XSLTFunctions_DocumentFuncWithEmptyArg.xuriella -Passed 2932/3080 tests (3 expected failures, 145 unexpected failures). +Passed 2933/3080 tests (3 expected failures, 144 unexpected failures). diff --git a/xslt.lisp b/xslt.lisp index e581c9c..7fe2dda 100644 --- a/xslt.lisp +++ b/xslt.lisp @@ -647,6 +647,12 @@ ,@body))) (with-specials () (do-toplevel (import "import" ) + (when (let ((prev (xpath:first-node + (xpath:evaluate "preceding-sibling::*" + import + t)))) + (and prev (not (namep (stp:local-name prev) "import")))) + (xslt-error "import not at beginning of stylesheet")) (let ((uri (puri:merge-uris (or (stp:attribute-value import "href") (xslt-error "import without href")) (stp:base-uri import)))) -- 2.11.4.GIT