Re: Import validation

Pieter Lamers <[email protected]> Fri, 15 Dec 2023 19:52:53 +0100
Newsgroups gmane.text.xml.exist
Message-ID <[email protected]>
Hi Ted,

Where on http://exist-db.org/exist/apps/fundocs/index.html did you find 
a function validation:validate-report#2 ? I don't see it.

Best,
Pieter

On 15/12/2023 18:28, Ted Hickox wrote:
> I finally understand most of what is going on here.  The validation 
> module is sort of like an object in object oriented programming.  The 
> clear grammar cache is like an object method.  And the validation 
> report is like an object method.  I inserted the new line of code as 
> everyone here has suggested.  But I received a new error:
>
> xquery version "3.0";
> import module namespace 
> validation="http://exist-db.org/xquery/validation";
> let $schema := 
> xs:anyURI('/db/apps/HTML_Student/SVG_Ellipse_Webpage_XML_Schema.xsd')
> let $instance := 
> xs:anyURI('/db/apps/HTML_Student/SVG_Ellipse_Webpage_XML.xml')
> return
> (validation:clear-grammar-cache(), 
> validation:validate-report($instance, $schema))
>
>  Function validation:validate-report() is not defined in module 
> namespace: http://exist-db.org/xquery/validation [at line 5, column 36]
>
>  I'm guessing that this "method" doesn't exist in this module. Where 
> does it exist?
>
> nction validation:validate-report() is not defined in module 
> namespace: http://exist-db.org/xquery/validation [at line 5, column 36]
>
>
> Function validation:validate-report() is not defined in module 
> namespace: http://exist-db.org/xquery/validation
> Function validation:validate-report() is not defined in module 
> namespace: http://exist-db.org/xquery/validation
>
> On Thu, Dec 14, 2023 at 6:04 PM Michael Westbay 
> <[email protected]> wrote:
>
>     Hi Ted,
>
>     Let's first break down your program:
>
>         xquery version "3.0";
>         let $schema :=
>         xs:anyURI('/db/apps/HTML_Student/SVG_Ellipse_Webpage_XML_Schema.xsd')
>         let $instance :=
>         xs:anyURI('/db/apps/HTML_Student/SVG_Ellipse_Webpage_XML.xml')
>         return
>         (validation:clear-grammar-cache(),
>         validation:validate-report($instance, $schema))
>
>
>     The two *let* statements assign values to the variables /$schemai
>     and $instance/. So far, so good.
>
>     Then you make two function calls in the *return* statement, these to:
>
>     ・ /validation:clear-grammar-cache/()
>     ・ /validation:validate-report/(...)
>     The *validation* namespace is NOT built into XQuery. It needs to
>     be loaded into your program.
>
>     A quick check of the XQuery Function Documentation for
>     "validation" (https://exist-db.org/exist/apps/fundocs/index.html)
>     shows that the namespace of
>     *http://exist-db.org/xquery/validation* has the first function,
>     but not the second. The closest function to the second is the
>     *validation:jaxp-report/3* function:
>
>
>                 validation:jaxp-report
>
>         |validation:jaxp-report($instance as item(),
>         $enable-grammar-cache as xs:boolean, $catalogs as item()*) as
>         node()|
>
>         Validate document by parsing $instance. Optionally grammar
>         caching can be enabled and an XML catalog can be specified.
>         Supported grammars types are '.xsd' and '.dtd'. An XML report
>         is returned.
>
>         Parameters:
>             $instance 	The document referenced as xs:anyURI, a node
>             (element or result of fn:doc()) or as a Java file object.
>             $enable-grammar-cache 	Set the flag to true() to enable
>             grammar caching.
>             $catalogs* 	The catalogs referenced as xs:anyURI's.
>
>         Returns:
>             node() : a validation report.
>
>
>     To import the *validation* namespace into your program, enter the
>     following after the XQuery version line:
>
>         import module namespace "http://exist-db.org/xquery/validation";
>
>
>     Importing modules is one of the core functionalities of XQuery for
>     code reuse. I strongly recommend reading this page about creating
>     (and using) XQuery functions from the XQuery WikiBook:
>
>         https://en.wikibooks.org/wiki/XQuery/Creating_XQuery_Functions
>
>
>     That explains how to create your own modules and import them. The
>     example I provided above (which doesn't have the *at* clause) is
>     for modules built into eXist.
>
>     The XQuery Function Documentation page and XQuery WikiBook are two
>     resources you should have bookmarked.
>
>     Hope this helps.
>
>     -- 
>     Michael Westbay
>     Writer/System Administrator
>     http://www.japanesebaseball.com/
>
>
>
> _______________________________________________
> Exist-open mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/exist-open

-- 
Pieter Lamers
John Benjamins Publishing Company
Postal Address: P.O. Box 36224, 1020 ME AMSTERDAM, The Netherlands
Visiting Address: Klaprozenweg 75G, 1033 NN AMSTERDAM, The Netherlands
Warehouse: Kelvinstraat 11-13, 1446 TK PURMEREND, The Netherlands
tel: +31 20 630 4747
web:www.benjamins.com

_______________________________________________
Exist-open mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/exist-open