- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 16 Mar 2009 17:55:36 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=6513 --- Comment #9 from Jonathan Robie <jonathan.robie@redhat.com> 2009-03-16 17:55:35 --- (In reply to comment #8) > >Any type that is statically known is in the ISSD. > > Here's some evidence that I'm not the only one who considers this statement to > be wrong. Look at error err:XQST0036 > > <quote> > It is a static error to import a module if the importing module's in-scope > schema types do not include definitions for the schema type names that appear > in the declarations of variables and functions (whether in an argument type or > return type) that are present in the imported module and are referenced in the > importing module. > </quote> > > Because this is a static error, it is presumably using only information known > statically. And it seems to distinguish two sets of types: the types in the > ISSD of module M, and the types named in the declarations of variables and > functions referenced by M. Now, if the ISSD of module M includes all statically > known types, then this error cannot possibly occur. So whoever wrote this rule > (it wasn't me) clearly believed that it was possible for statically known types > to be absent from the ISSD of a particular module. We may be talking past each other. When you raised the issue of whether schema import is transitive, I assumed you were asking whether the assembled schema is imported, after the schema processor performs any imports. Now I suspect you're really asking whether a schema import in one module affects the ISSD of other modules. Do I understand you correctly? As I read this, there are two ISSDs, that of the importing module and that of the imported module. Any name used in the variables and functions must be in the ISSD of the imported module. Any name used in the declaration of variables and functions in the imported module that are actually used in the importing module must be defined in the importing module's ISSD. Each module has its own static context: http://www.w3.org/TR/xquery/#id-module-import says: > Each module has its own static context. A module import imports only > functions and variable declarations; it does not import other objects from > the imported modules, such as in-scope schema definitions or statically known > namespaces. Module imports are not transitive—that is, importing a module > provides access only to function and variable declarations contained directly > in the imported module. For example, if module A imports module B, and module > B imports module C, module A does not have access to the functions and > variables declared in module C. -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Monday, 16 March 2009 17:55:47 UTC