zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #00976
[Bug 872799] [NEW] validate-in-place can set incorrect types
Public bug reported:
validate-in-place can set incorrect types.
The following query should produce a "smallEl" with type "smallEl", but it produces a "smallEl" typed as "bigEl".
import module namespace schema = "http://www.zorba-xquery.com/modules/schema";
import schema namespace d="http://www.example.com/doc" at "test23.xsd";
import module namespace file = "http://expath.org/ns/file";
declare revalidation lax;
variable $doc:=<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.zorba-xquery.org/schema">
<bigEl>
<a>old</a>
</bigEl>
</items>;
(
schema:validate-in-place($doc),
rename node $doc/*:bigEl as QName("http://www.zorba-xquery.org/schema","smallEl")
);
for $x in ($doc//*)
return (<node name="{node-name($x)}" type="{schema:schema-type($x)}"/>)
Schema
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.zorba-xquery.org/schema" xmlns="http://www.zorba-xquery.org/schema"
elementFormDefault="qualified">
<xs:element name="items">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="bigEl" type="bigEl"/>
<xs:element name="smallEl" type="smallEl"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="bigEl">
<xs:sequence>
<xs:element name="a" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="smallEl">
<xs:sequence>
<xs:element name="a" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
** Affects: zorba
Importance: High
Assignee: Federico Cavalieri (fcavalieri)
Status: New
** Changed in: zorba
Importance: Undecided => High
** Changed in: zorba
Assignee: (unassigned) => Federico Cavalieri (fcavalieri)
** Description changed:
validate-in-place can set incorrect types.
The following query should produce a "smallEl" with type "smallEl", but it produces a "smallEl" typed as "bigEl".
import module namespace schema = "http://www.zorba-xquery.com/modules/schema";
import schema namespace d="http://www.example.com/doc" at "test23.xsd";
import module namespace file = "http://expath.org/ns/file";
declare revalidation lax;
variable $doc:=<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://www.zorba-xquery.org/schema">
- <bigEl>
- <a>old</a>
- </bigEl>
+ xmlns="http://www.zorba-xquery.org/schema">
+ <bigEl>
+ <a>old</a>
+ </bigEl>
</items>;
(
- schema:validate-in-place($doc),
- rename node $doc/*:bigEl as QName("http://www.zorba-xquery.org/schema","smallEl")
+ schema:validate-in-place($doc),
+ rename node $doc/*:bigEl as QName("http://www.zorba-xquery.org/schema","smallEl")
);
for $x in ($doc//*)
return (<node name="{node-name($x)}" type="{schema:schema-type($x)}"/>)
+ Schema
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.zorba-xquery.org/schema" xmlns="http://www.zorba-xquery.org/schema"
+ elementFormDefault="qualified">
- Schema
- import module namespace schema = "http://www.zorba-xquery.com/modules/schema";
- import schema namespace d="http://www.example.com/doc" at "test23.xsd";
- import module namespace file = "http://expath.org/ns/file";
- declare revalidation lax;
+ <xs:element name="items">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="bigEl" type="bigEl"/>
+ <xs:element name="smallEl" type="smallEl"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
- variable $doc:=<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://www.zorba-xquery.org/schema">
- <bigEl>
- <a>old</a>
- </bigEl>
- </items>;
+ <xs:complexType name="bigEl">
+ <xs:sequence>
+ <xs:element name="a" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
- (
- schema:validate-in-place($doc),
- rename node $doc/*:bigEl as QName("http://www.zorba-xquery.org/schema","smallEl")
- );
+ <xs:complexType name="smallEl">
+ <xs:sequence>
+ <xs:element name="a" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
- for $x in ($doc//*)
- return (<node name="{node-name($x)}" type="{schema:schema-type($x)}"/>)
+
+ </xs:schema>
--
You received this bug notification because you are a member of Zorba
Coders, which is the registrant for Zorba.
https://bugs.launchpad.net/bugs/872799
Title:
validate-in-place can set incorrect types
Status in Zorba - The XQuery Processor:
New
Bug description:
validate-in-place can set incorrect types.
The following query should produce a "smallEl" with type "smallEl", but it produces a "smallEl" typed as "bigEl".
import module namespace schema = "http://www.zorba-xquery.com/modules/schema";
import schema namespace d="http://www.example.com/doc" at "test23.xsd";
import module namespace file = "http://expath.org/ns/file";
declare revalidation lax;
variable $doc:=<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.zorba-xquery.org/schema">
<bigEl>
<a>old</a>
</bigEl>
</items>;
(
schema:validate-in-place($doc),
rename node $doc/*:bigEl as QName("http://www.zorba-xquery.org/schema","smallEl")
);
for $x in ($doc//*)
return (<node name="{node-name($x)}" type="{schema:schema-type($x)}"/>)
Schema
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.zorba-xquery.org/schema" xmlns="http://www.zorba-xquery.org/schema"
elementFormDefault="qualified">
<xs:element name="items">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="bigEl" type="bigEl"/>
<xs:element name="smallEl" type="smallEl"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="bigEl">
<xs:sequence>
<xs:element name="a" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="smallEl">
<xs:sequence>
<xs:element name="a" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
To manage notifications about this bug go to:
https://bugs.launchpad.net/zorba/+bug/872799/+subscriptions
Follow ups
References