Querying XML whose schema imports other schemas

Hi, Forum:

I successfully created my second Database and loaded several(6) instances.

Being happy with that, I’ve been trying to query the database, but it doesn’t return right results that I expect.

When I do this from TII XQuery,

for $t in input()
return $t

it returns 6 objects in the format of
xq:result/xq:object/TLTransaction

BUT, when I try this,

for $t in input()
return $t/ :cool:TLTransaction:cool:

it throws “8306:Invalid cursor position”.

Similar query works for the other database.

The only difference(that I can think of) of the “TLTransaction” Database is that it imports two other schemas(XMLSignature and XMLEncryption). I had defined both “Signature.tsd” and “Encryption.tsd” before I defined “TLTransaction.tsd”.

Here’s the beginning of my schema.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace=“http://www.myCompany.com” xmlns:xs=“http://www.w3.org/2001/XMLSchema” xmlns:tsd=“http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition” xmlns:ds=“http://www.w3.org/2000/09/xmldsig#” xmlns:xenc=“http://www.w3.org/2001/04/xmlenc#” xmlns:tl=“http://www.myCompany.com” elementFormDefault=“qualified”>
xs:annotation
xs:appinfo
<tsd:schemaInfo name=“TLTransaction”>
<tsd:collection name=“TxnCollection”/>
<tsd:doctype name=“tl:TLTransaction”>
tsd:logical
tsd:contentclosed</tsd:content>
</tsd:logical>
</tsd:doctype>
</tsd:schemaInfo>
</xs:appinfo>
</xs:annotation>
<xs:import namespace=“http://www.w3.org/2000/09/xmldsig#” schemaLocation=“Signature”/>
<xs:import namespace=“http://www.w3.org/2001/04/xmlenc#” schemaLocation=“EncryptedData”/>
<xs:element name=“TLTransaction”>
xs:complexType
xs:sequence
<xs:element name=“Header” type=“tl:TransactionHeaderType”/>
<xs:element name=“Body” type=“tl:TransactionBodyType”/>
</xs:sequence>
</xs:complexType>
</xs:element>


Can somebody help with this?


Scott Chung

Never mind :smiley:

I self-solved this by declaring namespace like this.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
declare namespace tl= "http://www.myCompany.com"
for $q in input()/tl:TLTransaction
return $q
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Hmmm… so if there are several namespaces, we have to declare them when we query. I see.

Well…I am learning.

Scott