XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Manikandan SurendranathSubject: document() function throws unknown function error
Author: Manikandan Surendranath
Date: 06 Dec 2007 06:29 AM
I am writing a schematron which requires a external data reference. I came across an example in "http://www.zvon.org/xxl/SchematronTutorial/Examples/Example17/example.html" where it was suggested to use document() function.

But the processor gives me the Unknown function exception.

Postnext
Manikandan SurendranathSubject: document() function throws unknown function error
Author: Manikandan Surendranath
Date: 06 Dec 2007 06:57 AM
I got it, I was doing XPath implementation of Schematron where XSLT specific functions(like document() and key()) are unavailable.

Postnext
Manikandan SurendranathSubject: document() function throws unknown function error
Author: Manikandan Surendranath
Date: 06 Dec 2007 08:02 AM
But I got another issue in the below given line I am getting same error for current() function.

<report test="string-length(Year) = 2 and number(concat('20',Year,/Book/SchematronConfig/MonthMap/Month[@Name=current()/Month]/@Num,Date))>number(/Book/SchematronConfig/CurrentDate)">Future date not allowed.</report>

But current() is xpath function. Can some one help me?

Postnext
Alberto MassariSubject: document() function throws unknown function error
Author: Alberto Massari
Date: 06 Dec 2007 08:22 AM
Hi,
current() is not an XPath function, it's an XSLT one (like document()).

Alberto

Postnext
Manikandan SurendranathSubject: document() function throws unknown function error
Author: Manikandan Surendranath
Date: 06 Dec 2007 08:36 AM
Thanks.

My objective is to find Date field that is greater than current date. My service object gives me the data set like below

<FiledDate>
<Date>22</Date>
<Year>2007</Year>
<Month>december</Month>
</FiledDate>

In the same data set I have current date information in
<ReportDate>20071223</ReportDate>

I wish to find the FiledDates that are greater than ReportDate. How can I do this in XPath. I am only writing schematron rules which is XPath implementation.

Postnext
Alberto MassariSubject: document() function throws unknown function error
Author: Alberto Massari
Date: 06 Dec 2007 08:53 AM
Hi,
unless your schematron tool supports XPath 2.0, I don't see how you could convert the 'december' into '12' before concatenating the fields into a single string.

Alberto

Posttop
Manikandan SurendranathSubject: document() function throws unknown function error; DATE comparison
Author: Manikandan Surendranath
Date: 06 Dec 2007 10:36 AM
Originally Posted: 06 Dec 2007 10:34 AM
This is disappointing. My processor knows only XPath 1.0.

I have created the rules in dirty way, but works.
<!-- For two digit date and 4 digit year -->
<report test="contains(translate(Month,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'dec') and string-length(Date)=2 and string-length(Year) = 4 and number(concat(Year,'12',Date))>number(/Book/SchematronConfig/ReportDate)">Future date not allowed.</report>

<!-- For two digit date and 2 digit year -->
<report test="contains(translate(Month,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'dec') and string-length(Date)=2 and string-length(Year) = 2 and number(concat('20',Year,'12',Date))>number(/Book/SchematronConfig/ReportDate)">Future date not allowed.</report>

<!-- For one digit date and 4 digit year -->
<report test="contains(translate(Month,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'dec') and string-length(Date)=1 and string-length(Year) = 4 and number(concat(Year,'12','0',Date))>number(/Book/SchematronConfig/ReportDate)">Future date not allowed.</report>

<!-- For one digit date and 2 digit year -->
<report test="contains(translate(Month,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'dec') and string-length(Date)=1 and string-length(Year) = 2 and number(concat('20',Year,'12','0',Date))>number(/Book/SchematronConfig/ReportDate)">Future date not allowed.</report>

Like wise repeated for all twelve months. It works for both month pattern 'dec' and 'december'. I think I have to repeat the whole set one more time if my service gives me month in number, phew!!!

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.