Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » XML Schema Definition (XSD) » Type derivation results in duplicate particles
Type derivation results in duplicate particles [message #59852] Tue, 26 April 2005 21:13 Go to next message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Hi,
I'm experiencing some odd behavior with derived types.

I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).

*If* A is in one namespace and B&C are in a second ns, then I find the
XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C. This does
*not* occur when all three are in the same namespace.

More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).

Is this actually the correct behavior, or could I be using the library
incorrectly?
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.

Thanks,
Anand Thakker
Mindreef, Inc.


XSD Object Model:
-----------------

XSDComplexTypeDefinition
{
name="StrangeType"
content = XSDModelGroupImpl
{
compositor=sequence
particles[2] =
[ 0: XSDParticleImpl
{
term = XSDModelGroupImpl
{
compositor=sequence
particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
}
}
1: XSDParticleImpl
{
term = XSDModelGroupImpl
{
compositor=sequence
particles[1] = [ 0: middleTypeParticle ]
}
}
]
}
}


Schemas:
--------


<!-- Schema One -->
<xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
xmlns:this="http://one/"
xmlns:two="http://foo/bar/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:complexType name="StrangeType">
<xs:complexContent>
<xs:extension base="this:MiddleType">
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="MiddleType">
<xs:complexContent>
<xs:extension base="two:BaseType">
<xs:sequence>
<xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>



<!-- Schema Two -->
<xs:schema elementFormDefault="qualified"
targetNamespace="http://foo/bar/"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >

<xs:complexType name="BaseType">
<xs:sequence>
<xs:element minOccurs="0" name="id" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:schema>
Re: Type derivation results in duplicate particles [message #59879 is a reply to message #59852] Tue, 26 April 2005 21:59 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

This is a multi-part message in MIME format.
--------------050200020709080002050208
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Anand,

You need to add an import. When I add that, it looks fine in the
Semantics view:


Even without that, I'm not seeing duplicates:




Anand Thakker wrote:

> Hi,
> I'm experiencing some odd behavior with derived types.
>
> I have a derivation chain with three types; say C derives from B and B
> derives from A (all by extension).
>
> *If* A is in one namespace and B&C are in a second ns, then I find the
> XSDParticle representing B's content (obtained by
> xsdComplexType.getContentType()) is duplicated in type C. This does
> *not* occur when all three are in the same namespace.
>
> More concretely, here is what the object hierarchy looks like from my
> watch window for the the complexType "StrangeType" in the schema
> fragment below.
> Notice the XSDParticleImpl middleTypeParticle appears twice (the same
> reference in mem).
>
> Is this actually the correct behavior, or could I be using the library
> incorrectly?
> The only thing out of the ordinary about my usage (I think) is that I
> have custom hooks into the parser for resolving schema fragments
> embedded in other files.
>
> Thanks,
> Anand Thakker
> Mindreef, Inc.
>
>
> XSD Object Model:
> -----------------
>
> XSDComplexTypeDefinition
> {
> name="StrangeType"
> content = XSDModelGroupImpl
> {
> compositor=sequence
> particles[2] =
> [ 0: XSDParticleImpl
> {
> term = XSDModelGroupImpl
> {
> compositor=sequence
> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
> }
> }
> 1: XSDParticleImpl
> {
> term = XSDModelGroupImpl
> {
> compositor=sequence
> particles[1] = [ 0: middleTypeParticle ]
> }
> }
> ]
> }
> }
>
>
> Schemas:
> --------
>
>
> <!-- Schema One -->
> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
> xmlns:this="http://one/"
> xmlns:two="http://foo/bar/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <xs:complexType name="StrangeType">
> <xs:complexContent>
> <xs:extension base="this:MiddleType">
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="MiddleType">
> <xs:complexContent>
> <xs:extension base="two:BaseType">
> <xs:sequence>
> <xs:element name="DuplicatedElement" type="xs:string"
> minOccurs="0" maxOccurs="1" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> </xs:schema>
>
>
>
> <!-- Schema Two -->
> <xs:schema elementFormDefault="qualified"
> targetNamespace="http://foo/bar/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>
> <xs:complexType name="BaseType">
> <xs:sequence>
> <xs:element minOccurs="0" name="id" type="xs:int" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>



--------------050200020709080002050208
Content-Type: multipart/related;
boundary="------------020806090305010707020503"


--------------020806090305010707020503
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anand,<br>
<br>
You need to add an import.&nbsp; When I add that, it looks fine in the
Semantics view:<br>
<blockquote><img src="cid:part1.03080908.01030103@ca.ibm.com" alt=""><br>
</blockquote>
Even without that, I'm not seeing duplicates:<br>
<blockquote><img src="cid:part2.04040808.05050207@ca.ibm.com" alt=""><br>
</blockquote>
<br>
<br>
Anand Thakker wrote:
<blockquote cite="midd4mb6n$slj$1@news.eclipse.org" type="cite">Hi,
<br>
I'm experiencing some odd behavior with derived types.
<br>
<br>
I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).
<br>
<br>
*If* A is in one namespace and B&amp;C are in a second ns, then I find
the XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C.&nbsp; This does
*not* occur when all three are in the same namespace.
<br>
<br>
More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
<br>
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).
<br>
<br>
Is this actually the correct behavior, or could I be using the library
incorrectly?
<br>
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.
<br>
<br>
Thanks,
<br>
Anand Thakker
<br>
Mindreef, Inc.
<br>
<br>
<br>
XSD Object Model:
<br>
-----------------
<br>
<br>
XSDComplexTypeDefinition
<br>
{
<br>
&nbsp; name="StrangeType"
<br>
&nbsp; content = XSDModelGroupImpl
<br>
&nbsp; {
<br>
&nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp; particles[2] =
<br>
&nbsp;&nbsp;&nbsp; [ 0: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[1] = [ 0: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; ]
<br>
&nbsp; }
<br>
}
<br>
<br>
<br>
Schemas:
<br>
--------
<br>
<br>
<br>
&lt;!-- Schema One --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:this=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:two=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a>&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="StrangeType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="this:MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="two:BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" /&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
<br>
<br>
<br>
&lt;!--&nbsp; Schema Two --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
<br>
&nbsp;&nbsp;&nbsp;&nbsp;targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a> &gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element minOccurs="0" name="id" type="xs:int" /&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
</blockquote>
<br>
</body>
</html>

--------------020806090305010707020503
Content-Type: image/jpeg;
name="moz-screenshot-1.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part1.03080908.01030103@ca.ibm.com>
Content-Disposition: inline;
filename="moz-screenshot-1.jpg"

/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CAEiAPsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3XULp7O082OJZXMkcaqz7 QS7hRk4OPvel
UWuNQsWaaaytBHPcRq5juSWBYpGCB5Qz2PJz74wKuanbzXNlstxGZVlikUSM VU7JFbBIBx93
0rn7Twza2s+7TvDWh6ZIssQlntE2OUV0kKjEK7gdo74yPUUAbWu3E1rpZkt5 DFI00MYcAEqH
lVTjIIzhj2rK0t9V1C+1G3k1C/t1tJfLV2jiIk688xDHG09+GFaWqaQs+nGO xt7aOdXidMjY
CEdG25AJAIjUdD0HpWTeaTrN40rmxsY3lZXcpqk20lcAEoYih4UDlT0rVO0H ZK/yMpfHre3z
NTTZLqPWL6yuLyS5SKGGRGkRFILGQH7oHHyisaTxx5fi+50P7PYt5F3Fa+Wt /m8k8yON/MS3
2cxr5nzNv4VHb+HFa2h6dfWdxNNerAmbeC3RYpjJxHv5JKLyd3p2qjN4WvJ9 YvZW1OAaZeah
b6hJbi0PnCSFYdoEvmbdpaBCRszgsMjgiJblw2NB/FGkxS3UU808Eltnck9p LGZcME/dBlHn
fMyqPL3ZLoByy5jk8XaPCkLzSXcQkTzG8yxnUwJuK75gUzCmVbDSbQQrEHAJ HNxfDXybqWbz
NDnzaPa5utG8x7ndLE/mXTeaPPk/dZ3YX5mLe1ST/DWG4Nu9xdWl/P8AZxb3 E+q2IvZFUSSS
ZgaVyYyDK4G/zeFjB3bTuko1JPE9/Z65qltqOn2Nvpmm2gvri8S9kkcQN520 iIQjLfuTld3G
eC3StDU/FGk6ReCzu5pzdN5e2GC0lndt4lK4WNWJ4glPHTZzjIzYh0zyvEN7 q3nZ+02kFt5W
37vlPM27Oec+djGONvfPHH2fhPVLHR/Dg0yKCyvo9Q+13InHnpap9klhSMgS L5nlp5MO5WG7
bvI5agDpJPF+hxJC7XchSRN7slvKwt1DFSZ8L+4AZXBMm3BRwcbGxuVwdx8N La4mWeSTTbie
VGW6kvdLS4Kl5pZma3DtiI7p5MbhIMCPIO07u8oAKKKKACiiigAooooAKKKK ACiiigAooooA
KKKKACiiigAooooAKKKKACq9uu2e7O3G6UHO3GfkUZ+6M/m3TrxgWKr267Z7 s7cbpQc7cZ+R
Rn7oz+bdOvGAAWK5+fVrh7my/wBGtF829lt7XzJ23SSIsuc4ibb8sbnOR0xn nB6CuL1Pwda6
lfWk2o6FpV9JBdzSRSzfMZEfzSI5Mwt8g8wtjONwU9eCAdVp9095aebJEsTi SSNlV9wBRypw
cDP3fSuXl1LVmu7YR3N2Uur+e2/cxx7YgkpUdY2J+UE8n+E10FjpiLaMt7bW zzPJK74G8Yd3
IGSATgSMOnc+tZT6VqyLJAlpYzQi7luYpDfzQOC7Mf4E44cjqa1p26mdS+hZ vk1DTUt5xq9x
MGuoImjkiiAKvIqnogPQnvWtfXsWn2cl1Mk7xpjIggeZzkgcIgLHr2HHXpXM 22g6usu2SK0S
J7mGeRvtjysojk8zAzEpYnJGWYnpzxWt4k0P+39OjtvMgHlyiXyrqDz7ebAI 2yxbl3qN24Dc
MOqN/Dgw23Fcy1HHd22K7+NdBSVYzdTnMQmkdbOZkgQs6ZmcJthw0cgbzCu3 Y27GDVx9dtHt
42s5Y5Z7i4ns7VJN6LJcRCTchbaSoBhk+bBHy8ZyM83p/wAPPsOg61pn9oQL /amnyWWbez8q
ODfLdSZRN5+UfasBc9E688bGnaJ5fi/VtZlt/J37Yrf593mZji82Xrxu8uGP aRx9n3D/AFhq
SyPQfEtzqCI2q2dpYGe9msbVYLp7gyywtMJAcxIFGIHIPOR1wcAySeNdBjun t2upy0W4zSLZ
zNHCFlkiZpJAm2NQ8Ug3MQMITnHNV7/w9cReE7nTLNvPuptQe6hlwF+zvJdm dZcE4fySwfaT
8/l4/ixWfdeDryXUb7TbGWCx8PT6Ja6W4aIzSNGhuFZI28wbGVJF+Z1cEsOD gggHSQ+IdMuN
UOnRzyGfe0auYJBFI653IkpXY7ja2VViRsfI+Vsalcnpnge20zxK+qxrpuDc T3KyDTUF2XlL
Fg9wSSUBkbAVVOAgLEBt3WUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FV7dds92duN0oOduM/Ioz90Z/NunXjAsVXt12z3Z243Sg524z8ijP3Rn826d eMAAsVjrcahf
Ms0NlaGOC4kVDJckMSpeMkjyjjueDn3xkVsVytz4WtryZ31Dw3oOpuJJTHPe AM4RpGcLzE2M
bzxn1oA6DT7p7y082SJYnEkkbKr7gCjlTg4Gfu+lVT4k0cNdK19GjWpYShwV II3ZxkfN9xum
elOsdMRbRlvba2eZ5JXfA3jDu5AyQCcCRh07n1qwmmWEf2nZY2y/as/aNsSj zs5zv4+bqevq
apcvUl83Qov4p0SO0W5a/jEbErjaxYEbs5XG4fdbkjtVzUtUtNJt1mu3kAdw kaRRPLJI2CcI
iAsxwCSADgKT0BNI+j6ZJZR2T6daNaRtuSAwKUU88hcYB5P5mqniTRn1zTo7 aI2KSJKJVku7
VpvLIBAaPZJGySDPDq2RzjnkEuXoEebqA8UaSbyG1M06yS7Bl7SVUjZwCkcj ldsch3LhHKt8
6jGWGa8fjXQZLpLdbqcNLtMMjWcyxzBpY4laOQptkUvLGNykjDg5xzWXD8Pb a31uG/EtpdFX
glkub+wS4vmeFERStwxwoIiUn5Ccs5DKSCtM+CNUF/pNkb+CTTNM09obGZbb a8Lxz2kkAmzI
fNz9nG7aI87W+7uGJKOou/FGk2c81u808txDL5LwW1pLPIGCI5OyNSxULLHl gNoLqCcnFRxe
L9Dnv/scN3JId8aeelvKbfdIivGPPC+VlhImBu5LqByQK5+6+Hs2oXUuo6jd aNf6hJcSS4u9
IMtqqvFBGcRNLkOPsyYbf0ZxjkEakPg1LbTriyivcRy6hZXinyFXaLYWwCbU 2r832b+EKBv4
XA5ALg8XaO1u9wkl28QdUjZLGdvtBYEjyMJ+/G1WbMe4bRu6c1qWN9b6jZx3 VrJ5kL5AJUqQ
QSGVlOCrAggqQCCCCARXJzeBZrnQbHR7q8027tNLeM6dHdaaZUCpG8QFwpkx Kdj5yvl4YBsY
+Wuk0TS00XR4LCMQBY9xIt7dYIwWYsQka8KuScDk46ljliAaFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFV7dds92duN0oOduM/Ioz90Z/NunXjAsVXt1 2z3Z243Sg524
z8ijP3Rn826deMAAsUUUUAFUby8uYryC1tbeKV5Y3kJlmMYAUoOytn7/AOlX qx9a0r+05YhL
YWN/a+U8ctten5Gy0bA42MDgx9x6UAR6FqjXdvpqpFAbO6shcW00UhO+MBMZ UxptyHBxgY9B
V3U5JVksYYp3g8+4KM6BScCN2/iBHVR2rG8OeFYdBhsrODTrG2s7S3Mf7pg7 zSfusSPiNAX/
AHQJbqTj0qPxTfroZszaw2UXlxzXMYkQgSyxoqJCgVl+d1dgv3uF4U44umry sTN2RDpniiz1
bWZdMtNW1Eyp5gDlbfaxQgMMBSy9eNyjODjOK6fSp3utHsriVt0ktvG7NjGS VBNchd21j4V0
3WtX0nUhK1vHLMtjPff6PG7OQcqoySXR1AJ5YFQQckdlYrbJp9stkyNaCJRC yPuUpgbSD3GM
c1dXlt7qM6fNfU5e58d2p0zS5bL9/dXstgreVbzywRrcSRAhpdihW2SblD7W 5QlfmAPYVw9l
4CvNO06z0221mD7CkthcXQlsi0kslqIFGxhIAisLePgq5BLcnIA7isTYKKKK ACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKAKuoXT2dp5scSyuZI41Vn2gl 3CjJwcfe9Kot
cahYs001laCOe4jVzHcksCxSMEDyhnseTn3xgVc1O3mubLZbiMyrLFIokYqp 2SK2CQDj7vpX
P2nhm1tZ92neGtD0yRZYhLPaJscorpIVGIV3A7R3xkeooA2tduJrXSzJbyGK RpoYw4AJUPKq
nGQRnDHtWVpb6rqF9qNvJqF/braS+WrtHERJ155iGONp78MK0tU0hZ9OMdjb 20c6vE6ZGwEI
6NtyASARGo6HoPSsm80nWbxpXNjYxvKyu5TVJtpK4AJQxFDwoHKnpWqdoOyV /kZS+PW9vmam
myXUesX1lcXklykUMMiNIiKQWMgP3QOPlFY1346+yaxrumvp376x8uOw/f8A /H/Myw/u/u/u
sPc26bmJH7zPRWxraHp19Z3E016sCZt4LdFimMnEe/kkovJ3enanW/h63j1W 7v5286SXUBfw
DBXyX+yrbHofm+UN1/v9MgGoluXDYy9I8eafqGkQXtxHJHLMkTC0tIpruVd8 EMxyqR5wvnKC
wBX5kyQW2inD4+EvhzQrgJ5mp3/9nC4WK0meCE3DxB1aQAqjbJCVVmzyhwdw yaP4CvPD6W82
m6zB9uhiW3ElzZGSMx/Z7WJvkWRTuJtEYHdgBmGDwQWXgK807TrPTbbWYPsK S2FxdCWyLSSy
WogUbGEgCKwt4+CrkEtycgCSjQ0DxnZajpOjPey7L69tLeSYxW8hgilljVhG 0mCiMS67UZtx
3p13Lk03xPfveahHrOn2Njb2V3FYtLBeyXBeeUQmMBfJX5T56jcTwe2Oay9K +Gltpd1YSiTT
bg26WpkuJ9LR7ovBFHGvlSsxEaERKdu1iCzkMCQV3L3RPL0vxT/o/wDaf9rb 5fsO/wAnzP8A
Ro4fK8zPG7y/vcY3e2aAJLzxdo9jfvYSSXct2jsjQ2tjPcMCqRO2RGjcBZ4u enzgdcgSDxTo
zXkNtHeeb5uwLPFE7wAuAUVplBjVmDJtUsCd6YB3LnDHhrWrDUtDOl3lor21 lere3t1amRZZ
5pYJGYRrKhUu6yPwSq8jHIqOx+Gthpup2k9t9hkhg+zHzbvTo5rwGCOONAk5 4RSIkyNhOS5U
qSCoB3FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB Ve3XbPdnbjdK
DnbjPyKM/dGfzbp14wLFV7dds92duN0oOduM/Ioz90Z/NunXjAALFc/Pq1w9 zZf6NaL5t7Lb
2vmTtukkRZc5xE235Y3OcjpjPOD0FcXqfg611K+tJtR0LSr6SC7mkilm+YyI /mkRyZhb5B5h
bGcbgp68EA6rT7p7y082SJYnEkkbKr7gCjlTg4Gfu+lcvLqWrNd2wjubspdX 89t+5jj2xBJS
o6xsT8oJ5P8ACa6Cx0xFtGW9trZ5nkld8DeMO7kDJAJwJGHTufWsp9K1ZFkg S0sZoRdy3MUh
v5oHBdmP8CccOR1Na07dTOpfQs3yahpqW841e4mDXUETRyRRAFXkVT0QHoT3 pvizxL/wjNrY
S7bH/S7v7N5l/e/ZYYv3Ukm5pNjY/wBXtAxyWFUbbQdXWXbJFaJE9zDPI32x 5WURyeZgZiUs
TkjLMT054rW17SbzU20yewvYLS6sLs3KNPbGdGzFJEVKh0PSUnOe1Q23Fcy1 HHd22K9v4tsv
7Hs9Qvo57aO435kjgkmgUI20yGVV2rCfvrI+0MhDcDOLD+KNJjlukM05W1yJ JVtJTEzBgnlp
IF2ySbyE2KS27K4yCK5fWPhp/aumSWpvrGSSeKdZZL7TvtAhkmkkkeS2XzF8 li0rckucJECS
Uy1y98ArqM2ptcXNokF24kS0t7Rkt5HEyTB7mIyFZnJjVWYBCylwTyuySy5q niyePTIb/RbG
C9jN3FZzx3k0tnLDJJJHGgMbRMw/1isdwU7SCAwYVqJrtolvI15LHFPb3EFn dJHvdY7iUR7U
DbQWBM0fzYA+bnGDjLtPB6W2gjTUext2bULe+f7Bp620IMUsT7VjBJGREASz McknoAosS6J9
q8cxatJb7IbW0TZLvz502ZVXjPy+Wkko6Yb7T6xigAs/Gug31mbqK6nWExLN GZ7OaEzoxABi
V0BlyXQDYG5dB1Zc6mm6paatbtNaPIQjlJElieKSNsA4dHAZTgggEDIYHoQa 4fTfAN9qHhPS
bPxFc2hnstMhtYbZLTKRlWgkKTgyMJhut41O0oCN/wDeBXrPDehJ4f06S2RL FGllMrrYWS2s
IOAvyoCT0UZLMxJzyBhQAbFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFV
7dds92duN0oOduM/Ioz90Z/NunXjAsVXt12z3Z243Sg524z8ijP3Rn826deM AAsVjrcahfMs
0NlaGOC4kVDJckMSpeMkjyjjueDn3xkVsVytz4WtryZ31Dw3oOpuJJTHPeAM 4RpGcLzE2Mbz
xn1oA6DT7p7y082SJYnEkkbKr7gCjlTg4Gfu+lVT4k0cNdK19GjWpYShwVII 3ZxkfN9xumel
OsdMRbRlvba2eZ5JXfA3jDu5AyQCcCRh07n1qwmmWEf2nZY2y/as/aNsSjzs 5zv4+bqevqap
cvUl83Qov4p0SO0W5a/jEbErjaxYEbs5XG4fdbkjtVzUtUtNJt1mu3kAdwka RRPLJI2CcIiA
sxwCSADgKT0BNI+j6ZJZR2T6daNaRtuSAwKUU88hcYB5P5mqniTRn1zTo7aI 2KSJKJVku7Vp
vLIBAaPZJGySDPDq2RzjnkEuXoEebqA8UaSbyG1M06yS7Bl7SVUjZwCkcjld sch3LhHKt86j
GWGa8fjXQZLpLdbqcNLtMMjWcyxzBpY4laOQptkUvLGNykjDg5xzWXD8Pba3 1uG/EtpdFXgl
kub+wS4vmeFERStwxwoIiUn5Ccs5DKSCtM+CNUF/pNkb+CTTNM09obGZbba8 Lxz2kkAmzIfN
z9nG7aI87W+7uGJKOou/FGk2c81u808txDL5LwW1pLPIGCI5OyNSxULLHlgN oLqCcnFRxeL9
Dnv/ALHDdySHfGnnpbym33SIrxjzwvlZYSJgbuS6gckCufuvh7NqF1LqOo3W jX+oSXEkuLvS
DLaqrxQRnETS5Dj7MmG39GcY5BGpD4NS2064sor3EcuoWV4p8hV2i2FsAm1N q/N9m/hCgb+F
wOQC4PF2jtbvcJJdvEHVI2Sxnb7QWBI8jCfvxtVmzHuG0bunNaljfW+o2cd1 ayeZC+QCVKkE
EhlZTgqwIIKkAggggEVyc3gWa50Gx0e6vNNu7TS3jOnR3WmmVAqRvEBcKZMS nY+cr5eGAbGP
lrpNE0tNF0eCwjEAWPcSLe3WCMFmLEJGvCrknA5OOpY5YgGhRRRQAUUUUAFF FFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABVe3XbPdnbjdKDnbjPyKM/dGfzbp14wLFV7dd s92duN0oOduM
/Ioz90Z/NunXjAALFFFFABVG8vLmK8gtbW3ileWN5CZZjGAFKDsrZ+/+lXqx 9a0r+05YhLYW
N/a+U8ctten5Gy0bA42MDgx9x6UASWM91b3Fvp1xawRr9nZkeKbdwhRcEbFA +8OnHHSp77Vr
HTZreK8uBE9wdseVJB5A5IGByy8n1rK0fQoLSeF7fRtM06yEbt5Fou3dIxjI Yp5aYI8scnng
elazaVpzvC7afaloWDRMYVzGQAAV44OFUcf3R6U1a+one2hAniLR5LtrZdQg MigNndhTnbjD
fdP3l4B71PpuqWerW7T2M3mxK20ttK84B7gdiD+NSJY2kd7JepawLdyLtecR gOw44LdSOB+Q
otLG00+IxWVrBbRltxSGMICemcDvwPypvltoJc19TLHi7R2t3uEku3iDqkbJ Yzt9oLAkeRhP
342qzZj3DaN3Tmo7zxroNjZi6lup2hETTSGCzmmMCKSCZVRCYsFHB3heUcdV bGGfhwstkY57
jTXKXCT29kNPb+zYyqSIf9FaUgFhM5O11BZUbGQ26PWPA+o23hfVbbQLixW4 vNKksprYWCxx
yczOqwhXRYfmnkGW38bSSSGLSUdY/iPSIreO4lvo4oJLie2EkgKqJIRIZQSR hQohlO44Hy9e
Rmm/jTRI4lZ3vlkeUQrbnTbkTsxV2BEPl+ZtIjkw23b8jDOQay9Q8CTakDYT arGuim4vLjyE
tSLjdcxzrIPNL7cA3Lkfu+gUHOCTJpPgZNNvrO8B0q3kt7sXDR6ZpS2kcgEM 0QBAZmLfvycl
iMKAFBLEgGwnijSZZbWKCaeeS5xtSC0lkMWWKfvQqnyfmVlPmbcFHB5VsSab 4h0zVrhoLOeR
nCGRC8EkazICAXiZlAlTlfmQsPmXn5hnL03wteaPqkl7YanB/pMrm7Se0L74 zczTqsZEi7GH
2iRSx3A4U7Rggx+FPA9t4WuA8C6aEit/s0L22mpDPImV5nlyTI/yLyuwEliV Py7QDrKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAqvbrtnuztxulBztxn5FGfuj P5t068YFiq9u
u2e7O3G6UHO3GfkUZ+6M/m3TrxgAFiiiigAooooAr2C7NOtl27cRKNu3bjgc Y2rj/vkfQdKL
+6+xadc3ezf5ETSbc43bQTjP4UWC7NOtl27cRKNu3bjgcY2rj/vkfQdKbqVs 95pV5axlQ80D
xqW6AlSBn86AMefV7u1vdQJtLNri1s47ieJblsiLMu0g+SM5KSDGeMdBnJ6K uLm8GQtqmo6r
BoGjQ6he25hM6yDMbHzN0gIhB3t5pDHPzBVHauj1Py9O0u91C3sY5bm3hknj RUG53CuwGQM5
JZv++j600ruwM5jUPFdvo1hpst/ql+1xeWwuPLhW3GBtBJG8DPXAUEsewNdH plxJJf3ERu5L
mH7PDNG0iqD85f8AuqP7o61yttYadrSwM+sR20tgxsrS80248lbmEpEMLuZ8 gPIqZDE7gOQT
iug8P38N9quuIGtTcWVytp+5nMrGJUDKXz/FueQHjqCMnbmuiajy6L+rmEOb m1f9WJ73xHZa
bqM9rdPho4oZFjhjklmkMhlACxohLcQsflLHCuSFC5J4Y1h9e0U38ibM3d1E imJozsjnkjXc
rfMrbUGQcc54HSqeqeF5rzxB/blpfxwXkSQC3EtuZI1aMXKkuA6lgVunAAK4 Kg5IyK0PD+lT
aNpP2S4uY7mdri4uJJY4jEpaWZ5SApZiAC+Op6VzG5qUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQAVXt12z3Z243Sg524z8ijP3Rn826deMCxVe3XbPdnb jdKDnbjPyKM/
dGfzbp14wACxRRRQAVRvLy5ivILW1t4pXljeQmWYxgBSg7K2fv8A6VerH1rS v7TliEthY39r
5Txy216fkbLRsDjYwODH3HpQBJYz3VvcW+nXFrBGv2dmR4pt3CFFwRsUD7w6 ccdKnvtWsdNm
t4ry4ET3B2x5UkHkDkgYHLLyfWszSvD8Nhdx+Ro2ladZojnybIDa0jNGQxUR qMjyxz14HpWo
2lac7wu2n2paFg0TGFcxkAAFeODhVHH90elNWvqJ3toQJ4i0eS7a2XUIDIoD Z3YU524w33T9
5eAe9T6bqlnq1u09jN5sSttLbSvOAe4HYg/jUiWNpHeyXqWsC3ci7XnEYDsO OC3UjgfkKLSx
tNPiMVlawW0ZbcUhjCAnpnA78D8qb5baCXNfUyx4u0drd7hJLt4g6pGyWM7f aCwJHkYT9+Nq
s2Y9w2jd05qO88a6DY2YupbqdoRE00hgs5pjAikgmVUQmLBRwd4XlHHVWxhn 4cLLZGOe401y
lwk9vZDT2/s2MqkiH/RWlIBYTOTtdQWVGxkNuj1jwPqNt4X1W20C4sVuLzSp LKa2FgsccnMz
qsIV0WH5p5Blt/G0kkhi0lHWP4j0iK3juJb6OKCS4nthJICqiSESGUEkYUKI ZTuOB8vXkZpv
400SOJWd75ZHlEK25025E7MVdgRD5fmbSI5MNt2/IwzkGsvUPAk2pA2E2qxr opuLy48hLUi4
3XMc6yDzS+3ANy5H7voFBzgkyaT4GTTb6zvAdKt5Le7Fw0emaUtpHIBDNEAQ GZi378nJYjCg
BQSxIBsJ4o0mWW1igmnnkucbUgtJZDFlin70Kp8n5lZT5m3BRweVbEmm+IdM 1a4aCznkZwhk
QvBJGsyAgF4mZQJU5X5kLD5l5+YZy9N8LXmj6pJe2Gpwf6TK5u0ntC++M3M0 6rGRIuxh9okU
sdwOFO0YIMfhTwPbeFrgPAumhIrf7NC9tpqQzyJleZ5ckyP8i8rsBJYlT8u0 A6yiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKr267Z7s7cbpQc7cZ+RRn7oz+bd OvGBYqvbrtnu
ztxulBztxn5FGfujP5t068YABYooooAKKKKACq9/dfYtOubvZv8AIiaTbnG7 aCcZ/CrFVdSt
nvNKvLWMqHmgeNS3QEqQM/nQBjz6vd2t7qBNpZtcWtnHcTxLctkRZl2kHyRn JSQYzxjoM5PR
Vxc3gyFtU1HVYNA0aHUL23MJnWQZjY+ZukBEIO9vNIY5+YKo7V0ep+Xp2l3u oW9jHLc28Mk8
aKg3O4V2AyBnJLN/30fWmld2BnMah4rt9GsNNlv9Uv2uLy2Fx5cK24wNoJI3 gZ64Cglj2Bro
9MuJJL+4iN3Jcw/Z4Zo2kVQfnL/3VH90da5W2sNO1pYGfWI7aWwY2Vpeabce StzCUiGF3M+Q
HkVMhidwHIJxXQeH7+G+1XXEDWpuLK5W0/czmVjEqBlL5/i3PIDx1BGTtzXR NR5dF/VzCHNz
av8Aqwl7rmqR+IZ9M07SILyO1tIbqd2vPKkYSPKoWNChVm/cn7zoMkAkDJqx aeKdGvtOF/b3
m+1MtvDv8px884iMQwRn5hPF9N3OMHFe90PVJPEM+p6dq8FnHdWkNrOjWfmy KI3lYNG5cKrf
vj95HGQCQRkVnt4Ie22WelX8FppBu7O6ktpbZpZAbbyQqpJ5g2qVt4x8ysc7 jk5AHMbkk3jr
T7rTre40h5Hee4sxGLu0mgEsM1xFEzx71XeAsoOVyAWTPUA6Gk+KdP1YWKQt JLPdW8cxNtBN
JBHvjEgVpfLCqdpBAfaxDKdo3AVzeieCNUl0Hw+mt38Ed1plpaRRQwW23ygk tvM6SN5jCRs2
yKGXaBljg5AGhpHgu80bS20q21rZYz2iQ3TpblLnzFtktxJDIHxHxFGwBVyD nnkYALF34602
3ay8uC+k8+7FvLEbG4SeIGKWRXEBj8xlJiKghcfeOfkIrQPinRlvJraS88ry t4aeWJ0gJQEu
qzMBGzKFfcoYkbHyBtbHN2Hw9m06/fUrS60azvFeF7dLHSDBbqyJOhMkYlJc lblxkMuCq9QC
DI/w1sJrzUTJ9hW3vftRaaLToxfZuA4cNcNnKjzX2gIpACAkgMGAK+p/EkWe sPbwW8Edqfs0
ay6wZtNVHkW6ZizSxk7cW6hcLyzEZ7DUtPGBS9lTVBaJF9itbiAac0l4Zmme 44jKoGlGyFX+
VOBvPIGRXn8I69c63Hrcuu6b/aELwmLbpbiILGlymGXzyST9qY5DDG0cHNGq eBZtcuPt2qXm
m3d4qQBUl00vas0RuRl4WkJYbbk4G8YZA2SPloA1H8a6Ckqx/ap2ZohKdlnM wQFnRVYhPkkL
xugjbDlxtA3cVJJ4v0OJIXa7kKSJvdkt5WFuoYqTPhf3ADK4Jk24KODjY2Mu 38CJbRlI7uCJ
W+wkx29ksMam3u5LkhEUgKrGQqByQBklySTTufhpbXF3JcPJptw87zCVr7S0 uWjR7iaceTub
Ebjz2BZg4bah28EEA1NR8d6TZ6dqtxB5801hFcsElt5YY55IA5eNJWTYzZjf hSxwrHBCmugs
b2LULOO6hSdI3zgTwPC4wSOUcBh07jnr0rm77wPDqOjR6XcX0gg+2311I0cY DMt0typQZJAK
i5+9g52dOeOksUvI7ONb+eCe6Gd8kEJiRuTjClmI4x/EfXjpQBYooooAKKKK ACiiigAooooA
q6hdPZ2nmxxLK5kjjVWfaCXcKMnBx970qi1xqFizTTWVoI57iNXMdySwLFIw QPKGex5OffGB
VzU7ea5stluIzKssUiiRiqnZIrYJAOPu+lYNt4WtrOZH0/w3oOmOZIjJPZgK 5RZFcrxEuc7B
xn0oA2NduJrXSzJbyGKRpoYw4AJUPKqnGQRnDHtWVpb6rqF9qNvJqF/braS+ WrtHERJ155iG
ONp78MK0tU0hZ9OMdjb20c6vE6ZGwEI6NtyASARGo6HoPSsm80nWbxpXNjYx vKyu5TVJtpK4
AJQxFDwoHKnpWqdoOyV/kZS+PW9vmammyXUesX1lcXklykUMMiNIiKQWMgP3 QOPlFUpvE03/
AAlg0OCHTVcOoK3uoGC4mUqHZ4IRG3moFJGdy/MjjjbmrWh6dfWdxNNerAmb eC3RYpjJxHv5
JKLyd3p2pup6PqWq3qRz6jaLpKXEFwLdLNhPuidZFHmmQrjegz+7+7kcH5qi W5cNinonjvSd
W07RppfPtLvVYg8FpLbyhnbEZcISg8xV81TvA27QzfdViLlz4u0eyNytzJdw vbuEKPYzhpSZ
FjHlLszKN7oMx7h86/3hmvonhebSbjS2e/jng0uym0+1RbcoxhYwbN7byGcC DkgKG3cKuOcO
3+Gnk6pBd/brEeR5Y82LTtlzc7LmCffcS+YfNkP2fBbavMjNjtUlHSHxdo4t 0lEl27u7J9mj
sZ3uFKgE7oAhkUAMhyygYdD/ABrkt/F+h3b2qwXckiXSRNHMLeXyh5iho1eT bsR2DJhGIY70
4+YZx9X0LU9M1a58QaJ5l1qFxcOPJFtHIscTw26NkPPFk7rRCGD8byNp+8Ke hfDVNNbS57j+
ypLiCK0NxK+nLNOJYIo48Qzt9yM+UvBQty5BUkFQDY03xPfveahHrOn2Njb2 V3FYtLBeyXBe
eUQmMBfJX5T56jcTwe2OauXni7R7G/ewkku5btHZGhtbGe4YFUidsiNG4Czx c9PnA65AjvdE
8vS/FP8Ao/8Aaf8Aa2+X7Dv8nzP9Gjh8rzM8bvL+9xjd7ZrLHhrWrDUtDOl3 lor21lere3t1
amRZZ5pYJGYRrKhUu6yPwSq8jHIoA3B4p0ZryG2jvPN83YFniid4AXAKK0yg xqzBk2qWBO9M
A7lzsVw9j8NbDTdTtJ7b7DJDB9mPm3enRzXgMEccaBJzwikRJkbCclypUkFe 4oAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACufn1a4e5sv9GtF8 29lt7XzJ23SS
Isuc4ibb8sbnOR0xnnB6CuL1Pwda6lfWk2o6FpV9JBdzSRSzfMZEfzSI5Mwt 8g8wtjONwU9e
CAdVp9095aebJEsTiSSNlV9wBRypwcDP3fSuXl1LVmu7YR3N2Uur+e2/cxx7 YgkpUdY2J+UE
8n+E10FjpiLaMt7bWzzPJK74G8Yd3IGSATgSMOnc+tZT6VqyLJAlpYzQi7lu YpDfzQOC7Mf4
E44cjqa1p26mdS+hZvk1DTUt5xq9xMGuoImjkiiAKvIqnogPQnvTfFnif/hF rWwuWs/tEM93
5U7ebs8iFYpJZJcYO7akTHaOT0HOAaNtoOrrLtkitEie5hnkb7Y8rKI5PMwM xKWJyRlmJ6c8
Vvajpn2++0m587y/7Pu2udu3PmZhli25zx/rc55+7jvkQ23Fcy1HHd22Ofg8 e28niO+06eGC
1sbaURpfTXBUSgJcmU7dnybHtJVO4gEKWB+6Gkg8cWcms6hDIl3FaQW9s0KS adcJcSyyNPuV
YmTe4Cwg/KpwA5JwDivqXw5sdQliiS6kttPjso7FbeNcssSQXcOA7E87bvOS D/q+c7uJG8J6
xcawdaudasW1OLyPsrRac6Qp5a3CHehmLPlbqTo64IU88gyWV9D8fC9uL9tQ TyrePi2SK0mM
8hN1eRBfKwXLeXbKxULkYckAD5dDUfE9+s+knRdPsb611KVreOW4vZLd45VS V2V08liuBCyk
H5g3ylRgmsdvhp56vLe31je3RlFwEudO32xkMt3I26IyZZcXjADcCCitk9K6 C08LpaWuhQxy
wRLpd3JdFLe1WGNy8UyFURcBFBmJH3jheSxJagCxd+KdGsdON/cXmy1EtxDv 8pz88AlMowBn
5RBL9dvGcjMY8XaObd5TJdo6OqfZpLGdLhiwJG2AoJGBCucqpGEc/wADYw9c 8LXF+njK6gs8
XV5p81pZJ5o/fPJboHkyThd5jhj2tjH2fcD+8NSal4Fm1t2vdXvNNvNQDwmN ZNNLWhWNZlUP
A0hLn/SZTneOQhx8p3AHWWN9b6jZx3VrJ5kL5AJUqQQSGVlOCrAggqQCCCCA RVis/RNLTRdH
gsIxAFj3Ei3t1gjBZixCRrwq5JwOTjqWOWOhQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUU
UUAFFFFABRRRQAVjrcahfMs0NlaGOC4kVDJckMSpeMkjyjjueDn3xkVsVytz 4WtryZ31Dw3o
OpuJJTHPeAM4RpGcLzE2Mbzxn1oA6DT7p7y082SJYnEkkbKr7gCjlTg4Gfu+ lVT4k0cNdK19
GjWpYShwVII3ZxkfN9xumelOsdMRbRlvba2eZ5JXfA3jDu5AyQCcCRh07n1q wmmWEf2nZY2y
/as/aNsSjzs5zv4+bqevqapcvUl83Qov4p0SO0W5a/jEbErjaxYEbs5XG4fd bkjtVzUtUtNJ
t1mu3kAdwkaRRPLJI2CcIiAsxwCSADgKT0BNI+j6ZJZR2T6daNaRtuSAwKUU 88hcYB5P5mqn
iTRn1zTo7aI2KSJKJVku7VpvLIBAaPZJGySDPDq2RzjnkEuXoEebqA8UaSby G1M06yS7Bl7S
VUjZwCkcjldsch3LhHKt86jGWGa8fjXQZLpLdbqcNLtMMjWcyxzBpY4laOQp tkUvLGNykjDg
5xzWXD8Pba31uG/EtpdFXglkub+wS4vmeFERStwxwoIiUn5Ccs5DKSCtM+CN UF/pNkb+CTTN
M09obGZbba8Lxz2kkAmzIfNz9nG7aI87W+7uGJKOou/FGk2c81u808txDL5L wW1pLPIGCI5O
yNSxULLHlgNoLqCcnFRxeL9Dnv8A7HDdySHfGnnpbym33SIrxjzwvlZYSJgb uS6gckCufuvh
7NqF1LqOo3WjX+oSXEkuLvSDLaqrxQRnETS5Dj7MmG39GcY5BGpD4NS2064s or3EcuoWV4p8
hV2i2FsAm1Nq/N9m/hCgb+FwOQC4PF2jtbvcJJdvEHVI2Sxnb7QWBI8jCfvx tVmzHuG0bunN
aljfW+o2cd1ayeZC+QCVKkEEhlZTgqwIIKkAggggEVyc3gWa50Gx0e6vNNu7 TS3jOnR3WmmV
AqRvEBcKZMSnY+cr5eGAbGPlrpNE0tNF0eCwjEAWPcSLe3WCMFmLEJGvCrkn A5OOpY5YgGhR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFUb y8uYryC1tbeK
V5Y3kJlmMYAUoOytn7/6VerH1rSv7TliEthY39r5Txy216fkbLRsDjYwODH3 HpQBJYz3VvcW
+nXFrBGv2dmR4pt3CFFwRsUD7w6ccdKnvtWsdNmt4ry4ET3B2x5UkHkDkgYH LLyfWsrR9Cgt
J4Xt9G0zTrIRu3kWi7d0jGMhinlpgjyxyeeB6VrNpWnO8Ltp9qWhYNExhXMZ AABXjg4VRx/d
HpTVr6id7aECeItHku2tl1CAyKA2d2FOduMN90/eXgHvU+m6pZ6tbtPYzebE rbS20rzgHuB2
IP41IljaR3sl6lrAt3Iu15xGA7Djgt1I4H5Ci0sbTT4jFZWsFtGW3FIYwgJ6 ZwO/A/Km+W2g
lzX1MseLtHa3e4SS7eIOqRsljO32gsCR5GE/fjarNmPcNo3dOajvPGug2NmL qW6naERNNIYL
OaYwIpIJlVEJiwUcHeF5Rx1VsYZ+HCy2RjnuNNcpcJPb2Q09v7NjKpIh/wBF aUgFhM5O11BZ
UbGQ26PWPA+o23hfVbbQLixW4vNKksprYWCxxyczOqwhXRYfmnkGW38bSSSG LSUdY/iPSIre
O4lvo4oJLie2EkgKqJIRIZQSRhQohlO44Hy9eRmm/jTRI4lZ3vlkeUQrbnTb kTsxV2BEPl+Z
tIjkw23b8jDOQay9Q8CTakDYTarGuim4vLjyEtSLjdcxzrIPNL7cA3Lkfu+g UHOCTJpPgZNN
vrO8B0q3kt7sXDR6ZpS2kcgEM0QBAZmLfvycliMKAFBLEgGwnijSZZbWKCae eS5xtSC0lkMW
WKfvQqnyfmVlPmbcFHB5VsSab4h0zVrhoLOeRnCGRC8EkazICAXiZlAlTlfm QsPmXn5hnL03
wteaPqkl7YanB/pMrm7Se0L74zczTqsZEi7GH2iRSx3A4U7Rggx+FPA9t4Wu A8C6aEit/s0L
22mpDPImV5nlyTI/yLyuwEliVPy7QDrKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiii
gAooooAKKKKACiiigCvYLs062XbtxEo27duOBxjauP8AvkfQdKL+6+xadc3e zf5ETSbc43bQ
TjP4UWC7NOtl27cRKNu3bjgcY2rj/vkfQdKbqVs95pV5axlQ80DxqW6AlSBn 86AMefV7u1vd
QJtLNri1s47ieJblsiLMu0g+SM5KSDGeMdBnJ6KuLm8GQtqmo6rBoGjQ6he2 5hM6yDMbHzN0
gIhB3t5pDHPzBVHauj1Py9O0u91C3sY5bm3hknjRUG53CuwGQM5JZv8Avo+t NK7sDOY1DxXb
6NYabLf6pftcXlsLjy4VtxgbQSRvAz1wFBLHsDXR6ZcSSX9xEbuS5h+zwzRt Iqg/OX/uqP7o
61yttYadrSwM+sR20tgxsrS80248lbmEpEMLuZ8gPIqZDE7gOQTiug8P38N9 quuIGtTcWVyt
p+5nMrGJUDKXz/FueQHjqCMnbmuiajy6L+rmEObm1f8AVie98R2Wm6jPa3T4 aOKGRY4Y5JZp
DIZQAsaIS3ELH5SxwrkhQuSeGNYfXtFN/ImzN3dRIpiaM7I55I13K3zK21Bk HHOeB0qnqnhe
a88Qf25aX8cF5EkAtxLbmSNWjFypLgOpYFbpwACuCoOSMitDw/pU2jaT9kuL mO5na4uLiSWO
IxKWlmeUgKWYgAvjqelcxualFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAF
FFFABRRRQAVRvLy5ivILW1t4pXljeQmWYxgBSg7K2fv/AKVerH1rSv7TliEt hY39r5Txy216
fkbLRsDjYwODH3HpQBJYz3VvcW+nXFrBGv2dmR4pt3CFFwRsUD7w6ccdKnvt WsdNmt4ry4ET
3B2x5UkHkDkgYHLLyfWszSvD8Nhdx+Ro2ladZojnybIDa0jNGQxURqMjyxz1 4HpWo2lac7wu
2n2paFg0TGFcxkAAFeODhVHH90elNWvqJ3toQJ4i0eS7a2XUIDIoDZ3YU524 w33T95eAe9T6
bqlnq1u09jN5sSttLbSvOAe4HYg/jUiWNpHeyXqWsC3ci7XnEYDsOOC3Ujgf kKLSxtNPiMVl
awW0ZbcUhjCAnpnA78D8qb5baCXNfUyx4u0drd7hJLt4g6pGyWM7faCwJHkY T9+Nqs2Y9w2j
d05qO88a6DY2YupbqdoRE00hgs5pjAikgmVUQmLBRwd4XlHHVWxhn4cLLZGO e401ylwk9vZD
T2/s2MqkiH/RWlIBYTOTtdQWVGxkNuj1jwPqNt4X1W20C4sVuLzSpLKa2Fgs ccnMzqsIV0WH
5p5Blt/G0kkhi0lHWP4j0iK3juJb6OKCS4nthJICqiSESGUEkYUKIZTuOB8v XkZpv400SOJW
d75ZHlEK25025E7MVdgRD5fmbSI5MNt2/IwzkGsvUPAk2pA2E2qxropuLy48 hLUi43XMc6yD
zS+3ANy5H7voFBzgkyaT4GTTb6zvAdKt5Le7Fw0emaUtpHIBDNEAQGZi378n JYjCgBQSxIBs
J4o0mWW1igmnnkucbUgtJZDFlin70Kp8n5lZT5m3BRweVbEmm+IdM1a4aCzn kZwhkQvBJGsy
AgF4mZQJU5X5kLD5l5+YZy9N8LXmj6pJe2Gpwf6TK5u0ntC++M3M06rGRIux h9okUsdwOFO0
YIMfhTwPbeFrgPAumhIrf7NC9tpqQzyJleZ5ckyP8i8rsBJYlT8u0A6yiiig AooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKr3919i065u9m/yImk 25xu2gnGfwqx
VXUrZ7zSry1jKh5oHjUt0BKkDP50AY8+r3dre6gTaWbXFrZx3E8S3LZEWZdp B8kZyUkGM8Y6
DOT0VcXN4MhbVNR1WDQNGh1C9tzCZ1kGY2PmbpARCDvbzSGOfmCqO1dHqfl6 dpd7qFvYxy3N
vDJPGioNzuFdgMgZySzf99H1ppXdgZzGoeK7fRrDTZb/AFS/a4vLYXHlwrbj A2gkjeBnrgKC
WPYGuj0y4kkv7iI3clzD9nhmjaRVB+cv/dUf3R1rlbaw07WlgZ9YjtpbBjZW l5ptx5K3MJSI
YXcz5AeRUyGJ3AcgnFdB4fv4b7VdcQNam4srlbT9zOZWMSoGUvn+Lc8gPHUE ZO3NdE1Hl0X9
XMIc3Nq/6sJe65qkfiGfTNO0iC8jtbSG6ndrzypGEjyqFjQoVZv3J+86DJAJ AyasWninRr7T
hf295vtTLbw7/KcfPOIjEMEZ+YTxfTdzjBxXvdD1STxDPqenavBZx3VpDazo 1n5siiN5WDRu
XCq374/eRxkAkEZFZ7eCHttlnpV/BaaQbuzupLaW2aWQG28kKqSeYNqlbeMf MrHO45OQBzG5
JN460+6063uNIeR3nuLMRi7tJoBLDNcRRM8e9V3gLKDlcgFkz1AOhpPinT9W FikLSSz3VvHM
TbQTSQR74xIFaXywqnaQQH2sQynaNwFc3ongjVJdB8Pprd/BHdaZaWkUUMFt t8oJLbzOkjeY
wkbNsihl2gZY4OQBoaR4LvNG0ttKtta2WM9okN06W5S58xbZLcSQyB8R8RRs AVcg555GACxd
+OtNt2svLgvpPPuxbyxGxuEniBilkVxAY/MZSYioIXH3jn5CK0D4p0Zbya2k vPK8reGnlidI
CUBLqszARsyhX3KGJGx8gbWxzdh8PZtOv31K0utGs7xXhe3Sx0gwW6siToTJ GJSXJW5cZDLg
qvUAgyP8NbCa81EyfYVt737UWmi06MX2bgOHDXDZyo819oCKQAgJIDBgCvqf xJFnrD28FvBH
an7NGsusGbTVR5FumYs0sZO3FuoXC8sxGew1LTxgUvZU1QWiRfYrW4gGnNJe GZpnuOIyqBpR
shV/lTgbzyBkV5/COvXOtx63Lrum/wBoQvCYtuluIgsaXKYZfPJJP2pjkMMb Rwc0ap4Fm1y4
+3apeabd3ipAFSXTS9qzRG5GXhaQlhtuTgbxhkDZI+WgDUfxroKSrH9qnZmi Ep2WczBAWdFV
iE+SQvG6CNsOXG0DdxUkni/Q4khdruQpIm92S3lYW6hipM+F/cAMrgmTbgo4 ONjYy7fwIltG
Uju4Ilb7CTHb2Swxqbe7kuSERSAqsZCoHJAGSXJJNO5+GltcXclw8mm3DzvM JWvtLS5aNHuJ
px5O5sRuPPYFmDhtqHbwQQDU1Hx3pNnp2q3EHnzTWEVywSW3lhjnkgDl40lZ NjNmN+FLHCsc
EKa6CxvYtQs47qFJ0jfOBPA8LjBI5RwGHTuOevSubvvA8Oo6NHpdxfSCD7bf XUjRxgMy3S3K
lBkkAqLn72DnZ0546SxS8js41v54J7oZ3yQQmJG5OMKWYjjH8R9eOlAFiiii gAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAoo
ooAKKKKACiiigAooooA//9k=
--------------020806090305010707020503
Content-Type: image/jpeg;
name="moz-screenshot-2.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part2.04040808.05050207@ca.ibm.com>
Content-Disposition: inline;
filename="moz-screenshot-2.jpg"

/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CACRAL0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m7uUs7Oe6kDFIY2kYL1I AycflWbNqk9r
9ovJtKvlgSIFvmiO0LuJOPNx0PYZ478YuatBJc6NfW8K7pZbeREXOMkqQBzX N3elpNJfPb2G
uG+mik/dy6uzxKZFZQTEZygXOcDbgY4HFAHS6rdvYaRe3iKGe3geVVboSqk4 P5Vh2+r6pc63
PpSXNmJ4YxKzG0baQQp4/e5/jHb1rU1fTTdaPfwwGVp5reVEVpmwWZXAGCcY y59un90Yx7o6
tM8ktvpesWsrwLCTHLaFTt3YJy5PVj0IrWPwu25lL4tb2+Zq291qMWtRWN7J ayrLbyTBoYmQ
qVZBjljnO/8ASobrxXptj4lbRLsyW7pZfbWu5tqW4XL/ACFyfv7Y5Hxj7qMc /KcV9Hg1J9Ut
572zuIVgtpozJO6HeXkRgAFkc4AUjk9hRqPhSHV9evbq/Eb2k1vZoijBfdDJ Ozg5BGx0m8th
/ErSKcA8w9k3uVHqGkeN9K1TSZNTn8zSreJA039pvHC0J86SHa67yUO+Jh82 AcgAkhgKdz8R
NHtfCFzr8t1Ypj7b9iga9Rftv2eR0Hlt/Fv2qeAcbx1759v4L1ix1p9Xgexm miu2uYIHmdFk
3TX5Ks4Q7MJeqchWyyEcAhqryeDvEiaLrcEMelPda5aXNtcK95IqWvmT3Uqs rCImTi6wQQmN
nfdxJZ1ll4p02aKI3t1aWE9xe3NnbQzXKhp2hnaH5AcFiSoOBnG4DnvGvipV 1y80250m+tI7
OL7RcX08lusEcJ8zbISJSwU+U/8ADkfxBRXL3Pw9vpbi9ZzBcR6h9oimQ6lc 26RRvdXMylki
x9oytzgoxQDYQGw5I7D+xvN8Q6peXSQTWN9p9vZmFxu3bHnLhlIwVImUd885 HqAWNQ13R9Iz
/aWq2Nljbn7TcJHjdu2/eI67Hx67W9DRLrujw/YfN1Wxj/tDH2LdcIPtOcY8 vn587l6Z+8PW
uHttJ1i3svDWp29rPfanLqAlcalK6PFbrZzxxLM4RmRgrAuMEedLJjG+i4+H t9M87yGCf+0Y
pI7uP+0rm3jg8y4nmb5Ytv2lR9pK7XMeRH1XedoB6RRRRQAUUUUAFFFFABRR RQAUUUUAFFFF
ABVdGzqMy7ukUZ27unL843e390dOpxhbFV0bOozLu6RRnbu6cvzjd7f3R06n GFALFV7xtsCn
dt/exjO7HV1GPvD+fPo3Q2Kr3jbYFO7b+9jGd2OrqMfeH8+fRuhALFedajc3 Yu7llvLtYxFf
uxWecbZElxHgg7FAH8J649jXerZxLtw8/wAuMZnc9Nvvz90fXJ/vHPNzaUlv qF4JPDH9oQvI
rwyr5GcbFB3F3DE7gxJOc561jWoSqpKLtYuFWNPWSuWdQ1e+tba+uINR0mc2 sbymBY2L4Xsc
ScdhnFaetasmiaYb2S2nuf3sUKQwbd7vJIsagbmVfvOOpFYt/wD2jd6Vf2cO gamj3cTR75ry
J1UkEA4MpwOewq94u0ebXfDslhBBaXDm4tpTBdsVilWOdJGRiFbhlQj7p69K 6ppWRhB6sI/F
mlJZTXOqXEejmC4+yzR6jNHGY5SgkCbgxQkoysNrHg+oIGhJq2mw6pDpcuoW iahMm+K0aZRK
688qmckfK3IHY+lcePCeswWQS2jtILd7h5f7GstSnsoLfKRqvlzwoHIBSRym xVLTsTkoC1Oz
8A6xHo50ZbuDT7WfSls7+aG5e4F3ILQW4byXRRHtIBDI4LBAGByCmZodRf8A jDTLfw9c65px
/tqxtN5uH0yeGXylVC7Ekuo4GOAS3zDitC31eB7OSe9X+zpIYvPuILuaLfbx 5YB3KOyhTsYg
5xwe4IHLp4QvpfD3iW3eKC2vtV09rKPfqlzfY+SQKWlmGQuZT8qpxyctuwuh 4h0b+1PEOmxI
k6wzxOuoOoxFNbxujiJzg7mLkKFbgxPcjq1AGxa67o99qM+nWeq2NxfQbvOt obhHkj2na25Q
cjBIBz0NSabq2m6zbtcaXqFpfQK5RpLWZZVDYBwSpIzgg49xXBr4W1jxFo91 pd5FBp1iuoat
JDcF3eaTzmuolzEUUKuLguGDnIVePmyvSeF9CuNLuL28u4I4Z7lIoto1O5v2 KoXIzLPggZkO
FCjHJy27CgHSUUUUAFFFFABRRRQAUUUUAFFFFABVdGzqMy7ukUZ27unL843e 390dOpxhbFV0
bOozLu6RRnbu6cvzjd7f3R06nGFALFZdzfyyzTW9vY3cpglQPJGyBc/K+BmR T0IHpzzkZB1K
5nUNK+1X10biy1d0M/mRPYai1sCDHGp3bJkJ5Q9QcdupoA3LK9F4JgYJYHhk 8t0l25B2q38J
I6MO9SLd2z3T2q3ETXCDc0QcF1HHJHUdR+dZukWDRi4MsN3Avmr5SzXJdyqx xLlmDtuOY+rE
k85+8cyL4d0oX73zWgluHUIzTSNICAFAOGJGfkXnGeOtNW6id+haXUrB7V7p b22a3Q7WlEql
FPHBOcDqPzqSS7torNryS4iS1SMytOzgIEAyWLdMY5zWVH4S0OKxezSwHlOw YkyuXBG3GHJ3
AfIvAPanaxo0dz4a/su2s0nSIQ+TBJey2wHlurKfOQM6ldoIIBOQPXNOXL0F Hm+0Sr4l0Fks
nXW9NKX7lLNhdJi4YMFIj5+chiBgZ5OKJ/Eug2t/LYXGt6bDeRIXkt5LpFkR Qm8kqTkAL82f
TnpXH3vgbWdQPmajdx6lPeWS2d20l/ParGokmYZS3CLcgLNtwwiz5efl8w7Y 9e8Laxdpa6B5
UH9mXOoahJ/aETu8kX2m3vD88OwKFVp9u7zOSF4G7Ako7y81bTdOSd77ULS1 SBEeZp5lQRq7
FULZPAZgQCepBAqu/iXQY7i0t31vTVnvUR7WNrpA06ucIUGcsGPAIzntXJ6n 4V1/W9YfV72C
xt5ovs3k2tpq06eb5a3StmdIkePi6B+VWzsIOA2RJH4IvYtE8Q2cTWkT6po5 s418+WQJMz3T
sXd8u4zcrlzyxDHavC0AdY+u6PHeXVnJqtil1aRGe5ha4QPDGACXdc5VcEHJ 45FWLG/s9Ts4
7ywu4Lu1kzsmgkEiNgkHDDg4II/CuTu/DGq3Gj3+iYtPsbXrahBcreSRSyOb sXXlMFTMQyWT
zFdiMBguflGx4X0aXR7K5E8UcU91cGeRFvJrsg7EQbppjuc4QdlAGFwcbmAN yiiigAooooAK
KKKACiiigAooooAKro2dRmXd0ijO3d05fnG72/ujp1OMLYqujZ1GZd3SKM7d 3Tl+cbvb+6On
U4woBYooooAKq3t6LMQgQSzvNJ5aJFtyTtZv4iB0U96tVl63bSXMdqEgnmRZ W8xbeXy5ArRS
JlW3KQcsOQQR1FAEdhq4kaKI20+2a4liWbzI3UOpcsh2yMQV2Mp9CuMDoLup XEtrZ+ZCUEjS
xRgupYDe6rnAIz971rltA8MtpXlW0dvqvlvez3Mst1elwqv55AUec5Vh5oBZ cFiNx5rZ1zMM
dpbwRNNcXl2ixLJcsiBk3z8nD4H7thwvoOABioq7RMtiA69jVhph1az+1bxH gWEuwOVLBC+/
aGwCduc+1a2mXMt3ZeZNsMglkjJRSAdrsucEnHT1rkdN8OJcamni60O6K+jS ++ytaRPOSY8h
FlY/KCSvpyOoFdN4dkS48PWV3GjIt3H9r2M24oZT5hXOBkAsR07VpUUUtDOD k3qU7LxZBd3T
JJp19a2n2uSyjvp/K8mSZJWi2ja5ZcupCl1UE4GdzKDoXGu6PaWcd5c6rYw2 ssXnxzSXCKjx
5UbwxOCuXQZ6fOvqK5+y8Paw0baXfJYx6Yuqyaks8Fw7zS/6W1zGhQxqqfMV 3Hc/CkAfMGXn
9R8MeJLPT9Dijs7G4j0WK1sbYxXMhe5xeWTCSRfK/dLttyzYL7cnqBk4mx2E vi6w+36bFaSQ
XtpfxSSR3cFzGUys8EOASQrfNP2OfkwAzECrjeJdBVL121vTQlg4S8Y3SYt2 LFQJOfkJYEYO
ORiuTuPBesX2tJq872MM0t2tzPAkzuse2awIVXKDflLJjkquGcDkAtVyHQfE MHhWy0Nfsgi0
1IYI2h1GaBr+JEKfO6Rh7c5Eb/IXztKE4JJANyHxRo8+uR6RHfQG6mtIry2/ epi5jfzMGLnL
4ERJwMAFTnniSPxLoM2lzapFremvp8L7JbtbpDEjccM+cA/MvBPcetcfp3gX VbfSdT0+aS0R
NYsrizuX+0yTNahprqRGVnUGc/6UA24ofkzls8WLXwjqltdRavHbWiahb3Ec iW8+r3V2JlWK
ePDXEqkoB9pZgqxnlTknf8gBc03x6urvImmaHfals3v5ljNbtGYxcTQowaSR M7vIZuAQARya
1LLxTps0URvbq0sJ7i9ubO2hmuVDTtDO0PyA4LElQcDONwHPfk7DwbrFlrDa tc6D4c1K6fdJ
H9pu3BtJDd3Nx+7c27E8ToN2FOU6dKLn4e30txes5guI9Q+0RTIdSubdIo3u rmZSyRY+0ZW5
wUYoBsIDYckAHaDxLoLXD2663ppnS4W1eMXSblmYkLGRnIclWAXqdp9KkfXd HjvLqzk1WxS6
tIjPcwtcIHhjABLuucquCDk8ciuTvfBWpXOnXtuk9oHnstbt1JdsBry4WWIn 5egUYb0PTPWq
eofD2+uotWtozAyz/wBoS21zNqVywElyswA+zf6qPb55BcbyQpO0F8qAdRce N/Ddva2l5/bN
jLY3N2bP7ZFdRtDFIImkw77sLwmPXLLxzXQVyer+HdSm8WJr9ibSR7dLYw28 8rRiRkW7Rwzh
W2jbdBgQGyUIIGc11lABRRRQBDd3KWdnPdSBikMbSMF6kAZOPyrNm1Se1+0X k2lXywJEC3zR
HaF3EnHm46HsM8d+MXNWgkudGvreFd0stvIiLnGSVIA5rnbzSPNF7PBpuvfa p45Qqy6szQhn
Vh/qjOUA+bgbcDjAGBQB0eq3b2GkXt4ihnt4HlVW6EqpOD+VYdvq+qXOtz6U lzZieGMSsxtG
2kEKeP3uf4x29a1NX003Wj38MBlaea3lRFaZsFmVwBgnGMufbp/dGMe6OrTP JLb6XrFrK8Cw
kxy2hU7d2CcuT1Y9CK1j8LtuZS+LW9vmatvdajFrUVjeyWsqy28kwaGJkKlW QY5Y5zv/AEpu
oa8bTUTYWmlX2p3SRLNMloYV8pHLBCTLIgO4o/3c42nOMjNPR4NSfVLee9s7 iFYLaaMyTuh3
l5EYABZHOAFI5PYVH4s0O817bbwaZpT4iZYNUuJiLmwkbgyQqIj8y4VgRIhJ UcjANQ9k3uVH
qXLLxfoN6l2f7TtIHs7ia3uI550V4miaQEsN3AKwyOM/wqTxg4lv9Q8OXkl3 peo3mlTvaxfa
Lq0uJY2MMYAO90Y/KoBByRjkVjR+FrxrzT4bmKxmsLDW59VjkdyzyeaLl8GM phWSSZMHcc7d
3ynC1j+JfA+v65c3I8+CRX+2bLmbUpwNsttPFGn2UIYk2eail1O4hCx5cip2 LOqTUvCVxpd1
qiXuiS6eMwXF2JYmiG4IpR3zjkCMYJ5AUelSWes+GLOy0+Gx1PSILW8dksUg niVJ23YYRAHD
HccEL3PrWL4l0m9tfEB8UwLHOLNLUxWoSVmlZRdxsD5UbsBi7VgVVvuEEAfM Ofs/BGqarZyX
l1aRodUSeO4tpNSurdYI3urmVWKRhTOCtx/q5PKI24O0swV3YWO0XxUq65ea bc6TfWkdnF9o
uL6eS3WCOE+ZtkJEpYKfKf8AhyP4gorQ1DXdH0jP9parY2WNuftNwkeN27b9 4jrsfHrtb0NV
/wCxvN8Q6peXSQTWN9p9vZmFxu3bHnLhlIwVImUd885Hrx9tpOsW9l4a1O3t Z77U5dQErjUp
XR4rdbOeOJZnCMyMFYFxgjzpZMY30gO4l13R4fsPm6rYx/2hj7FuuEH2nOMe Xz8+dy9M/eHr
WhXm9x8Pb6Z53kME/wDaMUkd3H/aVzbxweZcTzN8sW37So+0ldrmPIj6rvO3 0igAooooAKKK
KACiiigAooooAKKKKACiiigArHv9XEbSxC2n2w3EUTTeZGil2KFUG6RSS29V HqWxg9DsVxfi
bQP7VaeO5h1JI/7Qt7iKa1vPKVgpgypUTJliYtqkglSQy80AdVZXovBMDBLA 8Mnluku3IO1W
/hJHRh3rn9Z8SXmmy3jhoFt7e5S3AMBdyTEJM58xR3I/KtLSLBoxcGWG7gXz V8pZrku5VY4l
yzB23HMfViSec/eOc+4tb23uNRgj0y/nhnnhmint54dy+WkYGfNbJO6PuDmt Kdr6mdS9lYta
lca5pumXV81xp0i28TSFBbOC2BnGfM4q14h1yHw5ok2qT2t3dJG8aCC0jDyy M7rGoVSRk7mH
Ga526g166t9Qgaw1OVbq3eFBPJbgKWAAJ2y4wMHogPzHrXRa/ps2q6dFbwNG rpe2lwS5IG2K
4jlYcA87UIHvjp1qXe2q1u+36Djvpt8/1M9vG+lf29HpUHmXJkt47hLqJ4/s 5DyRIFDlwC+J
on2jkq64yWUGQ+MdHPiFtJi1Cxl8i0ubm9lW7Q/ZPJeNSsg/h/1jHJIxsP4Y 9/4C23umtpJg
it7aUyyCU7WOby0nCrtXG1I7YxqD0VY16DIpr4N15otHtHGmrBodklvayrcu Wu2intZULr5Y
EQYWuDgybd/G7HMlmxp3j3TdS1u7tIJLR9Pt0uHOpJdq0RWFLV2OQMAf6SQT njyz68XNS8W2
tnplpqVjaz6zY3MqwpcabNA6B2kWJRlpFzl228Zxg5xXL3vgbW9Y1G91C9Nj bSTytOILa9lP
KmwZF80Roy7vsTguBlN6kBiK2LbwrdJoMltsggup9Vtb+VTez3XEUsBOZpcs 7FIePlUDKrjg
sQDpItTtnt/Nmkjt3V44popZU3QyuF2xPtYgOd6AAE53DGcjNez8S6DqFvdX Flrem3MFom+5
khukdYVwTlyDhRhScn0PpWXcaN9r8c+aEnSxjihvLlCMQ3FwpdISBjDMoyz5 5BjtSD8tcvpv
hHW9c8IaAmowQafJp+lW8MEK3UoklIktpiJGCI1u3+jBfl3lS5I5QBgD0ixv 7PU7OO8sLuC7
tZM7JoJBIjYJBww4OCCPwqxWH4X0aXR7K5E8UcU91cGeRFvJrsg7EQbppjuc 4QdlAGFwcbm3
KACiiigAooooAKKKKACiiigAooooAKy7m/llmmt7exu5TBKgeSNkC5+V8DMi noQPTnnIyDqV
zOoaV9qvro3Flq7oZ/Miew1FrYEGONTu2TITyh6g47dTQBuWV6LwTAwSwPDJ 5bpLtyDtVv4S
R0Yd6kW7tnuntVuImuEG5og4LqOOSOo6j86zdIsGjFwZYbuBfNXylmuS7lVj iXLMHbccx9WJ
J5z945kXw7pQv3vmtBLcOoRmmkaQEAKAcMSM/IvOM8daat1E79C0upWD2r3S 3ts1uh2tKJVK
KeOCc4HUfnUkl3bRWbXklxElqkZladnAQIBksW6YxzmsqPwlocVi9mlgPKdg xJlcuCNuMOTu
A+ReAe1O1jRo7nw1/ZdtZpOkQh8mCS9ltgPLdWU+cgZ1K7QQQCcgeuacuXoK PN9olXxLoLJZ
Out6aUv3KWbC6TFwwYKRHz85DEDAzycUT+JdBtb+WwuNb02G8iQvJbyXSLIi hN5JUnIAX5s+
nPSuPvfA2s6gfM1G7j1Ke8sls7tpL+e1WNRJMwyluEW5AWbbhhFny8/L5h2x 694W1i7S10Dy
oP7MudQ1CT+0Ind5IvtNveH54dgUKrT7d3mckLwN2BJR3l5q2m6ck732oWlq kCI8zTzKgjV2
KoWyeAzAgE9SCBVd/Eugx3FpbvremrPeoj2sbXSBp1c4QoM5YMeARnPauT1P wrr+t6w+r3sF
jbzRfZvJtbTVp083y1ulbM6RI8fF0D8qtnYQcBsiSPwRexaJ4hs4mtIn1TRz Zxr58sgSZnun
Yu75dxm5XLnliGO1eFoA6x9d0eO8urOTVbFLq0iM9zC1wgeGMAEu65yq4IOT xyKsWN/Z6nZx
3lhdwXdrJnZNBIJEbBIOGHBwQR+Fcnd+GNVuNHv9ExafY2vW1CC5W8kilkc3 YuvKYKmYhksn
mK7EYDBc/KNjwvo0uj2VyJ4o4p7q4M8iLeTXZB2Ig3TTHc5wg7KAMLg43MAb lFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABVW9vRZiECCWd5pPLRItuSdrN/EQOinvVqs vW7aS5jtQkE8
yLK3mLby+XIFaKRMq25SDlhyCCOooALa/limht7ixu4jPK4SSRkK5+Z8HEjH oCPTjjAwBZ1K
4ltbPzISgkaWKMF1LAb3Vc4BGfvetYVno4hurdIbPWY4jKXmkvdTe42jypFG 0tM7KcuPu4/Q
Vd1zMMdpbwRNNcXl2ixLJcsiBk3z8nD4H7thwvoOABioq7RMtiA69jVhph1a z+1bxHgWEuwO
VLBC+/aGwCduc+1a2mXMt3ZeZNsMglkjJRSAdrsucEnHT1rkdN8OJcamni60 O6K+jS++ytaR
POSY8hFlY/KCSvpyOoFdN4dkS48PWV3GjIt3H9r2M24oZT5hXOBkAsR07VpU UUtDODk3qU7L
xZBd3TJJp19a2n2uSyjvp/K8mSZJWi2ja5ZcupCl1UE4GdzKDoXGu6PaWcd5 c6rYw2ssXnxz
SXCKjx5UbwxOCuXQZ6fOvqK5+y8Paw0baXfJYx6Yuqyaks8Fw7zS/wCltcxo UMaqnzFdx3Pw
pAHzBl5/UfDHiSz0/Q4o7OxuI9FitbG2MVzIXucXlkwkkXyv3S7bcs2C+3J6 gZOJsdhL4usP
t+mxWkkF7aX8Ukkd3BcxlMrPBDgEkK3zT9jn5MAMxAq43iXQVS9dtb00JYOE vGN0mLdixUCT
n5CWBGDjkYrk7jwXrF9rSavO9jDNLdrczwJM7rHtmsCFVyg35SyY5KrhnA5A LVch0HxDB4Vs
tDX7IItNSGCNodRmga/iRCnzukYe3ORG/wAhfO0oTgkkA3IfFGjz65HpEd9A bqa0ivLb96mL
mN/MwYucvgREnAwAVOeeJI/EugzaXNqkWt6a+nwvslu1ukMSNxwz5wD8y8E9 x61x+neBdVt9
J1PT5pLRE1iyuLO5f7TJM1qGmupEZWdQZz/pQDbih+TOWzxYtfCOqW11Fq8d taJqFvcRyJbz
6vdXYmVYp48NcSqSgH2lmCrGeVOSd/yAFzTfHq6u8iaZod9qWze/mWM1u0Zj FxNCjBpJEzu8
hm4BABHJrUsvFOmzRRG9urSwnuL25s7aGa5UNO0M7Q/IDgsSVBwM43Ac9+Ts PBusWWsNq1zo
PhzUrp90kf2m7cG0kN3c3H7tzbsTxOg3YU5Tp0oufh7fS3F6zmC4j1D7RFMh 1K5t0ije6uZl
LJFj7RlbnBRigGwgNhyQAdoPEugtcPbrremmdLhbV4xdJuWZiQsZGchyVYBe p2n0qR9d0eO8
urOTVbFLq0iM9zC1wgeGMAEu65yq4IOTxyK5O98Falc6de26T2geey1u3Ul2 wGvLhZYifl6B
RhvQ9M9ap6h8Pb66i1a2jMDLP/aEttczalcsBJcrMAPs3+qj2+eQXG8kKTtB fKgHUXHjfw3b
2tpef2zYy2Nzdmz+2RXUbQxSCJpMO+7C8Jj1yy8c10Fcnq/h3UpvFia/Ym0k e3S2MNvPK0Yk
ZFu0cM4Vto23QYEBslCCBnNdZQAUUUUAFFFFABRRRQAUUUUAFQXllaahbm3v bWG5gJBMc0Yd
SR04PFT0UbAcylxY3dzBImhFvtdpIREwgDTxMIgx2mTlcCNTkH+AcdDtaSlm uk2p0+2jtrR4
xJHDHGEChvm+6OB17d65G38NuNY0nVprLWxPZWfkPFFqGI2f9zggCcKF/dHK bcPuBYEiuo0v
TzBpVlHP5qTRwRq6iZsBgqZGAcdUHt1/vHLuwsYFk9quhafdXl5qDzzWqzSk amY8ZAyxDSLg
E56cVYgkij1jTEtri8WR5mE0E96ZiY/KchiodgBuA59RVXVNN1HStEsYGvo5 bO0lRcxr5DKo
wFLMSw47nK/h0PO+A7PWYLu2hu5ALhJ5JWAGwCEhMZQrnkcKeMcDLbTWsqmr tsYxp6K+56Tq
Wrabo1utxqmoWljAzhFkupliUtgnALEDOATj2NZ9l4v0G9S7P9p2kD2dxNb3 Ec86K8TRNICW
G7gFYZHGf4VJ4wcV/FGjalqVxZXGjvHa38KSxJqBumRrZXKbsQ7GScHYCVfb 90YKn5lpx+Fr
xrzT4bmKxmsLDW59VjkdyzyeaLl8GMphWSSZMHcc7d3ynC1ibGwvinRBdR2l xqljbXksrxRW
013EJJCsrRfKoY5yyEAdc8EBgQLH9u6P/bH9kf2rY/2n/wA+X2hPO+7u+5nd 93np05rk18Fa
kNO8W2/n2m/WLK4t7c72wrSXF7KC/wAvA23MYOM8hvQEx29rqcPi/TdIjsvN sbDVbvU5L3bM
nyzx3DbfmiEZw1yF+SVmOM7R820A9AooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k=
--------------020806090305010707020503--

--------------050200020709080002050208--
Re: Type derivation results in duplicate particles [message #59903 is a reply to message #59879] Tue, 26 April 2005 22:37 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Hi Ed,
I appreciate your checking this out.
It's not the imports, though; they're in my schemas, I just miscopied
them into the email.
I'm not seeing duplicates in a Semantic view -- rather, it's in code I
have that's walking the the XSD object model. Any ideas?

Is there anything in the patch() or analyze() steps that could be messed
up because of incorrect document/resource resolving?

Thanks,
Anand


Ed Merks wrote:
> Anand,
>
> You need to add an import. When I add that, it looks fine in the
> Semantics view:
>
>
> Even without that, I'm not seeing duplicates:
>
>
>
>
> Anand Thakker wrote:
>
>> Hi,
>> I'm experiencing some odd behavior with derived types.
>>
>> I have a derivation chain with three types; say C derives from B and B
>> derives from A (all by extension).
>>
>> *If* A is in one namespace and B&C are in a second ns, then I find the
>> XSDParticle representing B's content (obtained by
>> xsdComplexType.getContentType()) is duplicated in type C. This does
>> *not* occur when all three are in the same namespace.
>>
>> More concretely, here is what the object hierarchy looks like from my
>> watch window for the the complexType "StrangeType" in the schema
>> fragment below.
>> Notice the XSDParticleImpl middleTypeParticle appears twice (the same
>> reference in mem).
>>
>> Is this actually the correct behavior, or could I be using the library
>> incorrectly?
>> The only thing out of the ordinary about my usage (I think) is that I
>> have custom hooks into the parser for resolving schema fragments
>> embedded in other files.
>>
>> Thanks,
>> Anand Thakker
>> Mindreef, Inc.
>>
>>
>> XSD Object Model:
>> -----------------
>>
>> XSDComplexTypeDefinition
>> {
>> name="StrangeType"
>> content = XSDModelGroupImpl
>> {
>> compositor=sequence
>> particles[2] =
>> [ 0: XSDParticleImpl
>> {
>> term = XSDModelGroupImpl
>> {
>> compositor=sequence
>> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
>> }
>> }
>> 1: XSDParticleImpl
>> {
>> term = XSDModelGroupImpl
>> {
>> compositor=sequence
>> particles[1] = [ 0: middleTypeParticle ]
>> }
>> }
>> ]
>> }
>> }
>>
>>
>> Schemas:
>> --------
>>
>>
>> <!-- Schema One -->
>> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
>> xmlns:this="http://one/"
>> xmlns:two="http://foo/bar/"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>
>> <xs:complexType name="StrangeType">
>> <xs:complexContent>
>> <xs:extension base="this:MiddleType">
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>>
>> <xs:complexType name="MiddleType">
>> <xs:complexContent>
>> <xs:extension base="two:BaseType">
>> <xs:sequence>
>> <xs:element name="DuplicatedElement" type="xs:string"
>> minOccurs="0" maxOccurs="1" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> </xs:schema>
>>
>>
>>
>> <!-- Schema Two -->
>> <xs:schema elementFormDefault="qualified"
>> targetNamespace="http://foo/bar/"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>
>> <xs:complexType name="BaseType">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="id" type="xs:int" />
>> </xs:sequence>
>> </xs:complexType>
>> </xs:schema>
>
>
Re: Type derivation results in duplicate particles [message #59924 is a reply to message #59903] Tue, 26 April 2005 22:51 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

Anand,

It would be best if I could reproduce what you are seeing. Can you
provide a test case that demonstrates the problem? It's pretty easy to
add code to XSDMainTest.java to run a test case...


Anand Thakker wrote:

>
> Hi Ed,
> I appreciate your checking this out.
> It's not the imports, though; they're in my schemas, I just miscopied
> them into the email.
> I'm not seeing duplicates in a Semantic view -- rather, it's in code I
> have that's walking the the XSD object model. Any ideas?
>
> Is there anything in the patch() or analyze() steps that could be
> messed up because of incorrect document/resource resolving?
>
> Thanks,
> Anand
>
>
> Ed Merks wrote:
>
>> Anand,
>>
>> You need to add an import. When I add that, it looks fine in the
>> Semantics view:
>>
>>
>> Even without that, I'm not seeing duplicates:
>>
>>
>>
>>
>> Anand Thakker wrote:
>>
>>> Hi,
>>> I'm experiencing some odd behavior with derived types.
>>>
>>> I have a derivation chain with three types; say C derives from B and
>>> B derives from A (all by extension).
>>>
>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>> the XSDParticle representing B's content (obtained by
>>> xsdComplexType.getContentType()) is duplicated in type C. This does
>>> *not* occur when all three are in the same namespace.
>>>
>>> More concretely, here is what the object hierarchy looks like from
>>> my watch window for the the complexType "StrangeType" in the schema
>>> fragment below.
>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>> same reference in mem).
>>>
>>> Is this actually the correct behavior, or could I be using the
>>> library incorrectly?
>>> The only thing out of the ordinary about my usage (I think) is that
>>> I have custom hooks into the parser for resolving schema fragments
>>> embedded in other files.
>>>
>>> Thanks,
>>> Anand Thakker
>>> Mindreef, Inc.
>>>
>>>
>>> XSD Object Model:
>>> -----------------
>>>
>>> XSDComplexTypeDefinition
>>> {
>>> name="StrangeType"
>>> content = XSDModelGroupImpl
>>> {
>>> compositor=sequence
>>> particles[2] =
>>> [ 0: XSDParticleImpl
>>> {
>>> term = XSDModelGroupImpl
>>> {
>>> compositor=sequence
>>> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
>>> }
>>> }
>>> 1: XSDParticleImpl
>>> {
>>> term = XSDModelGroupImpl
>>> {
>>> compositor=sequence
>>> particles[1] = [ 0: middleTypeParticle ]
>>> }
>>> }
>>> ]
>>> }
>>> }
>>>
>>>
>>> Schemas:
>>> --------
>>>
>>>
>>> <!-- Schema One -->
>>> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
>>> xmlns:this="http://one/"
>>> xmlns:two="http://foo/bar/"
>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>
>>> <xs:complexType name="StrangeType">
>>> <xs:complexContent>
>>> <xs:extension base="this:MiddleType">
>>> </xs:extension>
>>> </xs:complexContent>
>>> </xs:complexType>
>>>
>>> <xs:complexType name="MiddleType">
>>> <xs:complexContent>
>>> <xs:extension base="two:BaseType">
>>> <xs:sequence>
>>> <xs:element name="DuplicatedElement" type="xs:string"
>>> minOccurs="0" maxOccurs="1" />
>>> </xs:sequence>
>>> </xs:extension>
>>> </xs:complexContent>
>>> </xs:complexType>
>>> </xs:schema>
>>>
>>>
>>>
>>> <!-- Schema Two -->
>>> <xs:schema elementFormDefault="qualified"
>>> targetNamespace="http://foo/bar/"
>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>
>>> <xs:complexType name="BaseType">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>> </xs:sequence>
>>> </xs:complexType>
>>> </xs:schema>
>>
>>
>>
Re: Type derivation results in duplicate particles [message #59945 is a reply to message #59924] Wed, 27 April 2005 16:56 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

This is a multi-part message in MIME format.
--------------090804010509020505050407
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit


Ed,
I'm attaching a simple test case JAR -- unfortunately, my source zip
didn't have XSDMainTest.java, and the CVS site seemed to be flaky.

Run com.mindreef.xsd.DoublyExtended. The schemas and java source are in
the JAR.

Thanks,
Anand

Ed Merks wrote:
> Anand,
>
> It would be best if I could reproduce what you are seeing. Can you
> provide a test case that demonstrates the problem? It's pretty easy to
> add code to XSDMainTest.java to run a test case...
>
>
> Anand Thakker wrote:
>
>>
>> Hi Ed,
>> I appreciate your checking this out.
>> It's not the imports, though; they're in my schemas, I just miscopied
>> them into the email.
>> I'm not seeing duplicates in a Semantic view -- rather, it's in code I
>> have that's walking the the XSD object model. Any ideas?
>>
>> Is there anything in the patch() or analyze() steps that could be
>> messed up because of incorrect document/resource resolving?
>>
>> Thanks,
>> Anand
>>
>>
>> Ed Merks wrote:
>>
>>> Anand,
>>>
>>> You need to add an import. When I add that, it looks fine in the
>>> Semantics view:
>>>
>>>
>>> Even without that, I'm not seeing duplicates:
>>>
>>>
>>>
>>>
>>> Anand Thakker wrote:
>>>
>>>> Hi,
>>>> I'm experiencing some odd behavior with derived types.
>>>>
>>>> I have a derivation chain with three types; say C derives from B and
>>>> B derives from A (all by extension).
>>>>
>>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>>> the XSDParticle representing B's content (obtained by
>>>> xsdComplexType.getContentType()) is duplicated in type C. This does
>>>> *not* occur when all three are in the same namespace.
>>>>
>>>> More concretely, here is what the object hierarchy looks like from
>>>> my watch window for the the complexType "StrangeType" in the schema
>>>> fragment below.
>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>> same reference in mem).
>>>>
>>>> Is this actually the correct behavior, or could I be using the
>>>> library incorrectly?
>>>> The only thing out of the ordinary about my usage (I think) is that
>>>> I have custom hooks into the parser for resolving schema fragments
>>>> embedded in other files.
>>>>
>>>> Thanks,
>>>> Anand Thakker
>>>> Mindreef, Inc.
>>>>
>>>>
>>>> XSD Object Model:
>>>> -----------------
>>>>
>>>> XSDComplexTypeDefinition
>>>> {
>>>> name="StrangeType"
>>>> content = XSDModelGroupImpl
>>>> {
>>>> compositor=sequence
>>>> particles[2] =
>>>> [ 0: XSDParticleImpl
>>>> {
>>>> term = XSDModelGroupImpl
>>>> {
>>>> compositor=sequence
>>>> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
>>>> }
>>>> }
>>>> 1: XSDParticleImpl
>>>> {
>>>> term = XSDModelGroupImpl
>>>> {
>>>> compositor=sequence
>>>> particles[1] = [ 0: middleTypeParticle ]
>>>> }
>>>> }
>>>> ]
>>>> }
>>>> }
>>>>
>>>>
>>>> Schemas:
>>>> --------
>>>>
>>>>
>>>> <!-- Schema One -->
>>>> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
>>>> xmlns:this="http://one/"
>>>> xmlns:two="http://foo/bar/"
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>
>>>> <xs:complexType name="StrangeType">
>>>> <xs:complexContent>
>>>> <xs:extension base="this:MiddleType">
>>>> </xs:extension>
>>>> </xs:complexContent>
>>>> </xs:complexType>
>>>>
>>>> <xs:complexType name="MiddleType">
>>>> <xs:complexContent>
>>>> <xs:extension base="two:BaseType">
>>>> <xs:sequence>
>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>> minOccurs="0" maxOccurs="1" />
>>>> </xs:sequence>
>>>> </xs:extension>
>>>> </xs:complexContent>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>>
>>>>
>>>>
>>>> <!-- Schema Two -->
>>>> <xs:schema elementFormDefault="qualified"
>>>> targetNamespace="http://foo/bar/"
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>
>>>> <xs:complexType name="BaseType">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>
>>>
>>>
>>>

--------------090804010509020505050407
Content-Type: application/octet-stream;
name="DoublyExtended.jar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="DoublyExtended.jar"

UEsDBAoAAAAAACZmmzIAAAAAAAAAAAAAAAANAAAAY29tL21pbmRyZWVmL1BL AwQKAAAAAAAm
ZpsyAAAAAAAAAAAAAAAAEQAAAGNvbS9taW5kcmVlZi94c2QvUEsDBBQAAAAI AOtmmzJ2VDRi
VwYAAD4NAAAlAAAAY29tL21pbmRyZWVmL3hzZC9Eb3VibHlFeHRlbmRlZC5j bGFzc41WaVcT
Vxh+LhAHk6kKVC1aFxQ1hiXuG9aqLGobcAlu2NYOyQVGk0w6mSh033dr91Zr 94XudTkHoT1t
7aee04/9Hf0NbZ87EyCBCMo5Jrn33Z7n3e5f//78G4A1uCawJGYlw0kzFbel 7An3Z+LhFivb
nRho7XdkKi7jGoTAnFPGGSOcMFK94f3dp2TM0VAq4G/Zf3h3pPXk4UP7BGoi lt0blrGEmc7I
sEz2hGk4aaXCWcdMhCnSJLAiljAymVpe1I56rKXH2kKPAhWRcX/NSoW6M6MD KadPOmZMoCxp
mCmBecETeYJRxzZTvU2rj/C+2YpLgdkRMyU7ssluaXca3QmeVEasmJE4Ytim +p07rIjZ0nDk
IZmxsnZMRqUj0BhcPQmPjFm2DNs5sXCefJOO2ZgjsCxfRVFpJtOJ8LFoSzTW J5PGPv7SUOlH
FSp0+DBjJkowVyDQK51RawLtwWmZ7Lrl4BjZfNwhELpFeYLRsCCAhagWqJ0I xw2AcEalPUCL
mBwi8DAKLJpAnVIco4DxLMFSPxajRqDUypLquV4OTSt8gAl0mEZpJCm3HLUF hRcdyDgyqWHl
TKzCCoFyx/JSLnA7XU4qBB2rEfKjDHUCWlqZTrBm5gaLlYyOBjQKVBWJRMMa P9YizOIhyM6B
tGyRPWbKdEwrlWFJFymU/HS1RsyMqo/12CBQfVNeNGwKYDM2EpbpSNtwLFvV dw6Wa2lf7pzG
tmIbG25atxq2B3AX2DxlKdnvTOTJ62Sauxs7iW6yJw27A2jGrgm+coEXUqGh VWAWGWq2WBSy
X91yuBSvhQOGzT5OqOrcg70BtIEDxOfmSGBpcEoVlax7EfGzddpZQkEveftV jg6wlyleGJjA
8mL2CoVIkdZnZDpclmizS0cnDivwnCYlNvNcf6sdp8aBwAy64YnAyknOizUR NXzxrDuNFk7R
PIzFVGksVhWj1eumtrU/JtNeWh7kHEx75WzETnfaRkzq6FaEGeAoFXKsAws1 VdUYdi8hVBWZ
suRLdYO0k4y4eJLVJRNs4hRFpsiohkQASZxmLxWRak3IpEw5LTw2CNSFZHne O4wkoTyEUABp
sF0WFVFv5yJI7LGtbFoDmdOpNuo3o+MMNgSQxVmOYMqPXtDSlBVIYhwXePVN YbON02PWfO7W
YykUGT1d+Q05uuq0HstW4NR0KTKtJmnoeBJPMc0TzjU848ezeJpTNNeXVopU ep1ZFSxm53m8
oFReZBdOuOywnDYrm4rnVdbLAovHpTosV4495cnZthogr7IVtqsm26HjNVV0 53Ce60KdNBvZ
DAOpz4fY2WdbZ9VWLkA5fqrjDbxZUOljdxre9uMdvKUm/nmVoj4zo14l0zxv VKq2M4NeiBrK
1U7+gKv8hNJsHNVspGbjBM1yfKjjcTyhRtHHfA3F1bVUkuX4lBZunruUdLjH I+5y/lwR/gVn
p2Mpy3bKSLRZdlLHVwixYPPlNXztxzcYJIHek8V9eG0s6me6J4SO7/A9B/Q0 chp+9OMn/EB4
UXdatZmqpKsKqWhUAaCGPJTxWVkCv3rc8Fu5IhQMF+qfj59+BPhbB0QFSl2Z 08OcZ3VXMa9s
BHeW4gYWt9cPYVnHVQQbhsCv6xpGsEVgBDsEtpUNIlRNyRZBybZtPkpV+zyx at8I7hEYhlId
wkEldlTg4n9/D6I8UjeE+BW6Bmef5OgrwW38voPvNvBFAgZfhmWo5KtjPlbw 1yo0IsidEuIC
rcNe1OMQ18wxnkm+m3uwDqewAbOouZcg11L+EKKEqOwfw3F6KsMD6MIJeqrE AdyH+wm4Brt4
epJ3krKSdlREp9GLPn4uUIvNowe/5sg8GBoBd1ik7g+kL2AuodXdQHoErG1i HsR6XmQvoJ6n
2RH053hqH0RFfY6lZEcDOanPkfHPFTdDCnyI2QC2MPytBNKEpYS6io+BTdjJ k91cfs1czzsZ
fJsLNMSAlOQAHiaUVXxeKSglKkg8gkddKAfxGG9V5tkYvPMyrwBtpo4CND80 jOcWXsSMIbx0
+Rec67qO14fw7u+uus6/V/hNhTfDPWGlqMGRY2U9P9WpL3Qd740j8btRVNN+ tRup7gnhfVxw
ab04ZmCrK8l0X8Wl439i1tHKj0qH8cnxa7hU+dkQvhzCt8O4fA3zrriex+NY yP89h1f/B1BL
AwQUAAAACAASYJsyowZ9ycMAAAApAQAAGQAAAGNvbS9taW5kcmVlZi94c2Qv YmFzZS54c2Rd
jssOgjAQRdeS8A/NfABF3RFgYYwrHwtduK11wCZ9YFsC/r3loTEu58zJvTfv Xeb4AxUjKFGh
9jtj1RYr1kpfwLNlUlQC7xBHC89sjf7IFLqGcSzg4X2TUVoZQ2/M0sHpldQu 69332XVd0q0T
Y2u6StMlvR7257EPSBlHcURIHiZwoxqJ/eXVINGhoIANczicUA7OZDl8tqg5 zmiC82yihD5x
3tpQncIcIu5AfAgpIIhCeyD0E0f/80bysyPASRrXlm9QSwMEFAAAAAgAgmSb MoOJLSs1AQAA
+QIAABsAAABjb20vbWluZHJlZWYveHNkL2RvdWJsZS54c2Slkr9OwzAQxmcq 9R0sP0CcwhY1
DFCYWhjKwOo619SS/6S2o5i35xK3JVHpgNh8351/9/l8y+gLLw6gOQEFGkx4 tU6vYM9bFUp6
bLmSewkVJYG7GsIb1+AbLqCkhxCagjFrgNH57C5qZXwRDtLfSnX2ktlby3bc jbLx51rXdVn3
kFlXs/s8X7DPzXo7WKSP8xkhS7QsdWNdIObKzQVM0qvWVvAgrSnpjnvIoseX sAtGWN0oiB9f
DQyskm6D46aGXkndJoXP1gQc0SmRUhBR8tiC9B1K2k+g2MiqUhMKFrNx9RnO fqeP9R6D4m3T
193+6rmzxROepoZTrYdjC0bASD5B0r6cPKzaRkmcNVQvSceNQVpJe0Rw0tSU aGnehWgdfnWO
EY/naHH+lNGkrvr+d36JOmwFRt9QSwMEFAAAAAgA5GabMgnZQTszAwAARwkA ACQAAABjb20v
bWluZHJlZWYveHNkL0RvdWJseUV4dGVuZGVkLmphdmG1Vd9r2zAQfg/kfzj6 ZIeidGWj0NKH
rslGYe1Kk8JgjKHKl0SrLRlJaRNK//ed5B9xHCd7miiNJX333d2nOynn4pnP EYTOWCZVYhBn
bGWTi36v35NZro0DbeYMRSpziwyzGSNsphVbOpmyx4ebi71AFNogM2j10ghk D+XHBF23Dfll
PyajcYoZKjeiZW64k1odhN/qBNOvRi/zg7B7bpwUKR4ETcQCM34QMkWTHQas cxzhTCp5OHRa
Tjc+b2i2Hxu0JmwlYYmu8X/4Cy9ANw5JM23C7nAw6PdgAFO0DgS3CDNtYJzA LZpnC3oGboFQ
OXIoFkqner72PkHhq517WZnnCDzj5BjyFD2R0g7JmruCojgyOBot81QK7jAp T/EIosSLgQlI
BdeaAseVlwjeFs7l58OhVjh8v5VJkqJfj4MnaSE3UhEPDNyrFDjw5t6VM/wF jeVpFX5eHqz1
CLHPwYTs1Dx42ORzbdCHCk9ruFJcJTBd8OdnNGHzKjdwenYMpycnn+DD6fnJ 2fnHE7i/9ZvD
fi9fPlGmQDVqLYw0zdbjlUOVYNLvvRGIBqXwQg7AOipjAdQsMPr++Pnb+Lf/ vPQLTIQY6Cva
JmGBmc3RVYceHSUeESriKGZOe6hRPP2iTRbFcTjy4LYIrfT6omUCGZcqIg2k mv/8BdzMbVxg
y0j9cGa9mTTW/Wj0LhhLoW8VbplEAxT5aJoEreIFyoHmRBS1dmLi38p6o9ix M0vsIC4CgcSL
Q4wFtecoNqKNMtWYrK3DjOmlY6HMUhUFaxK1EKkpZzWq1gLpyEuBJyfb/W6j mMkSuCPC60JS
hJF0bMHtHa5Ipngb0ZLdj50rxSfYWilk3F6MKU6mgpOLXdYOBXZoW2q0KYJd hxVp0ujzbtsO
923Y+2ba+KS7RSwgGq8E5iF1bCjYUg8L7omjR25qONVS00dJ+l53zXazhrYp Umy8HvVts9s+
5dsAzv+7rIGhRNA3aMO3nEUBJhV5UwLpKut8+Pbn1iFgFHVzeE+xD+OOZ63j aAiLKd3q3XFt
Xtj98Ww3RwilYVaHUOn4X9qkPiSqyfq7aI1qergp6oqu4f+sSfqhv79QSwEC FAsKAAAAAAAm
ZpsyAAAAAAAAAAAAAAAADQAAAAAAAAAAABAAAAAAAAAAY29tL21pbmRyZWVm L1BLAQIUCwoA
AAAAACZmmzIAAAAAAAAAAAAAAAARAAAAAAAAAAAAEAAAACsAAABjb20vbWlu ZHJlZWYveHNk
L1BLAQIUCxQAAAAIAOtmmzJ2VDRiVwYAAD4NAAAlAAAAAAAAAAAAIAAAAFoA AABjb20vbWlu
ZHJlZWYveHNkL0RvdWJseUV4dGVuZGVkLmNsYXNzUEsBAhQLFAAAAAgAEmCb MqMGfcnDAAAA
KQEAABkAAAAAAAAAAQAgAAAA9AYAAGNvbS9taW5kcmVlZi94c2QvYmFzZS54 c2RQSwECFAsU
AAAACACCZJsyg4ktKzUBAAD5AgAAGwAAAAAAAAABACAAAADuBwAAY29tL21p bmRyZWVmL3hz
ZC9kb3VibGUueHNkUEsBAhQLFAAAAAgA5GabMgnZQTszAwAARwkAACQAAAAA AAAAAQAgAAAA
XAkAAGNvbS9taW5kcmVlZi94c2QvRG91Ymx5RXh0ZW5kZWQuamF2YVBLBQYA AAAABgAGAK8B
AADRDAAAAAA=
--------------090804010509020505050407--
Re: Type derivation results in duplicate particles [message #59971 is a reply to message #59945] Wed, 27 April 2005 17:26 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

This is a multi-part message in MIME format.
--------------050205090400090303080208
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Anand,

For me it prints this result:

org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
null]) (document: [#document: null], schemaLocation:
file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
targetNamespace: http://one/, attributeFormDefault: <unset>,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
[], lexicalFinal: null, block: null, mixed: <unset>)
id

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace:
http://one/) (derivationMethod: extension, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
[], lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
http://one/) (derivationMethod: extension, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
[], lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement

Does it do something different for you?


Anand Thakker wrote:

>
> Ed,
> I'm attaching a simple test case JAR -- unfortunately, my source zip
> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>
> Run com.mindreef.xsd.DoublyExtended. The schemas and java source are
> in the JAR.
>
> Thanks,
> Anand
>
> Ed Merks wrote:
>
>> Anand,
>>
>> It would be best if I could reproduce what you are seeing. Can you
>> provide a test case that demonstrates the problem? It's pretty easy
>> to add code to XSDMainTest.java to run a test case...
>>
>>
>> Anand Thakker wrote:
>>
>>>
>>> Hi Ed,
>>> I appreciate your checking this out.
>>> It's not the imports, though; they're in my schemas, I just
>>> miscopied them into the email.
>>> I'm not seeing duplicates in a Semantic view -- rather, it's in code
>>> I have that's walking the the XSD object model. Any ideas?
>>>
>>> Is there anything in the patch() or analyze() steps that could be
>>> messed up because of incorrect document/resource resolving?
>>>
>>> Thanks,
>>> Anand
>>>
>>>
>>> Ed Merks wrote:
>>>
>>>> Anand,
>>>>
>>>> You need to add an import. When I add that, it looks fine in the
>>>> Semantics view:
>>>>
>>>>
>>>> Even without that, I'm not seeing duplicates:
>>>>
>>>>
>>>>
>>>>
>>>> Anand Thakker wrote:
>>>>
>>>>> Hi,
>>>>> I'm experiencing some odd behavior with derived types.
>>>>>
>>>>> I have a derivation chain with three types; say C derives from B
>>>>> and B derives from A (all by extension).
>>>>>
>>>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>>>> the XSDParticle representing B's content (obtained by
>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>> does *not* occur when all three are in the same namespace.
>>>>>
>>>>> More concretely, here is what the object hierarchy looks like from
>>>>> my watch window for the the complexType "StrangeType" in the
>>>>> schema fragment below.
>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>> same reference in mem).
>>>>>
>>>>> Is this actually the correct behavior, or could I be using the
>>>>> library incorrectly?
>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>> that I have custom hooks into the parser for resolving schema
>>>>> fragments embedded in other files.
>>>>>
>>>>> Thanks,
>>>>> Anand Thakker
>>>>> Mindreef, Inc.
>>>>>
>>>>>
>>>>> XSD Object Model:
>>>>> -----------------
>>>>>
>>>>> XSDComplexTypeDefinition
>>>>> {
>>>>> name="StrangeType"
>>>>> content = XSDModelGroupImpl
>>>>> {
>>>>> compositor=sequence
>>>>> particles[2] =
>>>>> [ 0: XSDParticleImpl
>>>>> {
>>>>> term = XSDModelGroupImpl
>>>>> {
>>>>> compositor=sequence
>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>> middleTypeParticle ]
>>>>> }
>>>>> }
>>>>> 1: XSDParticleImpl
>>>>> {
>>>>> term = XSDModelGroupImpl
>>>>> {
>>>>> compositor=sequence
>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>> }
>>>>> }
>>>>> ]
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> Schemas:
>>>>> --------
>>>>>
>>>>>
>>>>> <!-- Schema One -->
>>>>> <xs:schema elementFormDefault="qualified"
>>>>> targetNamespace="http://one/"
>>>>> xmlns:this="http://one/"
>>>>> xmlns:two="http://foo/bar/"
>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>
>>>>> <xs:complexType name="StrangeType">
>>>>> <xs:complexContent>
>>>>> <xs:extension base="this:MiddleType">
>>>>> </xs:extension>
>>>>> </xs:complexContent>
>>>>> </xs:complexType>
>>>>>
>>>>> <xs:complexType name="MiddleType">
>>>>> <xs:complexContent>
>>>>> <xs:extension base="two:BaseType">
>>>>> <xs:sequence>
>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>> minOccurs="0" maxOccurs="1" />
>>>>> </xs:sequence>
>>>>> </xs:extension>
>>>>> </xs:complexContent>
>>>>> </xs:complexType>
>>>>> </xs:schema>
>>>>>
>>>>>
>>>>>
>>>>> <!-- Schema Two -->
>>>>> <xs:schema elementFormDefault="qualified"
>>>>> targetNamespace="http://foo/bar/"
>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>
>>>>> <xs:complexType name="BaseType">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> </xs:schema>
>>>>
>>>>
>>>>
>>>>
>>>>


--------------050205090400090303080208
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anand,<br>
<br>
For me it prints this result:<br>
<blockquote><small>org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element:
[xs:schema: null]) (document: [#document: null], schemaLocation:
<a class="moz-txt-link-freetext" href=" file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd "> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd </a>,
targetNamespace: <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>, attributeFormDefault: &lt;unset&gt;,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)<br>
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://foo/bar/">http://foo/bar/</a>) (derivationMethod: &lt;unset&gt;, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)<br>
id<br>
<br>
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)<br>
id<br>
DuplicatedElement<br>
<br>
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)<br>
id<br>
DuplicatedElement</small><br>
</blockquote>
Does it do something different for you?<br>
<br>
<br>
Anand Thakker wrote:
<blockquote cite="midd4ogi5$h8k$1@news.eclipse.org" type="cite"><br>
Ed,
<br>
I'm attaching a simple test case JAR -- unfortunately, my source zip
didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
<br>
<br>
Run com.mindreef.xsd.DoublyExtended.&nbsp; The schemas and java source are
in the JAR.
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Anand,
<br>
<br>
It would be best if I could reproduce what you are seeing.&nbsp; Can you
provide a test case that demonstrates the problem?&nbsp; It's pretty easy to
add code to XSDMainTest.java to run a test case...
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite"><br>
Hi Ed,
<br>
I appreciate your checking this out.
<br>
It's not the imports, though; they're in my schemas, I just miscopied
them into the email.
<br>
I'm not seeing duplicates in a Semantic view -- rather, it's in code I
have that's walking the the XSD object model.&nbsp; Any ideas?
<br>
<br>
Is there anything in the patch() or analyze() steps that could be
messed up because of incorrect document/resource resolving?
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
<br>
Ed Merks wrote:
<br>
<br>
<blockquote type="cite">Anand,
<br>
<br>
You need to add an import.&nbsp; When I add that, it looks fine in the
Semantics view:
<br>
<br>
<br>
Even without that, I'm not seeing duplicates:
<br>
<br>
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite">Hi,
<br>
I'm experiencing some odd behavior with derived types.
<br>
<br>
I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).
<br>
<br>
*If* A is in one namespace and B&amp;C are in a second ns, then I find
the XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C.&nbsp; This does
*not* occur when all three are in the same namespace.
<br>
<br>
More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
<br>
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).
<br>
<br>
Is this actually the correct behavior, or could I be using the library
incorrectly?
<br>
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.
<br>
<br>
Thanks,
<br>
Anand Thakker
<br>
Mindreef, Inc.
<br>
<br>
<br>
XSD Object Model:
<br>
-----------------
<br>
<br>
XSDComplexTypeDefinition
<br>
{
<br>
&nbsp; name="StrangeType"
<br>
&nbsp; content = XSDModelGroupImpl
<br>
&nbsp; {
<br>
&nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp; particles[2] =
<br>
&nbsp;&nbsp;&nbsp; [ 0: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[1] = [ 0: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; ]
<br>
&nbsp; }
<br>
}
<br>
<br>
<br>
Schemas:
<br>
--------
<br>
<br>
<br>
&lt;!-- Schema One --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:this=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:two=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a>&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="StrangeType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="this:MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="two:BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" /&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
<br>
<br>
<br>
&lt;!--&nbsp; Schema Two --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
<br>
&nbsp;&nbsp;&nbsp; targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a> &gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element minOccurs="0" name="id" type="xs:int" /&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
</blockquote>
<br>
<br>
<br>
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
</body>
</html>

--------------050205090400090303080208--
Re: Type derivation results in duplicate particles [message #59995 is a reply to message #59971] Wed, 27 April 2005 18:33 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Ed,
Which versoin of the library was that run with? I'm currently running
org.eclipse.xsd-2.0.0-20043081633, and I see the following...
DuplicateElement is actually duplicated for the last type (StrangeType).

org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
null]) (document: [#document: null], schemaLocation:
file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd,
targetNamespace: http://one/, attributeFormDefault: <unset>,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions: [],
lexicalFinal: null, block: null, mixed: <unset>)
id

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace: http://one/)
(derivationMethod: extension, final: [], abstract: <unset>,
contentTypeCategory: elementOnly, prohibitedSubstitutions: [],
lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
http://one/) (derivationMethod: extension, final: [], abstract: <unset>,
contentTypeCategory: elementOnly, prohibitedSubstitutions: [],
lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement
DuplicatedElement







Ed Merks wrote:
> Anand,
>
> For me it prints this result:
>
> org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
> null]) (document: [#document: null], schemaLocation:
> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
> targetNamespace: http://one/, attributeFormDefault: <unset>,
> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
> version: null)
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
> [xs:complexType: null]) (name: BaseType, targetNamespace:
> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
> [xs:complexType: null]) (name: MiddleType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
> [xs:complexType: null]) (name: StrangeType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
>
> Does it do something different for you?
>
>
> Anand Thakker wrote:
>
>>
>> Ed,
>> I'm attaching a simple test case JAR -- unfortunately, my source zip
>> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>>
>> Run com.mindreef.xsd.DoublyExtended. The schemas and java source are
>> in the JAR.
>>
>> Thanks,
>> Anand
>>
>> Ed Merks wrote:
>>
>>> Anand,
>>>
>>> It would be best if I could reproduce what you are seeing. Can you
>>> provide a test case that demonstrates the problem? It's pretty easy
>>> to add code to XSDMainTest.java to run a test case...
>>>
>>>
>>> Anand Thakker wrote:
>>>
>>>>
>>>> Hi Ed,
>>>> I appreciate your checking this out.
>>>> It's not the imports, though; they're in my schemas, I just
>>>> miscopied them into the email.
>>>> I'm not seeing duplicates in a Semantic view -- rather, it's in code
>>>> I have that's walking the the XSD object model. Any ideas?
>>>>
>>>> Is there anything in the patch() or analyze() steps that could be
>>>> messed up because of incorrect document/resource resolving?
>>>>
>>>> Thanks,
>>>> Anand
>>>>
>>>>
>>>> Ed Merks wrote:
>>>>
>>>>> Anand,
>>>>>
>>>>> You need to add an import. When I add that, it looks fine in the
>>>>> Semantics view:
>>>>>
>>>>>
>>>>> Even without that, I'm not seeing duplicates:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Anand Thakker wrote:
>>>>>
>>>>>> Hi,
>>>>>> I'm experiencing some odd behavior with derived types.
>>>>>>
>>>>>> I have a derivation chain with three types; say C derives from B
>>>>>> and B derives from A (all by extension).
>>>>>>
>>>>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>>>>> the XSDParticle representing B's content (obtained by
>>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>>> does *not* occur when all three are in the same namespace.
>>>>>>
>>>>>> More concretely, here is what the object hierarchy looks like from
>>>>>> my watch window for the the complexType "StrangeType" in the
>>>>>> schema fragment below.
>>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>>> same reference in mem).
>>>>>>
>>>>>> Is this actually the correct behavior, or could I be using the
>>>>>> library incorrectly?
>>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>>> that I have custom hooks into the parser for resolving schema
>>>>>> fragments embedded in other files.
>>>>>>
>>>>>> Thanks,
>>>>>> Anand Thakker
>>>>>> Mindreef, Inc.
>>>>>>
>>>>>>
>>>>>> XSD Object Model:
>>>>>> -----------------
>>>>>>
>>>>>> XSDComplexTypeDefinition
>>>>>> {
>>>>>> name="StrangeType"
>>>>>> content = XSDModelGroupImpl
>>>>>> {
>>>>>> compositor=sequence
>>>>>> particles[2] =
>>>>>> [ 0: XSDParticleImpl
>>>>>> {
>>>>>> term = XSDModelGroupImpl
>>>>>> {
>>>>>> compositor=sequence
>>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>>> middleTypeParticle ]
>>>>>> }
>>>>>> }
>>>>>> 1: XSDParticleImpl
>>>>>> {
>>>>>> term = XSDModelGroupImpl
>>>>>> {
>>>>>> compositor=sequence
>>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>>> }
>>>>>> }
>>>>>> ]
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Schemas:
>>>>>> --------
>>>>>>
>>>>>>
>>>>>> <!-- Schema One -->
>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>> targetNamespace="http://one/"
>>>>>> xmlns:this="http://one/"
>>>>>> xmlns:two="http://foo/bar/"
>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>>
>>>>>> <xs:complexType name="StrangeType">
>>>>>> <xs:complexContent>
>>>>>> <xs:extension base="this:MiddleType">
>>>>>> </xs:extension>
>>>>>> </xs:complexContent>
>>>>>> </xs:complexType>
>>>>>>
>>>>>> <xs:complexType name="MiddleType">
>>>>>> <xs:complexContent>
>>>>>> <xs:extension base="two:BaseType">
>>>>>> <xs:sequence>
>>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>>> minOccurs="0" maxOccurs="1" />
>>>>>> </xs:sequence>
>>>>>> </xs:extension>
>>>>>> </xs:complexContent>
>>>>>> </xs:complexType>
>>>>>> </xs:schema>
>>>>>>
>>>>>>
>>>>>>
>>>>>> <!-- Schema Two -->
>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>> targetNamespace="http://foo/bar/"
>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>>
>>>>>> <xs:complexType name="BaseType">
>>>>>> <xs:sequence>
>>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>>> </xs:sequence>
>>>>>> </xs:complexType>
>>>>>> </xs:schema>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
Re: Type derivation results in duplicate particles [message #60021 is a reply to message #59995] Wed, 27 April 2005 20:26 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

This is a multi-part message in MIME format.
--------------090403020400090105010608
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Anand,

I'm running with my latest development image, which would be a 2.1.0.
I think this is bugzilla 80755
<https://bugs.eclipse.org/bugs/show_bug.cgi?id=80755> which is fixed in
2.1.0.I200412160800.


Anand Thakker wrote:

> Ed,
> Which versoin of the library was that run with? I'm currently running
> org.eclipse.xsd-2.0.0-20043081633, and I see the following...
> DuplicateElement is actually duplicated for the last type (StrangeType).
>
> org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
> null]) (document: [#document: null], schemaLocation:
> file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd,
> targetNamespace: http://one/, attributeFormDefault: <unset>,
> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
> version: null)
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
> [xs:complexType: null]) (name: BaseType, targetNamespace:
> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca
> (element: [xs:complexType: null]) (name: MiddleType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824
> (element: [xs:complexType: null]) (name: StrangeType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
> DuplicatedElement
>
>
>
>
>
>
>
> Ed Merks wrote:
>
>> Anand,
>>
>> For me it prints this result:
>>
>> org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
>> null]) (document: [#document: null], schemaLocation:
>>
>> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
>>
>> targetNamespace: http://one/, attributeFormDefault: <unset>,
>> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
>> version: null)
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
>> [xs:complexType: null]) (name: BaseType, targetNamespace:
>> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
>> [xs:complexType: null]) (name: MiddleType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
>> [xs:complexType: null]) (name: StrangeType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>>
>> Does it do something different for you?
>>
>>
>> Anand Thakker wrote:
>>
>>>
>>> Ed,
>>> I'm attaching a simple test case JAR -- unfortunately, my source zip
>>> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>>>
>>> Run com.mindreef.xsd.DoublyExtended. The schemas and java source
>>> are in the JAR.
>>>
>>> Thanks,
>>> Anand
>>>
>>> Ed Merks wrote:
>>>
>>>> Anand,
>>>>
>>>> It would be best if I could reproduce what you are seeing. Can you
>>>> provide a test case that demonstrates the problem? It's pretty
>>>> easy to add code to XSDMainTest.java to run a test case...
>>>>
>>>>
>>>> Anand Thakker wrote:
>>>>
>>>>>
>>>>> Hi Ed,
>>>>> I appreciate your checking this out.
>>>>> It's not the imports, though; they're in my schemas, I just
>>>>> miscopied them into the email.
>>>>> I'm not seeing duplicates in a Semantic view -- rather, it's in
>>>>> code I have that's walking the the XSD object model. Any ideas?
>>>>>
>>>>> Is there anything in the patch() or analyze() steps that could be
>>>>> messed up because of incorrect document/resource resolving?
>>>>>
>>>>> Thanks,
>>>>> Anand
>>>>>
>>>>>
>>>>> Ed Merks wrote:
>>>>>
>>>>>> Anand,
>>>>>>
>>>>>> You need to add an import. When I add that, it looks fine in the
>>>>>> Semantics view:
>>>>>>
>>>>>>
>>>>>> Even without that, I'm not seeing duplicates:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Anand Thakker wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>> I'm experiencing some odd behavior with derived types.
>>>>>>>
>>>>>>> I have a derivation chain with three types; say C derives from B
>>>>>>> and B derives from A (all by extension).
>>>>>>>
>>>>>>> *If* A is in one namespace and B&C are in a second ns, then I
>>>>>>> find the XSDParticle representing B's content (obtained by
>>>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>>>> does *not* occur when all three are in the same namespace.
>>>>>>>
>>>>>>> More concretely, here is what the object hierarchy looks like
>>>>>>> from my watch window for the the complexType "StrangeType" in
>>>>>>> the schema fragment below.
>>>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>>>> same reference in mem).
>>>>>>>
>>>>>>> Is this actually the correct behavior, or could I be using the
>>>>>>> library incorrectly?
>>>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>>>> that I have custom hooks into the parser for resolving schema
>>>>>>> fragments embedded in other files.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Anand Thakker
>>>>>>> Mindreef, Inc.
>>>>>>>
>>>>>>>
>>>>>>> XSD Object Model:
>>>>>>> -----------------
>>>>>>>
>>>>>>> XSDComplexTypeDefinition
>>>>>>> {
>>>>>>> name="StrangeType"
>>>>>>> content = XSDModelGroupImpl
>>>>>>> {
>>>>>>> compositor=sequence
>>>>>>> particles[2] =
>>>>>>> [ 0: XSDParticleImpl
>>>>>>> {
>>>>>>> term = XSDModelGroupImpl
>>>>>>> {
>>>>>>> compositor=sequence
>>>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>>>> middleTypeParticle ]
>>>>>>> }
>>>>>>> }
>>>>>>> 1: XSDParticleImpl
>>>>>>> {
>>>>>>> term = XSDModelGroupImpl
>>>>>>> {
>>>>>>> compositor=sequence
>>>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>>>> }
>>>>>>> }
>>>>>>> ]
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> Schemas:
>>>>>>> --------
>>>>>>>
>>>>>>>
>>>>>>> <!-- Schema One -->
>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>> targetNamespace="http://one/"
>>>>>>> xmlns:this="http://one/"
>>>>>>> xmlns:two="http://foo/bar/"
>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>>>
>>>>>>> <xs:complexType name="StrangeType">
>>>>>>> <xs:complexContent>
>>>>>>> <xs:extension base="this:MiddleType">
>>>>>>> </xs:extension>
>>>>>>> </xs:complexContent>
>>>>>>> </xs:complexType>
>>>>>>>
>>>>>>> <xs:complexType name="MiddleType">
>>>>>>> <xs:complexContent>
>>>>>>> <xs:extension base="two:BaseType">
>>>>>>> <xs:sequence>
>>>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>>>> minOccurs="0" maxOccurs="1" />
>>>>>>> </xs:sequence>
>>>>>>> </xs:extension>
>>>>>>> </xs:complexContent>
>>>>>>> </xs:complexType>
>>>>>>> </xs:schema>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> <!-- Schema Two -->
>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>> targetNamespace="http://foo/bar/"
>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>>>
>>>>>>> <xs:complexType name="BaseType">
>>>>>>> <xs:sequence>
>>>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>>>> </xs:sequence>
>>>>>>> </xs:complexType>
>>>>>>> </xs:schema>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>


--------------090403020400090105010608
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anand,<br>
<br>
I'm running with my latest development image, which would be a 2.1.0.&nbsp;&nbsp;
I think this is bugzilla&nbsp; <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80755">80755</a>
which is fixed in 2.1.0.I200412160800.<br>
<br>
<br>
Anand Thakker wrote:
<blockquote cite="midd4om83$p5i$1@news.eclipse.org" type="cite">Ed,
<br>
Which versoin of the library was that run with?&nbsp; I'm currently running
org.eclipse.xsd-2.0.0-20043081633, and I see the following...
DuplicateElement is actually duplicated for the last type
(StrangeType).
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
null]) (document: [#document: null], schemaLocation:
<a class="moz-txt-link-freetext" href=" file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd "> file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd </a>,
targetNamespace: <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>, attributeFormDefault: &lt;unset&gt;,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://foo/bar/">http://foo/bar/</a>) (derivationMethod: &lt;unset&gt;, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Anand,
<br>
<br>
For me it prints this result:
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
<br>
&nbsp;&nbsp;&nbsp; null]) (document: [#document: null], schemaLocation:
<br>
&nbsp;&nbsp;&nbsp;
<a class="moz-txt-link-freetext" href=" file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd "> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd </a>,
<br>
&nbsp;&nbsp;&nbsp; targetNamespace: <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>, attributeFormDefault: &lt;unset&gt;,
<br>
&nbsp;&nbsp;&nbsp; elementFormDefault: qualified, finalDefault: [], blockDefault: [],
<br>
&nbsp;&nbsp;&nbsp; version: null)
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
<br>
&nbsp;&nbsp;&nbsp; [xs:complexType: null]) (name: BaseType, targetNamespace:
<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://foo/bar/">http://foo/bar/</a>) (derivationMethod: &lt;unset&gt;, final: [],
abstract:
<br>
&nbsp;&nbsp;&nbsp; &lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions:
<br>
&nbsp;&nbsp;&nbsp; [], lexicalFinal: null, block: null, mixed: &lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775
(element:
<br>
&nbsp;&nbsp;&nbsp; [xs:complexType: null]) (name: MiddleType, targetNamespace:
<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
<br>
&nbsp;&nbsp;&nbsp; &lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions:
<br>
&nbsp;&nbsp;&nbsp; [], lexicalFinal: null, block: null, mixed: &lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775
(element:
<br>
&nbsp;&nbsp;&nbsp; [xs:complexType: null]) (name: StrangeType, targetNamespace:
<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
<br>
&nbsp;&nbsp;&nbsp; &lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions:
<br>
&nbsp;&nbsp;&nbsp; [], lexicalFinal: null, block: null, mixed: &lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
Does it do something different for you?
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite"><br>
Ed,
<br>
I'm attaching a simple test case JAR -- unfortunately, my source zip
didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
<br>
<br>
Run com.mindreef.xsd.DoublyExtended.&nbsp; The schemas and java source are
in the JAR.
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
Ed Merks wrote:
<br>
<br>
<blockquote type="cite">Anand,
<br>
<br>
It would be best if I could reproduce what you are seeing.&nbsp; Can you
provide a test case that demonstrates the problem?&nbsp; It's pretty easy to
add code to XSDMainTest.java to run a test case...
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite"><br>
Hi Ed,
<br>
I appreciate your checking this out.
<br>
It's not the imports, though; they're in my schemas, I just miscopied
them into the email.
<br>
I'm not seeing duplicates in a Semantic view -- rather, it's in code I
have that's walking the the XSD object model.&nbsp; Any ideas?
<br>
<br>
Is there anything in the patch() or analyze() steps that could be
messed up because of incorrect document/resource resolving?
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
<br>
Ed Merks wrote:
<br>
<br>
<blockquote type="cite">Anand,
<br>
<br>
You need to add an import.&nbsp; When I add that, it looks fine in the
Semantics view:
<br>
<br>
<br>
Even without that, I'm not seeing duplicates:
<br>
<br>
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite">Hi,
<br>
I'm experiencing some odd behavior with derived types.
<br>
<br>
I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).
<br>
<br>
*If* A is in one namespace and B&amp;C are in a second ns, then I find
the XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C.&nbsp; This does
*not* occur when all three are in the same namespace.
<br>
<br>
More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
<br>
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).
<br>
<br>
Is this actually the correct behavior, or could I be using the library
incorrectly?
<br>
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.
<br>
<br>
Thanks,
<br>
Anand Thakker
<br>
Mindreef, Inc.
<br>
<br>
<br>
XSD Object Model:
<br>
-----------------
<br>
<br>
XSDComplexTypeDefinition
<br>
{
<br>
&nbsp; name="StrangeType"
<br>
&nbsp; content = XSDModelGroupImpl
<br>
&nbsp; {
<br>
&nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp; particles[2] =
<br>
&nbsp;&nbsp;&nbsp; [ 0: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[1] = [ 0: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; ]
<br>
&nbsp; }
<br>
}
<br>
<br>
<br>
Schemas:
<br>
--------
<br>
<br>
<br>
&lt;!-- Schema One --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:this=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:two=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a>&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="StrangeType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="this:MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="two:BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" /&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
<br>
<br>
<br>
&lt;!--&nbsp; Schema Two --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
<br>
&nbsp;&nbsp;&nbsp; targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a> &gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element minOccurs="0" name="id" type="xs:int" /&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
</blockquote>
<br>
<br>
<br>
<br>
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
</blockquote>
</blockquote>
<br>
</body>
</html>

--------------090403020400090105010608--
Re: Type derivation results in duplicate particles [message #60046 is a reply to message #60021] Thu, 28 April 2005 02:02 Go to previous message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Ed,
Indeed, I was using an older version. Thanks very much for all your help!
Anand

Ed Merks wrote:
> Anand,
>
> I'm running with my latest development image, which would be a 2.1.0.
> I think this is bugzilla 80755
> <https://bugs.eclipse.org/bugs/show_bug.cgi?id=80755> which is fixed in
> 2.1.0.I200412160800.
>
>
> Anand Thakker wrote:
>
>> Ed,
>> Which versoin of the library was that run with? I'm currently running
>> org.eclipse.xsd-2.0.0-20043081633, and I see the following...
>> DuplicateElement is actually duplicated for the last type (StrangeType).
>>
>> org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
>> null]) (document: [#document: null], schemaLocation:
>> file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd,
>> targetNamespace: http://one/, attributeFormDefault: <unset>,
>> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
>> version: null)
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
>> [xs:complexType: null]) (name: BaseType, targetNamespace:
>> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca
>> (element: [xs:complexType: null]) (name: MiddleType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824
>> (element: [xs:complexType: null]) (name: StrangeType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>> DuplicatedElement
>>
>>
>>
>>
>>
>>
>>
>> Ed Merks wrote:
>>
>>> Anand,
>>>
>>> For me it prints this result:
>>>
>>> org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
>>> null]) (document: [#document: null], schemaLocation:
>>>
>>> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
>>>
>>> targetNamespace: http://one/, attributeFormDefault: <unset>,
>>> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
>>> version: null)
>>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
>>> [xs:complexType: null]) (name: BaseType, targetNamespace:
>>> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
>>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>>> [], lexicalFinal: null, block: null, mixed: <unset>)
>>> id
>>>
>>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
>>> [xs:complexType: null]) (name: MiddleType, targetNamespace:
>>> http://one/) (derivationMethod: extension, final: [], abstract:
>>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>>> [], lexicalFinal: null, block: null, mixed: <unset>)
>>> id
>>> DuplicatedElement
>>>
>>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
>>> [xs:complexType: null]) (name: StrangeType, targetNamespace:
>>> http://one/) (derivationMethod: extension, final: [], abstract:
>>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>>> [], lexicalFinal: null, block: null, mixed: <unset>)
>>> id
>>> DuplicatedElement
>>>
>>> Does it do something different for you?
>>>
>>>
>>> Anand Thakker wrote:
>>>
>>>>
>>>> Ed,
>>>> I'm attaching a simple test case JAR -- unfortunately, my source zip
>>>> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>>>>
>>>> Run com.mindreef.xsd.DoublyExtended. The schemas and java source
>>>> are in the JAR.
>>>>
>>>> Thanks,
>>>> Anand
>>>>
>>>> Ed Merks wrote:
>>>>
>>>>> Anand,
>>>>>
>>>>> It would be best if I could reproduce what you are seeing. Can you
>>>>> provide a test case that demonstrates the problem? It's pretty
>>>>> easy to add code to XSDMainTest.java to run a test case...
>>>>>
>>>>>
>>>>> Anand Thakker wrote:
>>>>>
>>>>>>
>>>>>> Hi Ed,
>>>>>> I appreciate your checking this out.
>>>>>> It's not the imports, though; they're in my schemas, I just
>>>>>> miscopied them into the email.
>>>>>> I'm not seeing duplicates in a Semantic view -- rather, it's in
>>>>>> code I have that's walking the the XSD object model. Any ideas?
>>>>>>
>>>>>> Is there anything in the patch() or analyze() steps that could be
>>>>>> messed up because of incorrect document/resource resolving?
>>>>>>
>>>>>> Thanks,
>>>>>> Anand
>>>>>>
>>>>>>
>>>>>> Ed Merks wrote:
>>>>>>
>>>>>>> Anand,
>>>>>>>
>>>>>>> You need to add an import. When I add that, it looks fine in the
>>>>>>> Semantics view:
>>>>>>>
>>>>>>>
>>>>>>> Even without that, I'm not seeing duplicates:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Anand Thakker wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I'm experiencing some odd behavior with derived types.
>>>>>>>>
>>>>>>>> I have a derivation chain with three types; say C derives from B
>>>>>>>> and B derives from A (all by extension).
>>>>>>>>
>>>>>>>> *If* A is in one namespace and B&C are in a second ns, then I
>>>>>>>> find the XSDParticle representing B's content (obtained by
>>>>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>>>>> does *not* occur when all three are in the same namespace.
>>>>>>>>
>>>>>>>> More concretely, here is what the object hierarchy looks like
>>>>>>>> from my watch window for the the complexType "StrangeType" in
>>>>>>>> the schema fragment below.
>>>>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>>>>> same reference in mem).
>>>>>>>>
>>>>>>>> Is this actually the correct behavior, or could I be using the
>>>>>>>> library incorrectly?
>>>>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>>>>> that I have custom hooks into the parser for resolving schema
>>>>>>>> fragments embedded in other files.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Anand Thakker
>>>>>>>> Mindreef, Inc.
>>>>>>>>
>>>>>>>>
>>>>>>>> XSD Object Model:
>>>>>>>> -----------------
>>>>>>>>
>>>>>>>> XSDComplexTypeDefinition
>>>>>>>> {
>>>>>>>> name="StrangeType"
>>>>>>>> content = XSDModelGroupImpl
>>>>>>>> {
>>>>>>>> compositor=sequence
>>>>>>>> particles[2] =
>>>>>>>> [ 0: XSDParticleImpl
>>>>>>>> {
>>>>>>>> term = XSDModelGroupImpl
>>>>>>>> {
>>>>>>>> compositor=sequence
>>>>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>>>>> middleTypeParticle ]
>>>>>>>> }
>>>>>>>> }
>>>>>>>> 1: XSDParticleImpl
>>>>>>>> {
>>>>>>>> term = XSDModelGroupImpl
>>>>>>>> {
>>>>>>>> compositor=sequence
>>>>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>>>>> }
>>>>>>>> }
>>>>>>>> ]
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> Schemas:
>>>>>>>> --------
>>>>>>>>
>>>>>>>>
>>>>>>>> <!-- Schema One -->
>>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>>> targetNamespace="http://one/"
>>>>>>>> xmlns:this="http://one/"
>>>>>>>> xmlns:two="http://foo/bar/"
>>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>>>>
>>>>>>>> <xs:complexType name="StrangeType">
>>>>>>>> <xs:complexContent>
>>>>>>>> <xs:extension base="this:MiddleType">
>>>>>>>> </xs:extension>
>>>>>>>> </xs:complexContent>
>>>>>>>> </xs:complexType>
>>>>>>>>
>>>>>>>> <xs:complexType name="MiddleType">
>>>>>>>> <xs:complexContent>
>>>>>>>> <xs:extension base="two:BaseType">
>>>>>>>> <xs:sequence>
>>>>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>>>>> minOccurs="0" maxOccurs="1" />
>>>>>>>> </xs:sequence>
>>>>>>>> </xs:extension>
>>>>>>>> </xs:complexContent>
>>>>>>>> </xs:complexType>
>>>>>>>> </xs:schema>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> <!-- Schema Two -->
>>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>>> targetNamespace="http://foo/bar/"
>>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>>>>
>>>>>>>> <xs:complexType name="BaseType">
>>>>>>>> <xs:sequence>
>>>>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>>>>> </xs:sequence>
>>>>>>>> </xs:complexType>
>>>>>>>> </xs:schema>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>
>
Re: Type derivation results in duplicate particles [message #595054 is a reply to message #59852] Tue, 26 April 2005 21:59 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 26215
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------050200020709080002050208
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Anand,

You need to add an import. When I add that, it looks fine in the
Semantics view:


Even without that, I'm not seeing duplicates:




Anand Thakker wrote:

> Hi,
> I'm experiencing some odd behavior with derived types.
>
> I have a derivation chain with three types; say C derives from B and B
> derives from A (all by extension).
>
> *If* A is in one namespace and B&C are in a second ns, then I find the
> XSDParticle representing B's content (obtained by
> xsdComplexType.getContentType()) is duplicated in type C. This does
> *not* occur when all three are in the same namespace.
>
> More concretely, here is what the object hierarchy looks like from my
> watch window for the the complexType "StrangeType" in the schema
> fragment below.
> Notice the XSDParticleImpl middleTypeParticle appears twice (the same
> reference in mem).
>
> Is this actually the correct behavior, or could I be using the library
> incorrectly?
> The only thing out of the ordinary about my usage (I think) is that I
> have custom hooks into the parser for resolving schema fragments
> embedded in other files.
>
> Thanks,
> Anand Thakker
> Mindreef, Inc.
>
>
> XSD Object Model:
> -----------------
>
> XSDComplexTypeDefinition
> {
> name="StrangeType"
> content = XSDModelGroupImpl
> {
> compositor=sequence
> particles[2] =
> [ 0: XSDParticleImpl
> {
> term = XSDModelGroupImpl
> {
> compositor=sequence
> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
> }
> }
> 1: XSDParticleImpl
> {
> term = XSDModelGroupImpl
> {
> compositor=sequence
> particles[1] = [ 0: middleTypeParticle ]
> }
> }
> ]
> }
> }
>
>
> Schemas:
> --------
>
>
> <!-- Schema One -->
> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
> xmlns:this="http://one/"
> xmlns:two="http://foo/bar/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <xs:complexType name="StrangeType">
> <xs:complexContent>
> <xs:extension base="this:MiddleType">
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="MiddleType">
> <xs:complexContent>
> <xs:extension base="two:BaseType">
> <xs:sequence>
> <xs:element name="DuplicatedElement" type="xs:string"
> minOccurs="0" maxOccurs="1" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
> </xs:schema>
>
>
>
> <!-- Schema Two -->
> <xs:schema elementFormDefault="qualified"
> targetNamespace="http://foo/bar/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>
> <xs:complexType name="BaseType">
> <xs:sequence>
> <xs:element minOccurs="0" name="id" type="xs:int" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>



--------------050200020709080002050208
Content-Type: multipart/related;
boundary="------------020806090305010707020503"


--------------020806090305010707020503
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anand,<br>
<br>
You need to add an import.&nbsp; When I add that, it looks fine in the
Semantics view:<br>
<blockquote><img src="cid:part1.03080908.01030103@ca.ibm.com" alt=""><br>
</blockquote>
Even without that, I'm not seeing duplicates:<br>
<blockquote><img src="cid:part2.04040808.05050207@ca.ibm.com" alt=""><br>
</blockquote>
<br>
<br>
Anand Thakker wrote:
<blockquote cite="midd4mb6n$slj$1@news.eclipse.org" type="cite">Hi,
<br>
I'm experiencing some odd behavior with derived types.
<br>
<br>
I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).
<br>
<br>
*If* A is in one namespace and B&amp;C are in a second ns, then I find
the XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C.&nbsp; This does
*not* occur when all three are in the same namespace.
<br>
<br>
More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
<br>
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).
<br>
<br>
Is this actually the correct behavior, or could I be using the library
incorrectly?
<br>
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.
<br>
<br>
Thanks,
<br>
Anand Thakker
<br>
Mindreef, Inc.
<br>
<br>
<br>
XSD Object Model:
<br>
-----------------
<br>
<br>
XSDComplexTypeDefinition
<br>
{
<br>
&nbsp; name="StrangeType"
<br>
&nbsp; content = XSDModelGroupImpl
<br>
&nbsp; {
<br>
&nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp; particles[2] =
<br>
&nbsp;&nbsp;&nbsp; [ 0: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[1] = [ 0: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; ]
<br>
&nbsp; }
<br>
}
<br>
<br>
<br>
Schemas:
<br>
--------
<br>
<br>
<br>
&lt;!-- Schema One --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:this=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:two=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a>&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="StrangeType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="this:MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="two:BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" /&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
<br>
<br>
<br>
&lt;!--&nbsp; Schema Two --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
<br>
&nbsp;&nbsp;&nbsp;&nbsp;targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a> &gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element minOccurs="0" name="id" type="xs:int" /&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
</blockquote>
<br>
</body>
</html>

--------------020806090305010707020503
Content-Type: image/jpeg;
name="moz-screenshot-1.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part1.03080908.01030103@ca.ibm.com>
Content-Disposition: inline;
filename="moz-screenshot-1.jpg"

/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CAEiAPsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3XULp7O082OJZXMkcaqz7 QS7hRk4OPvel
UWuNQsWaaaytBHPcRq5juSWBYpGCB5Qz2PJz74wKuanbzXNlstxGZVlikUSM VU7JFbBIBx93
0rn7Twza2s+7TvDWh6ZIssQlntE2OUV0kKjEK7gdo74yPUUAbWu3E1rpZkt5 DFI00MYcAEqH
lVTjIIzhj2rK0t9V1C+1G3k1C/t1tJfLV2jiIk688xDHG09+GFaWqaQs+nGO xt7aOdXidMjY
CEdG25AJAIjUdD0HpWTeaTrN40rmxsY3lZXcpqk20lcAEoYih4UDlT0rVO0H ZK/yMpfHre3z
NTTZLqPWL6yuLyS5SKGGRGkRFILGQH7oHHyisaTxx5fi+50P7PYt5F3Fa+Wt /m8k8yON/MS3
2cxr5nzNv4VHb+HFa2h6dfWdxNNerAmbeC3RYpjJxHv5JKLyd3p2qjN4WvJ9 YvZW1OAaZeah
b6hJbi0PnCSFYdoEvmbdpaBCRszgsMjgiJblw2NB/FGkxS3UU808Eltnck9p LGZcME/dBlHn
fMyqPL3ZLoByy5jk8XaPCkLzSXcQkTzG8yxnUwJuK75gUzCmVbDSbQQrEHAJ HNxfDXybqWbz
NDnzaPa5utG8x7ndLE/mXTeaPPk/dZ3YX5mLe1ST/DWG4Nu9xdWl/P8AZxb3 E+q2IvZFUSSS
ZgaVyYyDK4G/zeFjB3bTuko1JPE9/Z65qltqOn2Nvpmm2gvri8S9kkcQN520 iIQjLfuTld3G
eC3StDU/FGk6ReCzu5pzdN5e2GC0lndt4lK4WNWJ4glPHTZzjIzYh0zyvEN7 q3nZ+02kFt5W
37vlPM27Oec+djGONvfPHH2fhPVLHR/Dg0yKCyvo9Q+13InHnpap9klhSMgS L5nlp5MO5WG7
bvI5agDpJPF+hxJC7XchSRN7slvKwt1DFSZ8L+4AZXBMm3BRwcbGxuVwdx8N La4mWeSTTbie
VGW6kvdLS4Kl5pZma3DtiI7p5MbhIMCPIO07u8oAKKKKACiiigAooooAKKKK ACiiigAooooA
KKKKACiiigAooooAKKKKACq9uu2e7O3G6UHO3GfkUZ+6M/m3TrxgWKr267Z7 s7cbpQc7cZ+R
Rn7oz+bdOvGAAWK5+fVrh7my/wBGtF829lt7XzJ23SSIsuc4ibb8sbnOR0xn nB6CuL1Pwda6
lfWk2o6FpV9JBdzSRSzfMZEfzSI5Mwt8g8wtjONwU9eCAdVp9095aebJEsTi SSNlV9wBRypw
cDP3fSuXl1LVmu7YR3N2Uur+e2/cxx7YgkpUdY2J+UE8n+E10FjpiLaMt7bW zzPJK74G8Yd3
IGSATgSMOnc+tZT6VqyLJAlpYzQi7luYpDfzQOC7Mf4E44cjqa1p26mdS+hZ vk1DTUt5xq9x
MGuoImjkiiAKvIqnogPQnvWtfXsWn2cl1Mk7xpjIggeZzkgcIgLHr2HHXpXM 22g6usu2SK0S
J7mGeRvtjysojk8zAzEpYnJGWYnpzxWt4k0P+39OjtvMgHlyiXyrqDz7ebAI 2yxbl3qN24Dc
MOqN/Dgw23Fcy1HHd22K7+NdBSVYzdTnMQmkdbOZkgQs6ZmcJthw0cgbzCu3 Y27GDVx9dtHt
42s5Y5Z7i4ns7VJN6LJcRCTchbaSoBhk+bBHy8ZyM83p/wAPPsOg61pn9oQL /amnyWWbez8q
ODfLdSZRN5+UfasBc9E688bGnaJ5fi/VtZlt/J37Yrf593mZji82Xrxu8uGP aRx9n3D/AFhq
SyPQfEtzqCI2q2dpYGe9msbVYLp7gyywtMJAcxIFGIHIPOR1wcAySeNdBjun t2upy0W4zSLZ
zNHCFlkiZpJAm2NQ8Ug3MQMITnHNV7/w9cReE7nTLNvPuptQe6hlwF+zvJdm dZcE4fySwfaT
8/l4/ixWfdeDryXUb7TbGWCx8PT6Ja6W4aIzSNGhuFZI28wbGVJF+Z1cEsOD gggHSQ+IdMuN
UOnRzyGfe0auYJBFI653IkpXY7ja2VViRsfI+Vsalcnpnge20zxK+qxrpuDc T3KyDTUF2XlL
Fg9wSSUBkbAVVOAgLEBt3WUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FV7dds92duN0oOduM/Ioz90Z/NunXjAsVXt12z3Z243Sg524z8ijP3Rn826d eMAAsVjrcahf
Ms0NlaGOC4kVDJckMSpeMkjyjjueDn3xkVsVytz4WtryZ31Dw3oOpuJJTHPe AM4RpGcLzE2M
bzxn1oA6DT7p7y082SJYnEkkbKr7gCjlTg4Gfu+lVT4k0cNdK19GjWpYShwV II3ZxkfN9xum
elOsdMRbRlvba2eZ5JXfA3jDu5AyQCcCRh07n1qwmmWEf2nZY2y/as/aNsSj zs5zv4+bqevq
apcvUl83Qov4p0SO0W5a/jEbErjaxYEbs5XG4fdbkjtVzUtUtNJt1mu3kAdw kaRRPLJI2CcI
iAsxwCSADgKT0BNI+j6ZJZR2T6daNaRtuSAwKUU88hcYB5P5mqniTRn1zTo7 aI2KSJKJVku7
VpvLIBAaPZJGySDPDq2RzjnkEuXoEebqA8UaSbyG1M06yS7Bl7SVUjZwCkcj ldsch3LhHKt8
6jGWGa8fjXQZLpLdbqcNLtMMjWcyxzBpY4laOQptkUvLGNykjDg5xzWXD8Pb a31uG/EtpdFX
glkub+wS4vmeFERStwxwoIiUn5Ccs5DKSCtM+CNUF/pNkb+CTTNM09obGZbb a8Lxz2kkAmzI
fNz9nG7aI87W+7uGJKOou/FGk2c81u808txDL5LwW1pLPIGCI5OyNSxULLHl gNoLqCcnFRxe
L9Dnv/scN3JId8aeelvKbfdIivGPPC+VlhImBu5LqByQK5+6+Hs2oXUuo6jd aNf6hJcSS4u9
IMtqqvFBGcRNLkOPsyYbf0ZxjkEakPg1LbTriyivcRy6hZXinyFXaLYWwCbU 2r832b+EKBv4
XA5ALg8XaO1u9wkl28QdUjZLGdvtBYEjyMJ+/G1WbMe4bRu6c1qWN9b6jZx3 VrJ5kL5AJUqQ
QSGVlOCrAggqQCCCCARXJzeBZrnQbHR7q8027tNLeM6dHdaaZUCpG8QFwpkx Kdj5yvl4YBsY
+Wuk0TS00XR4LCMQBY9xIt7dYIwWYsQka8KuScDk46ljliAaFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFV7dds92duN0oOduM/Ioz90Z/NunXjAsVXt1 2z3Z243Sg524
z8ijP3Rn826deMAAsUUUUAFUby8uYryC1tbeKV5Y3kJlmMYAUoOytn7/AOlX qx9a0r+05YhL
YWN/a+U8ctten5Gy0bA42MDgx9x6UAR6FqjXdvpqpFAbO6shcW00UhO+MBMZ UxptyHBxgY9B
V3U5JVksYYp3g8+4KM6BScCN2/iBHVR2rG8OeFYdBhsrODTrG2s7S3Mf7pg7 zSfusSPiNAX/
AHQJbqTj0qPxTfroZszaw2UXlxzXMYkQgSyxoqJCgVl+d1dgv3uF4U44umry sTN2RDpniiz1
bWZdMtNW1Eyp5gDlbfaxQgMMBSy9eNyjODjOK6fSp3utHsriVt0ktvG7NjGS VBNchd21j4V0
3WtX0nUhK1vHLMtjPff6PG7OQcqoySXR1AJ5YFQQckdlYrbJp9stkyNaCJRC yPuUpgbSD3GM
c1dXlt7qM6fNfU5e58d2p0zS5bL9/dXstgreVbzywRrcSRAhpdihW2SblD7W 5QlfmAPYVw9l
4CvNO06z0221mD7CkthcXQlsi0kslqIFGxhIAisLePgq5BLcnIA7isTYKKKK ACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKAKuoXT2dp5scSyuZI41Vn2gl 3CjJwcfe9Kot
cahYs001laCOe4jVzHcksCxSMEDyhnseTn3xgVc1O3mubLZbiMyrLFIokYqp 2SK2CQDj7vpX
P2nhm1tZ92neGtD0yRZYhLPaJscorpIVGIV3A7R3xkeooA2tduJrXSzJbyGK RpoYw4AJUPKq
nGQRnDHtWVpb6rqF9qNvJqF/braS+WrtHERJ155iGONp78MK0tU0hZ9OMdjb 20c6vE6ZGwEI
6NtyASARGo6HoPSsm80nWbxpXNjYxvKyu5TVJtpK4AJQxFDwoHKnpWqdoOyV /kZS+PW9vmam
myXUesX1lcXklykUMMiNIiKQWMgP3QOPlFY1346+yaxrumvp376x8uOw/f8A /H/Myw/u/u/u
sPc26bmJH7zPRWxraHp19Z3E016sCZt4LdFimMnEe/kkovJ3enanW/h63j1W 7v5286SXUBfw
DBXyX+yrbHofm+UN1/v9MgGoluXDYy9I8eafqGkQXtxHJHLMkTC0tIpruVd8 EMxyqR5wvnKC
wBX5kyQW2inD4+EvhzQrgJ5mp3/9nC4WK0meCE3DxB1aQAqjbJCVVmzyhwdw yaP4CvPD6W82
m6zB9uhiW3ElzZGSMx/Z7WJvkWRTuJtEYHdgBmGDwQWXgK807TrPTbbWYPsK S2FxdCWyLSSy
WogUbGEgCKwt4+CrkEtycgCSjQ0DxnZajpOjPey7L69tLeSYxW8hgilljVhG 0mCiMS67UZtx
3p13Lk03xPfveahHrOn2Njb2V3FYtLBeyXBeeUQmMBfJX5T56jcTwe2Oay9K +Gltpd1YSiTT
bg26WpkuJ9LR7ovBFHGvlSsxEaERKdu1iCzkMCQV3L3RPL0vxT/o/wDaf9rb 5fsO/wAnzP8A
Ro4fK8zPG7y/vcY3e2aAJLzxdo9jfvYSSXct2jsjQ2tjPcMCqRO2RGjcBZ4u enzgdcgSDxTo
zXkNtHeeb5uwLPFE7wAuAUVplBjVmDJtUsCd6YB3LnDHhrWrDUtDOl3lor21 lere3t1amRZZ
5pYJGYRrKhUu6yPwSq8jHIqOx+Gthpup2k9t9hkhg+zHzbvTo5rwGCOONAk5 4RSIkyNhOS5U
qSCoB3FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB Ve3XbPdnbjdK
DnbjPyKM/dGfzbp14wLFV7dds92duN0oOduM/Ioz90Z/NunXjAALFc/Pq1w9 zZf6NaL5t7Lb
2vmTtukkRZc5xE235Y3OcjpjPOD0FcXqfg611K+tJtR0LSr6SC7mkilm+YyI /mkRyZhb5B5h
bGcbgp68EA6rT7p7y082SJYnEkkbKr7gCjlTg4Gfu+lcvLqWrNd2wjubspdX 89t+5jj2xBJS
o6xsT8oJ5P8ACa6Cx0xFtGW9trZ5nkld8DeMO7kDJAJwJGHTufWsp9K1ZFkg S0sZoRdy3MUh
v5oHBdmP8CccOR1Na07dTOpfQs3yahpqW841e4mDXUETRyRRAFXkVT0QHoT3 pvizxL/wjNrY
S7bH/S7v7N5l/e/ZYYv3Ukm5pNjY/wBXtAxyWFUbbQdXWXbJFaJE9zDPI32x 5WURyeZgZiUs
TkjLMT054rW17SbzU20yewvYLS6sLs3KNPbGdGzFJEVKh0PSUnOe1Q23Fcy1 HHd22K9v4tsv
7Hs9Qvo57aO435kjgkmgUI20yGVV2rCfvrI+0MhDcDOLD+KNJjlukM05W1yJ JVtJTEzBgnlp
IF2ySbyE2KS27K4yCK5fWPhp/aumSWpvrGSSeKdZZL7TvtAhkmkkkeS2XzF8 li0rckucJECS
Uy1y98ArqM2ptcXNokF24kS0t7Rkt5HEyTB7mIyFZnJjVWYBCylwTyuySy5q niyePTIb/RbG
C9jN3FZzx3k0tnLDJJJHGgMbRMw/1isdwU7SCAwYVqJrtolvI15LHFPb3EFn dJHvdY7iUR7U
DbQWBM0fzYA+bnGDjLtPB6W2gjTUext2bULe+f7Bp620IMUsT7VjBJGREASz McknoAosS6J9
q8cxatJb7IbW0TZLvz502ZVXjPy+Wkko6Yb7T6xigAs/Gug31mbqK6nWExLN GZ7OaEzoxABi
V0BlyXQDYG5dB1Zc6mm6paatbtNaPIQjlJElieKSNsA4dHAZTgggEDIYHoQa 4fTfAN9qHhPS
bPxFc2hnstMhtYbZLTKRlWgkKTgyMJhut41O0oCN/wDeBXrPDehJ4f06S2RL FGllMrrYWS2s
IOAvyoCT0UZLMxJzyBhQAbFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFV
7dds92duN0oOduM/Ioz90Z/NunXjAsVXt12z3Z243Sg524z8ijP3Rn826deM AAsVjrcahfMs
0NlaGOC4kVDJckMSpeMkjyjjueDn3xkVsVytz4WtryZ31Dw3oOpuJJTHPeAM 4RpGcLzE2Mbz
xn1oA6DT7p7y082SJYnEkkbKr7gCjlTg4Gfu+lVT4k0cNdK19GjWpYShwVII 3ZxkfN9xumel
OsdMRbRlvba2eZ5JXfA3jDu5AyQCcCRh07n1qwmmWEf2nZY2y/as/aNsSjzs 5zv4+bqevqap
cvUl83Qov4p0SO0W5a/jEbErjaxYEbs5XG4fdbkjtVzUtUtNJt1mu3kAdwka RRPLJI2CcIiA
sxwCSADgKT0BNI+j6ZJZR2T6daNaRtuSAwKUU88hcYB5P5mqniTRn1zTo7aI 2KSJKJVku7Vp
vLIBAaPZJGySDPDq2RzjnkEuXoEebqA8UaSbyG1M06yS7Bl7SVUjZwCkcjld sch3LhHKt86j
GWGa8fjXQZLpLdbqcNLtMMjWcyxzBpY4laOQptkUvLGNykjDg5xzWXD8Pba3 1uG/EtpdFXgl
kub+wS4vmeFERStwxwoIiUn5Ccs5DKSCtM+CNUF/pNkb+CTTNM09obGZbba8 Lxz2kkAmzIfN
z9nG7aI87W+7uGJKOou/FGk2c81u808txDL5LwW1pLPIGCI5OyNSxULLHlgN oLqCcnFRxeL9
Dnv/ALHDdySHfGnnpbym33SIrxjzwvlZYSJgbuS6gckCufuvh7NqF1LqOo3W jX+oSXEkuLvS
DLaqrxQRnETS5Dj7MmG39GcY5BGpD4NS2064sor3EcuoWV4p8hV2i2FsAm1N q/N9m/hCgb+F
wOQC4PF2jtbvcJJdvEHVI2Sxnb7QWBI8jCfvxtVmzHuG0bunNaljfW+o2cd1 ayeZC+QCVKkE
EhlZTgqwIIKkAggggEVyc3gWa50Gx0e6vNNu7TS3jOnR3WmmVAqRvEBcKZMS nY+cr5eGAbGP
lrpNE0tNF0eCwjEAWPcSLe3WCMFmLEJGvCrknA5OOpY5YgGhRRRQAUUUUAFF FFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABVe3XbPdnbjdKDnbjPyKM/dGfzbp14wLFV7dd s92duN0oOduM
/Ioz90Z/NunXjAALFFFFABVG8vLmK8gtbW3ileWN5CZZjGAFKDsrZ+/+lXqx 9a0r+05YhLYW
N/a+U8ctten5Gy0bA42MDgx9x6UASWM91b3Fvp1xawRr9nZkeKbdwhRcEbFA +8OnHHSp77Vr
HTZreK8uBE9wdseVJB5A5IGByy8n1rK0fQoLSeF7fRtM06yEbt5Fou3dIxjI Yp5aYI8scnng
elazaVpzvC7afaloWDRMYVzGQAAV44OFUcf3R6U1a+one2hAniLR5LtrZdQg MigNndhTnbjD
fdP3l4B71PpuqWerW7T2M3mxK20ttK84B7gdiD+NSJY2kd7JepawLdyLtecR gOw44LdSOB+Q
otLG00+IxWVrBbRltxSGMICemcDvwPypvltoJc19TLHi7R2t3uEku3iDqkbJ Yzt9oLAkeRhP
342qzZj3DaN3Tmo7zxroNjZi6lup2hETTSGCzmmMCKSCZVRCYsFHB3heUcdV bGGfhwstkY57
jTXKXCT29kNPb+zYyqSIf9FaUgFhM5O11BZUbGQ26PWPA+o23hfVbbQLixW4 vNKksprYWCxx
yczOqwhXRYfmnkGW38bSSSGLSUdY/iPSIreO4lvo4oJLie2EkgKqJIRIZQSR hQohlO44Hy9e
Rmm/jTRI4lZ3vlkeUQrbnTbkTsxV2BEPl+ZtIjkw23b8jDOQay9Q8CTakDYT arGuim4vLjyE
tSLjdcxzrIPNL7cA3Lkfu+gUHOCTJpPgZNNvrO8B0q3kt7sXDR6ZpS2kcgEM 0QBAZmLfvycl
iMKAFBLEgGwnijSZZbWKCaeeS5xtSC0lkMWWKfvQqnyfmVlPmbcFHB5VsSab 4h0zVrhoLOeR
nCGRC8EkazICAXiZlAlTlfmQsPmXn5hnL03wteaPqkl7YanB/pMrm7Se0L74 zczTqsZEi7GH
2iRSx3A4U7Rggx+FPA9t4WuA8C6aEit/s0L22mpDPImV5nlyTI/yLyuwEliV Py7QDrKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAqvbrtnuztxulBztxn5FGfuj P5t068YFiq9u
u2e7O3G6UHO3GfkUZ+6M/m3TrxgAFiiiigAooooAr2C7NOtl27cRKNu3bjgc Y2rj/vkfQdKL
+6+xadc3ezf5ETSbc43bQTjP4UWC7NOtl27cRKNu3bjgcY2rj/vkfQdKbqVs 95pV5axlQ80D
xqW6AlSBn86AMefV7u1vdQJtLNri1s47ieJblsiLMu0g+SM5KSDGeMdBnJ6K uLm8GQtqmo6r
BoGjQ6he25hM6yDMbHzN0gIhB3t5pDHPzBVHauj1Py9O0u91C3sY5bm3hknj RUG53CuwGQM5
JZv++j600ruwM5jUPFdvo1hpst/ql+1xeWwuPLhW3GBtBJG8DPXAUEsewNdH plxJJf3ERu5L
mH7PDNG0iqD85f8AuqP7o61yttYadrSwM+sR20tgxsrS80248lbmEpEMLuZ8 gPIqZDE7gOQT
iug8P38N9quuIGtTcWVytp+5nMrGJUDKXz/FueQHjqCMnbmuiajy6L+rmEOb m1f9WJ73xHZa
bqM9rdPho4oZFjhjklmkMhlACxohLcQsflLHCuSFC5J4Y1h9e0U38ibM3d1E imJozsjnkjXc
rfMrbUGQcc54HSqeqeF5rzxB/blpfxwXkSQC3EtuZI1aMXKkuA6lgVunAAK4 Kg5IyK0PD+lT
aNpP2S4uY7mdri4uJJY4jEpaWZ5SApZiAC+Op6VzG5qUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQAVXt12z3Z243Sg524z8ijP3Rn826deMCxVe3XbPdnb jdKDnbjPyKM/
dGfzbp14wACxRRRQAVRvLy5ivILW1t4pXljeQmWYxgBSg7K2fv8A6VerH1rS v7TliEthY39r
5Txy216fkbLRsDjYwODH3HpQBJYz3VvcW+nXFrBGv2dmR4pt3CFFwRsUD7w6 ccdKnvtWsdNm
t4ry4ET3B2x5UkHkDkgYHLLyfWszSvD8Nhdx+Ro2ladZojnybIDa0jNGQxUR qMjyxz14HpWo
2lac7wu2n2paFg0TGFcxkAAFeODhVHH90elNWvqJ3toQJ4i0eS7a2XUIDIoD Z3YU524w33T9
5eAe9T6bqlnq1u09jN5sSttLbSvOAe4HYg/jUiWNpHeyXqWsC3ci7XnEYDsO OC3UjgfkKLSx
tNPiMVlawW0ZbcUhjCAnpnA78D8qb5baCXNfUyx4u0drd7hJLt4g6pGyWM7f aCwJHkYT9+Nq
s2Y9w2jd05qO88a6DY2YupbqdoRE00hgs5pjAikgmVUQmLBRwd4XlHHVWxhn 4cLLZGOe401y
lwk9vZDT2/s2MqkiH/RWlIBYTOTtdQWVGxkNuj1jwPqNt4X1W20C4sVuLzSp LKa2FgsccnMz
qsIV0WH5p5Blt/G0kkhi0lHWP4j0iK3juJb6OKCS4nthJICqiSESGUEkYUKI ZTuOB8vXkZpv
400SOJWd75ZHlEK25025E7MVdgRD5fmbSI5MNt2/IwzkGsvUPAk2pA2E2qxr opuLy48hLUi4
3XMc6yDzS+3ANy5H7voFBzgkyaT4GTTb6zvAdKt5Le7Fw0emaUtpHIBDNEAQ GZi378nJYjCg
BQSxIBsJ4o0mWW1igmnnkucbUgtJZDFlin70Kp8n5lZT5m3BRweVbEmm+IdM 1a4aCznkZwhk
QvBJGsyAgF4mZQJU5X5kLD5l5+YZy9N8LXmj6pJe2Gpwf6TK5u0ntC++M3M0 6rGRIuxh9okU
sdwOFO0YIMfhTwPbeFrgPAumhIrf7NC9tpqQzyJleZ5ckyP8i8rsBJYlT8u0 A6yiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKr267Z7s7cbpQc7cZ+RRn7oz+bd OvGBYqvbrtnu
ztxulBztxn5FGfujP5t068YABYooooAKKKKACq9/dfYtOubvZv8AIiaTbnG7 aCcZ/CrFVdSt
nvNKvLWMqHmgeNS3QEqQM/nQBjz6vd2t7qBNpZtcWtnHcTxLctkRZl2kHyRn JSQYzxjoM5PR
Vxc3gyFtU1HVYNA0aHUL23MJnWQZjY+ZukBEIO9vNIY5+YKo7V0ep+Xp2l3u oW9jHLc28Mk8
aKg3O4V2AyBnJLN/30fWmld2BnMah4rt9GsNNlv9Uv2uLy2Fx5cK24wNoJI3 gZ64Cglj2Bro
9MuJJL+4iN3Jcw/Z4Zo2kVQfnL/3VH90da5W2sNO1pYGfWI7aWwY2Vpeabce StzCUiGF3M+Q
HkVMhidwHIJxXQeH7+G+1XXEDWpuLK5W0/czmVjEqBlL5/i3PIDx1BGTtzXR NR5dF/VzCHNz
av8Aqwl7rmqR+IZ9M07SILyO1tIbqd2vPKkYSPKoWNChVm/cn7zoMkAkDJqx aeKdGvtOF/b3
m+1MtvDv8px884iMQwRn5hPF9N3OMHFe90PVJPEM+p6dq8FnHdWkNrOjWfmy KI3lYNG5cKrf
vj95HGQCQRkVnt4Ie22WelX8FppBu7O6ktpbZpZAbbyQqpJ5g2qVt4x8ysc7 jk5AHMbkk3jr
T7rTre40h5Hee4sxGLu0mgEsM1xFEzx71XeAsoOVyAWTPUA6Gk+KdP1YWKQt JLPdW8cxNtBN
JBHvjEgVpfLCqdpBAfaxDKdo3AVzeieCNUl0Hw+mt38Ed1plpaRRQwW23ygk tvM6SN5jCRs2
yKGXaBljg5AGhpHgu80bS20q21rZYz2iQ3TpblLnzFtktxJDIHxHxFGwBVyD nnkYALF34602
3ay8uC+k8+7FvLEbG4SeIGKWRXEBj8xlJiKghcfeOfkIrQPinRlvJraS88ry t4aeWJ0gJQEu
qzMBGzKFfcoYkbHyBtbHN2Hw9m06/fUrS60azvFeF7dLHSDBbqyJOhMkYlJc lblxkMuCq9QC
DI/w1sJrzUTJ9hW3vftRaaLToxfZuA4cNcNnKjzX2gIpACAkgMGAK+p/EkWe sPbwW8Edqfs0
ay6wZtNVHkW6ZizSxk7cW6hcLyzEZ7DUtPGBS9lTVBaJF9itbiAac0l4Zmme 44jKoGlGyFX+
VOBvPIGRXn8I69c63Hrcuu6b/aELwmLbpbiILGlymGXzyST9qY5DDG0cHNGq eBZtcuPt2qXm
m3d4qQBUl00vas0RuRl4WkJYbbk4G8YZA2SPloA1H8a6Ckqx/ap2ZohKdlnM wQFnRVYhPkkL
xugjbDlxtA3cVJJ4v0OJIXa7kKSJvdkt5WFuoYqTPhf3ADK4Jk24KODjY2Mu 38CJbRlI7uCJ
W+wkx29ksMam3u5LkhEUgKrGQqByQBklySTTufhpbXF3JcPJptw87zCVr7S0 uWjR7iaceTub
Ebjz2BZg4bah28EEA1NR8d6TZ6dqtxB5801hFcsElt5YY55IA5eNJWTYzZjf hSxwrHBCmugs
b2LULOO6hSdI3zgTwPC4wSOUcBh07jnr0rm77wPDqOjR6XcX0gg+2311I0cY DMt0typQZJAK
i5+9g52dOeOksUvI7ONb+eCe6Gd8kEJiRuTjClmI4x/EfXjpQBYooooAKKKK ACiiigAooooA
q6hdPZ2nmxxLK5kjjVWfaCXcKMnBx970qi1xqFizTTWVoI57iNXMdySwLFIw QPKGex5OffGB
VzU7ea5stluIzKssUiiRiqnZIrYJAOPu+lYNt4WtrOZH0/w3oOmOZIjJPZgK 5RZFcrxEuc7B
xn0oA2NduJrXSzJbyGKRpoYw4AJUPKqnGQRnDHtWVpb6rqF9qNvJqF/braS+ WrtHERJ155iG
ONp78MK0tU0hZ9OMdjb20c6vE6ZGwEI6NtyASARGo6HoPSsm80nWbxpXNjYx vKyu5TVJtpK4
AJQxFDwoHKnpWqdoOyV/kZS+PW9vmammyXUesX1lcXklykUMMiNIiKQWMgP3 QOPlFUpvE03/
AAlg0OCHTVcOoK3uoGC4mUqHZ4IRG3moFJGdy/MjjjbmrWh6dfWdxNNerAmb eC3RYpjJxHv5
JKLyd3p2pup6PqWq3qRz6jaLpKXEFwLdLNhPuidZFHmmQrjegz+7+7kcH5qi W5cNinonjvSd
W07RppfPtLvVYg8FpLbyhnbEZcISg8xV81TvA27QzfdViLlz4u0eyNytzJdw vbuEKPYzhpSZ
FjHlLszKN7oMx7h86/3hmvonhebSbjS2e/jng0uym0+1RbcoxhYwbN7byGcC DkgKG3cKuOcO
3+Gnk6pBd/brEeR5Y82LTtlzc7LmCffcS+YfNkP2fBbavMjNjtUlHSHxdo4t 0lEl27u7J9mj
sZ3uFKgE7oAhkUAMhyygYdD/ABrkt/F+h3b2qwXckiXSRNHMLeXyh5iho1eT bsR2DJhGIY70
4+YZx9X0LU9M1a58QaJ5l1qFxcOPJFtHIscTw26NkPPFk7rRCGD8byNp+8Ke hfDVNNbS57j+
ypLiCK0NxK+nLNOJYIo48Qzt9yM+UvBQty5BUkFQDY03xPfveahHrOn2Njb2 V3FYtLBeyXBe
eUQmMBfJX5T56jcTwe2OauXni7R7G/ewkku5btHZGhtbGe4YFUidsiNG4Czx c9PnA65AjvdE
8vS/FP8Ao/8Aaf8Aa2+X7Dv8nzP9Gjh8rzM8bvL+9xjd7ZrLHhrWrDUtDOl3 lor21lere3t1
amRZZ5pYJGYRrKhUu6yPwSq8jHIoA3B4p0ZryG2jvPN83YFniid4AXAKK0yg xqzBk2qWBO9M
A7lzsVw9j8NbDTdTtJ7b7DJDB9mPm3enRzXgMEccaBJzwikRJkbCclypUkFe 4oAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACufn1a4e5sv9GtF8 29lt7XzJ23SS
Isuc4ibb8sbnOR0xnnB6CuL1Pwda6lfWk2o6FpV9JBdzSRSzfMZEfzSI5Mwt 8g8wtjONwU9e
CAdVp9095aebJEsTiSSNlV9wBRypwcDP3fSuXl1LVmu7YR3N2Uur+e2/cxx7 YgkpUdY2J+UE
8n+E10FjpiLaMt7bWzzPJK74G8Yd3IGSATgSMOnc+tZT6VqyLJAlpYzQi7lu YpDfzQOC7Mf4
E44cjqa1p26mdS+hZvk1DTUt5xq9xMGuoImjkiiAKvIqnogPQnvTfFnif/hF rWwuWs/tEM93
5U7ebs8iFYpJZJcYO7akTHaOT0HOAaNtoOrrLtkitEie5hnkb7Y8rKI5PMwM xKWJyRlmJ6c8
Vvajpn2++0m587y/7Pu2udu3PmZhli25zx/rc55+7jvkQ23Fcy1HHd22Ofg8 e28niO+06eGC
1sbaURpfTXBUSgJcmU7dnybHtJVO4gEKWB+6Gkg8cWcms6hDIl3FaQW9s0KS adcJcSyyNPuV
YmTe4Cwg/KpwA5JwDivqXw5sdQliiS6kttPjso7FbeNcssSQXcOA7E87bvOS D/q+c7uJG8J6
xcawdaudasW1OLyPsrRac6Qp5a3CHehmLPlbqTo64IU88gyWV9D8fC9uL9tQ TyrePi2SK0mM
8hN1eRBfKwXLeXbKxULkYckAD5dDUfE9+s+knRdPsb611KVreOW4vZLd45VS V2V08liuBCyk
H5g3ylRgmsdvhp56vLe31je3RlFwEudO32xkMt3I26IyZZcXjADcCCitk9K6 C08LpaWuhQxy
wRLpd3JdFLe1WGNy8UyFURcBFBmJH3jheSxJagCxd+KdGsdON/cXmy1EtxDv 8pz88AlMowBn
5RBL9dvGcjMY8XaObd5TJdo6OqfZpLGdLhiwJG2AoJGBCucqpGEc/wADYw9c 8LXF+njK6gs8
XV5p81pZJ5o/fPJboHkyThd5jhj2tjH2fcD+8NSal4Fm1t2vdXvNNvNQDwmN ZNNLWhWNZlUP
A0hLn/SZTneOQhx8p3AHWWN9b6jZx3VrJ5kL5AJUqQQSGVlOCrAggqQCCCCA RVis/RNLTRdH
gsIxAFj3Ei3t1gjBZixCRrwq5JwOTjqWOWOhQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUU
UUAFFFFABRRRQAVjrcahfMs0NlaGOC4kVDJckMSpeMkjyjjueDn3xkVsVytz 4WtryZ31Dw3o
OpuJJTHPeAM4RpGcLzE2Mbzxn1oA6DT7p7y082SJYnEkkbKr7gCjlTg4Gfu+ lVT4k0cNdK19
GjWpYShwVII3ZxkfN9xumelOsdMRbRlvba2eZ5JXfA3jDu5AyQCcCRh07n1q wmmWEf2nZY2y
/as/aNsSjzs5zv4+bqevqapcvUl83Qov4p0SO0W5a/jEbErjaxYEbs5XG4fd bkjtVzUtUtNJ
t1mu3kAdwkaRRPLJI2CcIiAsxwCSADgKT0BNI+j6ZJZR2T6daNaRtuSAwKUU 88hcYB5P5mqn
iTRn1zTo7aI2KSJKJVku7VpvLIBAaPZJGySDPDq2RzjnkEuXoEebqA8UaSby G1M06yS7Bl7S
VUjZwCkcjldsch3LhHKt86jGWGa8fjXQZLpLdbqcNLtMMjWcyxzBpY4laOQp tkUvLGNykjDg
5xzWXD8Pba31uG/EtpdFXglkub+wS4vmeFERStwxwoIiUn5Ccs5DKSCtM+CN UF/pNkb+CTTN
M09obGZbba8Lxz2kkAmzIfNz9nG7aI87W+7uGJKOou/FGk2c81u808txDL5L wW1pLPIGCI5O
yNSxULLHlgNoLqCcnFRxeL9Dnv8A7HDdySHfGnnpbym33SIrxjzwvlZYSJgb uS6gckCufuvh
7NqF1LqOo3WjX+oSXEkuLvSDLaqrxQRnETS5Dj7MmG39GcY5BGpD4NS2064s or3EcuoWV4p8
hV2i2FsAm1Nq/N9m/hCgb+FwOQC4PF2jtbvcJJdvEHVI2Sxnb7QWBI8jCfvx tVmzHuG0bunN
aljfW+o2cd1ayeZC+QCVKkEEhlZTgqwIIKkAggggEVyc3gWa50Gx0e6vNNu7 TS3jOnR3WmmV
AqRvEBcKZMSnY+cr5eGAbGPlrpNE0tNF0eCwjEAWPcSLe3WCMFmLEJGvCrkn A5OOpY5YgGhR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFUb y8uYryC1tbeK
V5Y3kJlmMYAUoOytn7/6VerH1rSv7TliEthY39r5Txy216fkbLRsDjYwODH3 HpQBJYz3VvcW
+nXFrBGv2dmR4pt3CFFwRsUD7w6ccdKnvtWsdNmt4ry4ET3B2x5UkHkDkgYH LLyfWsrR9Cgt
J4Xt9G0zTrIRu3kWi7d0jGMhinlpgjyxyeeB6VrNpWnO8Ltp9qWhYNExhXMZ AABXjg4VRx/d
HpTVr6id7aECeItHku2tl1CAyKA2d2FOduMN90/eXgHvU+m6pZ6tbtPYzebE rbS20rzgHuB2
IP41IljaR3sl6lrAt3Iu15xGA7Djgt1I4H5Ci0sbTT4jFZWsFtGW3FIYwgJ6 ZwO/A/Km+W2g
lzX1MseLtHa3e4SS7eIOqRsljO32gsCR5GE/fjarNmPcNo3dOajvPGug2NmL qW6naERNNIYL
OaYwIpIJlVEJiwUcHeF5Rx1VsYZ+HCy2RjnuNNcpcJPb2Q09v7NjKpIh/wBF aUgFhM5O11BZ
UbGQ26PWPA+o23hfVbbQLixW4vNKksprYWCxxyczOqwhXRYfmnkGW38bSSSG LSUdY/iPSIre
O4lvo4oJLie2EkgKqJIRIZQSRhQohlO44Hy9eRmm/jTRI4lZ3vlkeUQrbnTb kTsxV2BEPl+Z
tIjkw23b8jDOQay9Q8CTakDYTarGuim4vLjyEtSLjdcxzrIPNL7cA3Lkfu+g UHOCTJpPgZNN
vrO8B0q3kt7sXDR6ZpS2kcgEM0QBAZmLfvycliMKAFBLEgGwnijSZZbWKCae eS5xtSC0lkMW
WKfvQqnyfmVlPmbcFHB5VsSab4h0zVrhoLOeRnCGRC8EkazICAXiZlAlTlfm QsPmXn5hnL03
wteaPqkl7YanB/pMrm7Se0L74zczTqsZEi7GH2iRSx3A4U7Rggx+FPA9t4Wu A8C6aEit/s0L
22mpDPImV5nlyTI/yLyuwEliVPy7QDrKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiii
gAooooAKKKKACiiigCvYLs062XbtxEo27duOBxjauP8AvkfQdKL+6+xadc3e zf5ETSbc43bQ
TjP4UWC7NOtl27cRKNu3bjgcY2rj/vkfQdKbqVs95pV5axlQ80DxqW6AlSBn 86AMefV7u1vd
QJtLNri1s47ieJblsiLMu0g+SM5KSDGeMdBnJ6KuLm8GQtqmo6rBoGjQ6he2 5hM6yDMbHzN0
gIhB3t5pDHPzBVHauj1Py9O0u91C3sY5bm3hknjRUG53CuwGQM5JZv8Avo+t NK7sDOY1DxXb
6NYabLf6pftcXlsLjy4VtxgbQSRvAz1wFBLHsDXR6ZcSSX9xEbuS5h+zwzRt Iqg/OX/uqP7o
61yttYadrSwM+sR20tgxsrS80248lbmEpEMLuZ8gPIqZDE7gOQTiug8P38N9 quuIGtTcWVyt
p+5nMrGJUDKXz/FueQHjqCMnbmuiajy6L+rmEObm1f8AVie98R2Wm6jPa3T4 aOKGRY4Y5JZp
DIZQAsaIS3ELH5SxwrkhQuSeGNYfXtFN/ImzN3dRIpiaM7I55I13K3zK21Bk HHOeB0qnqnhe
a88Qf25aX8cF5EkAtxLbmSNWjFypLgOpYFbpwACuCoOSMitDw/pU2jaT9kuL mO5na4uLiSWO
IxKWlmeUgKWYgAvjqelcxualFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAF
FFFABRRRQAVRvLy5ivILW1t4pXljeQmWYxgBSg7K2fv/AKVerH1rSv7TliEt hY39r5Txy216
fkbLRsDjYwODH3HpQBJYz3VvcW+nXFrBGv2dmR4pt3CFFwRsUD7w6ccdKnvt WsdNmt4ry4ET
3B2x5UkHkDkgYHLLyfWszSvD8Nhdx+Ro2ladZojnybIDa0jNGQxURqMjyxz1 4HpWo2lac7wu
2n2paFg0TGFcxkAAFeODhVHH90elNWvqJ3toQJ4i0eS7a2XUIDIoDZ3YU524 w33T95eAe9T6
bqlnq1u09jN5sSttLbSvOAe4HYg/jUiWNpHeyXqWsC3ci7XnEYDsOOC3Ujgf kKLSxtNPiMVl
awW0ZbcUhjCAnpnA78D8qb5baCXNfUyx4u0drd7hJLt4g6pGyWM7faCwJHkY T9+Nqs2Y9w2j
d05qO88a6DY2YupbqdoRE00hgs5pjAikgmVUQmLBRwd4XlHHVWxhn4cLLZGO e401ylwk9vZD
T2/s2MqkiH/RWlIBYTOTtdQWVGxkNuj1jwPqNt4X1W20C4sVuLzSpLKa2Fgs ccnMzqsIV0WH
5p5Blt/G0kkhi0lHWP4j0iK3juJb6OKCS4nthJICqiSESGUEkYUKIZTuOB8v XkZpv400SOJW
d75ZHlEK25025E7MVdgRD5fmbSI5MNt2/IwzkGsvUPAk2pA2E2qxropuLy48 hLUi43XMc6yD
zS+3ANy5H7voFBzgkyaT4GTTb6zvAdKt5Le7Fw0emaUtpHIBDNEAQGZi378n JYjCgBQSxIBs
J4o0mWW1igmnnkucbUgtJZDFlin70Kp8n5lZT5m3BRweVbEmm+IdM1a4aCzn kZwhkQvBJGsy
AgF4mZQJU5X5kLD5l5+YZy9N8LXmj6pJe2Gpwf6TK5u0ntC++M3M06rGRIux h9okUsdwOFO0
YIMfhTwPbeFrgPAumhIrf7NC9tpqQzyJleZ5ckyP8i8rsBJYlT8u0A6yiiig AooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKr3919i065u9m/yImk 25xu2gnGfwqx
VXUrZ7zSry1jKh5oHjUt0BKkDP50AY8+r3dre6gTaWbXFrZx3E8S3LZEWZdp B8kZyUkGM8Y6
DOT0VcXN4MhbVNR1WDQNGh1C9tzCZ1kGY2PmbpARCDvbzSGOfmCqO1dHqfl6 dpd7qFvYxy3N
vDJPGioNzuFdgMgZySzf99H1ppXdgZzGoeK7fRrDTZb/AFS/a4vLYXHlwrbj A2gkjeBnrgKC
WPYGuj0y4kkv7iI3clzD9nhmjaRVB+cv/dUf3R1rlbaw07WlgZ9YjtpbBjZW l5ptx5K3MJSI
YXcz5AeRUyGJ3AcgnFdB4fv4b7VdcQNam4srlbT9zOZWMSoGUvn+Lc8gPHUE ZO3NdE1Hl0X9
XMIc3Nq/6sJe65qkfiGfTNO0iC8jtbSG6ndrzypGEjyqFjQoVZv3J+86DJAJ AyasWninRr7T
hf295vtTLbw7/KcfPOIjEMEZ+YTxfTdzjBxXvdD1STxDPqenavBZx3VpDazo 1n5siiN5WDRu
XCq374/eRxkAkEZFZ7eCHttlnpV/BaaQbuzupLaW2aWQG28kKqSeYNqlbeMf MrHO45OQBzG5
JN460+6063uNIeR3nuLMRi7tJoBLDNcRRM8e9V3gLKDlcgFkz1AOhpPinT9W FikLSSz3VvHM
TbQTSQR74xIFaXywqnaQQH2sQynaNwFc3ongjVJdB8Pprd/BHdaZaWkUUMFt t8oJLbzOkjeY
wkbNsihl2gZY4OQBoaR4LvNG0ttKtta2WM9okN06W5S58xbZLcSQyB8R8RRs AVcg555GACxd
+OtNt2svLgvpPPuxbyxGxuEniBilkVxAY/MZSYioIXH3jn5CK0D4p0Zbya2k vPK8reGnlidI
CUBLqszARsyhX3KGJGx8gbWxzdh8PZtOv31K0utGs7xXhe3Sx0gwW6siToTJ GJSXJW5cZDLg
qvUAgyP8NbCa81EyfYVt737UWmi06MX2bgOHDXDZyo819oCKQAgJIDBgCvqf xJFnrD28FvBH
an7NGsusGbTVR5FumYs0sZO3FuoXC8sxGew1LTxgUvZU1QWiRfYrW4gGnNJe GZpnuOIyqBpR
shV/lTgbzyBkV5/COvXOtx63Lrum/wBoQvCYtuluIgsaXKYZfPJJP2pjkMMb Rwc0ap4Fm1y4
+3apeabd3ipAFSXTS9qzRG5GXhaQlhtuTgbxhkDZI+WgDUfxroKSrH9qnZmi Ep2WczBAWdFV
iE+SQvG6CNsOXG0DdxUkni/Q4khdruQpIm92S3lYW6hipM+F/cAMrgmTbgo4 ONjYy7fwIltG
Uju4Ilb7CTHb2Swxqbe7kuSERSAqsZCoHJAGSXJJNO5+GltcXclw8mm3DzvM JWvtLS5aNHuJ
px5O5sRuPPYFmDhtqHbwQQDU1Hx3pNnp2q3EHnzTWEVywSW3lhjnkgDl40lZ NjNmN+FLHCsc
EKa6CxvYtQs47qFJ0jfOBPA8LjBI5RwGHTuOevSubvvA8Oo6NHpdxfSCD7bf XUjRxgMy3S3K
lBkkAqLn72DnZ0546SxS8js41v54J7oZ3yQQmJG5OMKWYjjH8R9eOlAFiiii gAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAoo
ooAKKKKACiiigAooooA//9k=
--------------020806090305010707020503
Content-Type: image/jpeg;
name="moz-screenshot-2.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part2.04040808.05050207@ca.ibm.com>
Content-Disposition: inline;
filename="moz-screenshot-2.jpg"

/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRof
Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwL DBgNDRgyIRwh
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjL/wAAR
CACRAL0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m7uUs7Oe6kDFIY2kYL1I AycflWbNqk9r
9ovJtKvlgSIFvmiO0LuJOPNx0PYZ478YuatBJc6NfW8K7pZbeREXOMkqQBzX N3elpNJfPb2G
uG+mik/dy6uzxKZFZQTEZygXOcDbgY4HFAHS6rdvYaRe3iKGe3geVVboSqk4 P5Vh2+r6pc63
PpSXNmJ4YxKzG0baQQp4/e5/jHb1rU1fTTdaPfwwGVp5reVEVpmwWZXAGCcY y59un90Yx7o6
tM8ktvpesWsrwLCTHLaFTt3YJy5PVj0IrWPwu25lL4tb2+Zq291qMWtRWN7J ayrLbyTBoYmQ
qVZBjljnO/8ASobrxXptj4lbRLsyW7pZfbWu5tqW4XL/ACFyfv7Y5Hxj7qMc /KcV9Hg1J9Ut
572zuIVgtpozJO6HeXkRgAFkc4AUjk9hRqPhSHV9evbq/Eb2k1vZoijBfdDJ Ozg5BGx0m8th
/ErSKcA8w9k3uVHqGkeN9K1TSZNTn8zSreJA039pvHC0J86SHa67yUO+Jh82 AcgAkhgKdz8R
NHtfCFzr8t1Ypj7b9iga9Rftv2eR0Hlt/Fv2qeAcbx1759v4L1ix1p9Xgexm miu2uYIHmdFk
3TX5Ks4Q7MJeqchWyyEcAhqryeDvEiaLrcEMelPda5aXNtcK95IqWvmT3Uqs rCImTi6wQQmN
nfdxJZ1ll4p02aKI3t1aWE9xe3NnbQzXKhp2hnaH5AcFiSoOBnG4DnvGvipV 1y80250m+tI7
OL7RcX08lusEcJ8zbISJSwU+U/8ADkfxBRXL3Pw9vpbi9ZzBcR6h9oimQ6lc 26RRvdXMylki
x9oytzgoxQDYQGw5I7D+xvN8Q6peXSQTWN9p9vZmFxu3bHnLhlIwVImUd885 HqAWNQ13R9Iz
/aWq2Nljbn7TcJHjdu2/eI67Hx67W9DRLrujw/YfN1Wxj/tDH2LdcIPtOcY8 vn587l6Z+8PW
uHttJ1i3svDWp29rPfanLqAlcalK6PFbrZzxxLM4RmRgrAuMEedLJjG+i4+H t9M87yGCf+0Y
pI7uP+0rm3jg8y4nmb5Ytv2lR9pK7XMeRH1XedoB6RRRRQAUUUUAFFFFABRR RQAUUUUAFFFF
ABVdGzqMy7ukUZ27unL843e390dOpxhbFV0bOozLu6RRnbu6cvzjd7f3R06n GFALFV7xtsCn
dt/exjO7HV1GPvD+fPo3Q2Kr3jbYFO7b+9jGd2OrqMfeH8+fRuhALFedajc3 Yu7llvLtYxFf
uxWecbZElxHgg7FAH8J649jXerZxLtw8/wAuMZnc9Nvvz90fXJ/vHPNzaUlv qF4JPDH9oQvI
rwyr5GcbFB3F3DE7gxJOc561jWoSqpKLtYuFWNPWSuWdQ1e+tba+uINR0mc2 sbymBY2L4Xsc
ScdhnFaetasmiaYb2S2nuf3sUKQwbd7vJIsagbmVfvOOpFYt/wD2jd6Vf2cO gamj3cTR75ry
J1UkEA4MpwOewq94u0ebXfDslhBBaXDm4tpTBdsVilWOdJGRiFbhlQj7p69K 6ppWRhB6sI/F
mlJZTXOqXEejmC4+yzR6jNHGY5SgkCbgxQkoysNrHg+oIGhJq2mw6pDpcuoW iahMm+K0aZRK
688qmckfK3IHY+lcePCeswWQS2jtILd7h5f7GstSnsoLfKRqvlzwoHIBSRym xVLTsTkoC1Oz
8A6xHo50ZbuDT7WfSls7+aG5e4F3ILQW4byXRRHtIBDI4LBAGByCmZodRf8A jDTLfw9c65px
/tqxtN5uH0yeGXylVC7Ekuo4GOAS3zDitC31eB7OSe9X+zpIYvPuILuaLfbx 5YB3KOyhTsYg
5xwe4IHLp4QvpfD3iW3eKC2vtV09rKPfqlzfY+SQKWlmGQuZT8qpxyctuwuh 4h0b+1PEOmxI
k6wzxOuoOoxFNbxujiJzg7mLkKFbgxPcjq1AGxa67o99qM+nWeq2NxfQbvOt obhHkj2na25Q
cjBIBz0NSabq2m6zbtcaXqFpfQK5RpLWZZVDYBwSpIzgg49xXBr4W1jxFo91 pd5FBp1iuoat
JDcF3eaTzmuolzEUUKuLguGDnIVePmyvSeF9CuNLuL28u4I4Z7lIoto1O5v2 KoXIzLPggZkO
FCjHJy27CgHSUUUUAFFFFABRRRQAUUUUAFFFFABVdGzqMy7ukUZ27unL843e 390dOpxhbFV0
bOozLu6RRnbu6cvzjd7f3R06nGFALFZdzfyyzTW9vY3cpglQPJGyBc/K+BmR T0IHpzzkZB1K
5nUNK+1X10biy1d0M/mRPYai1sCDHGp3bJkJ5Q9QcdupoA3LK9F4JgYJYHhk 8t0l25B2q38J
I6MO9SLd2z3T2q3ETXCDc0QcF1HHJHUdR+dZukWDRi4MsN3Avmr5SzXJdyqx xLlmDtuOY+rE
k85+8cyL4d0oX73zWgluHUIzTSNICAFAOGJGfkXnGeOtNW6id+haXUrB7V7p b22a3Q7WlEql
FPHBOcDqPzqSS7torNryS4iS1SMytOzgIEAyWLdMY5zWVH4S0OKxezSwHlOw YkyuXBG3GHJ3
AfIvAPanaxo0dz4a/su2s0nSIQ+TBJey2wHlurKfOQM6ldoIIBOQPXNOXL0F Hm+0Sr4l0Fks
nXW9NKX7lLNhdJi4YMFIj5+chiBgZ5OKJ/Eug2t/LYXGt6bDeRIXkt5LpFkR Qm8kqTkAL82f
TnpXH3vgbWdQPmajdx6lPeWS2d20l/ParGokmYZS3CLcgLNtwwiz5efl8w7Y 9e8Laxdpa6B5
UH9mXOoahJ/aETu8kX2m3vD88OwKFVp9u7zOSF4G7Ako7y81bTdOSd77ULS1 SBEeZp5lQRq7
FULZPAZgQCepBAqu/iXQY7i0t31vTVnvUR7WNrpA06ucIUGcsGPAIzntXJ6n 4V1/W9YfV72C
xt5ovs3k2tpq06eb5a3StmdIkePi6B+VWzsIOA2RJH4IvYtE8Q2cTWkT6po5 s418+WQJMz3T
sXd8u4zcrlzyxDHavC0AdY+u6PHeXVnJqtil1aRGe5ha4QPDGACXdc5VcEHJ 45FWLG/s9Ts4
7ywu4Lu1kzsmgkEiNgkHDDg4II/CuTu/DGq3Gj3+iYtPsbXrahBcreSRSyOb sXXlMFTMQyWT
zFdiMBguflGx4X0aXR7K5E8UcU91cGeRFvJrsg7EQbppjuc4QdlAGFwcbmAN yiiigAooooAK
KKKACiiigAooooAKro2dRmXd0ijO3d05fnG72/ujp1OMLYqujZ1GZd3SKM7d 3Tl+cbvb+6On
U4woBYooooAKq3t6LMQgQSzvNJ5aJFtyTtZv4iB0U96tVl63bSXMdqEgnmRZ W8xbeXy5ArRS
JlW3KQcsOQQR1FAEdhq4kaKI20+2a4liWbzI3UOpcsh2yMQV2Mp9CuMDoLup XEtrZ+ZCUEjS
xRgupYDe6rnAIz971rltA8MtpXlW0dvqvlvez3Mst1elwqv55AUec5Vh5oBZ cFiNx5rZ1zMM
dpbwRNNcXl2ixLJcsiBk3z8nD4H7thwvoOABioq7RMtiA69jVhph1az+1bxH gWEuwOVLBC+/
aGwCduc+1a2mXMt3ZeZNsMglkjJRSAdrsucEnHT1rkdN8OJcamni60O6K+jS ++ytaRPOSY8h
FlY/KCSvpyOoFdN4dkS48PWV3GjIt3H9r2M24oZT5hXOBkAsR07VpUUUtDOD k3qU7LxZBd3T
JJp19a2n2uSyjvp/K8mSZJWi2ja5ZcupCl1UE4GdzKDoXGu6PaWcd5c6rYw2 ssXnxzSXCKjx
5UbwxOCuXQZ6fOvqK5+y8Paw0baXfJYx6Yuqyaks8Fw7zS/6W1zGhQxqqfMV 3Hc/CkAfMGXn
9R8MeJLPT9Dijs7G4j0WK1sbYxXMhe5xeWTCSRfK/dLttyzYL7cnqBk4mx2E vi6w+36bFaSQ
XtpfxSSR3cFzGUys8EOASQrfNP2OfkwAzECrjeJdBVL121vTQlg4S8Y3SYt2 LFQJOfkJYEYO
ORiuTuPBesX2tJq872MM0t2tzPAkzuse2awIVXKDflLJjkquGcDkAtVyHQfE MHhWy0Nfsgi0
1IYI2h1GaBr+JEKfO6Rh7c5Eb/IXztKE4JJANyHxRo8+uR6RHfQG6mtIry2/ epi5jfzMGLnL
4ERJwMAFTnniSPxLoM2lzapFremvp8L7JbtbpDEjccM+cA/MvBPcetcfp3gX VbfSdT0+aS0R
NYsrizuX+0yTNahprqRGVnUGc/6UA24ofkzls8WLXwjqltdRavHbWiahb3Ec iW8+r3V2JlWK
ePDXEqkoB9pZgqxnlTknf8gBc03x6urvImmaHfals3v5ljNbtGYxcTQowaSR M7vIZuAQARya
1LLxTps0URvbq0sJ7i9ubO2hmuVDTtDO0PyA4LElQcDONwHPfk7DwbrFlrDa tc6D4c1K6fdJ
H9pu3BtJDd3Nx+7c27E8ToN2FOU6dKLn4e30txes5guI9Q+0RTIdSubdIo3u rmZSyRY+0ZW5
wUYoBsIDYckAHaDxLoLXD2663ppnS4W1eMXSblmYkLGRnIclWAXqdp9KkfXd HjvLqzk1WxS6
tIjPcwtcIHhjABLuucquCDk8ciuTvfBWpXOnXtuk9oHnstbt1JdsBry4WWIn 5egUYb0PTPWq
eofD2+uotWtozAyz/wBoS21zNqVywElyswA+zf6qPb55BcbyQpO0F8qAdRce N/Ddva2l5/bN
jLY3N2bP7ZFdRtDFIImkw77sLwmPXLLxzXQVyer+HdSm8WJr9ibSR7dLYw28 8rRiRkW7Rwzh
W2jbdBgQGyUIIGc11lABRRRQBDd3KWdnPdSBikMbSMF6kAZOPyrNm1Se1+0X k2lXywJEC3zR
HaF3EnHm46HsM8d+MXNWgkudGvreFd0stvIiLnGSVIA5rnbzSPNF7PBpuvfa p45Qqy6szQhn
Vh/qjOUA+bgbcDjAGBQB0eq3b2GkXt4ihnt4HlVW6EqpOD+VYdvq+qXOtz6U lzZieGMSsxtG
2kEKeP3uf4x29a1NX003Wj38MBlaea3lRFaZsFmVwBgnGMufbp/dGMe6OrTP JLb6XrFrK8Cw
kxy2hU7d2CcuT1Y9CK1j8LtuZS+LW9vmatvdajFrUVjeyWsqy28kwaGJkKlW QY5Y5zv/AEpu
oa8bTUTYWmlX2p3SRLNMloYV8pHLBCTLIgO4o/3c42nOMjNPR4NSfVLee9s7 iFYLaaMyTuh3
l5EYABZHOAFI5PYVH4s0O817bbwaZpT4iZYNUuJiLmwkbgyQqIj8y4VgRIhJ UcjANQ9k3uVH
qXLLxfoN6l2f7TtIHs7ia3uI550V4miaQEsN3AKwyOM/wqTxg4lv9Q8OXkl3 peo3mlTvaxfa
Lq0uJY2MMYAO90Y/KoBByRjkVjR+FrxrzT4bmKxmsLDW59VjkdyzyeaLl8GM phWSSZMHcc7d
3ynC1j+JfA+v65c3I8+CRX+2bLmbUpwNsttPFGn2UIYk2eail1O4hCx5cip2 LOqTUvCVxpd1
qiXuiS6eMwXF2JYmiG4IpR3zjkCMYJ5AUelSWes+GLOy0+Gx1PSILW8dksUg niVJ23YYRAHD
HccEL3PrWL4l0m9tfEB8UwLHOLNLUxWoSVmlZRdxsD5UbsBi7VgVVvuEEAfM Ofs/BGqarZyX
l1aRodUSeO4tpNSurdYI3urmVWKRhTOCtx/q5PKI24O0swV3YWO0XxUq65ea bc6TfWkdnF9o
uL6eS3WCOE+ZtkJEpYKfKf8AhyP4gorQ1DXdH0jP9parY2WNuftNwkeN27b9 4jrsfHrtb0NV
/wCxvN8Q6peXSQTWN9p9vZmFxu3bHnLhlIwVImUd885Hrx9tpOsW9l4a1O3t Z77U5dQErjUp
XR4rdbOeOJZnCMyMFYFxgjzpZMY30gO4l13R4fsPm6rYx/2hj7FuuEH2nOMe Xz8+dy9M/eHr
WhXm9x8Pb6Z53kME/wDaMUkd3H/aVzbxweZcTzN8sW37So+0ldrmPIj6rvO3 0igAooooAKKK
KACiiigAooooAKKKKACiiigArHv9XEbSxC2n2w3EUTTeZGil2KFUG6RSS29V HqWxg9DsVxfi
bQP7VaeO5h1JI/7Qt7iKa1vPKVgpgypUTJliYtqkglSQy80AdVZXovBMDBLA 8Mnluku3IO1W
/hJHRh3rn9Z8SXmmy3jhoFt7e5S3AMBdyTEJM58xR3I/KtLSLBoxcGWG7gXz V8pZrku5VY4l
yzB23HMfViSec/eOc+4tb23uNRgj0y/nhnnhmint54dy+WkYGfNbJO6PuDmt Kdr6mdS9lYta
lca5pumXV81xp0i28TSFBbOC2BnGfM4q14h1yHw5ok2qT2t3dJG8aCC0jDyy M7rGoVSRk7mH
Ga526g166t9Qgaw1OVbq3eFBPJbgKWAAJ2y4wMHogPzHrXRa/ps2q6dFbwNG rpe2lwS5IG2K
4jlYcA87UIHvjp1qXe2q1u+36Djvpt8/1M9vG+lf29HpUHmXJkt47hLqJ4/s 5DyRIFDlwC+J
on2jkq64yWUGQ+MdHPiFtJi1Cxl8i0ubm9lW7Q/ZPJeNSsg/h/1jHJIxsP4Y 9/4C23umtpJg
it7aUyyCU7WOby0nCrtXG1I7YxqD0VY16DIpr4N15otHtHGmrBodklvayrcu Wu2intZULr5Y
EQYWuDgybd/G7HMlmxp3j3TdS1u7tIJLR9Pt0uHOpJdq0RWFLV2OQMAf6SQT njyz68XNS8W2
tnplpqVjaz6zY3MqwpcabNA6B2kWJRlpFzl228Zxg5xXL3vgbW9Y1G91C9Nj bSTytOILa9lP
KmwZF80Roy7vsTguBlN6kBiK2LbwrdJoMltsggup9Vtb+VTez3XEUsBOZpcs 7FIePlUDKrjg
sQDpItTtnt/Nmkjt3V44popZU3QyuF2xPtYgOd6AAE53DGcjNez8S6DqFvdX Flrem3MFom+5
khukdYVwTlyDhRhScn0PpWXcaN9r8c+aEnSxjihvLlCMQ3FwpdISBjDMoyz5 5BjtSD8tcvpv
hHW9c8IaAmowQafJp+lW8MEK3UoklIktpiJGCI1u3+jBfl3lS5I5QBgD0ixv 7PU7OO8sLuC7
tZM7JoJBIjYJBww4OCCPwqxWH4X0aXR7K5E8UcU91cGeRFvJrsg7EQbppjuc 4QdlAGFwcbm3
KACiiigAooooAKKKKACiiigAooooAKy7m/llmmt7exu5TBKgeSNkC5+V8DMi noQPTnnIyDqV
zOoaV9qvro3Flq7oZ/Miew1FrYEGONTu2TITyh6g47dTQBuWV6LwTAwSwPDJ 5bpLtyDtVv4S
R0Yd6kW7tnuntVuImuEG5og4LqOOSOo6j86zdIsGjFwZYbuBfNXylmuS7lVj iXLMHbccx9WJ
J5z945kXw7pQv3vmtBLcOoRmmkaQEAKAcMSM/IvOM8daat1E79C0upWD2r3S 3ts1uh2tKJVK
KeOCc4HUfnUkl3bRWbXklxElqkZladnAQIBksW6YxzmsqPwlocVi9mlgPKdg xJlcuCNuMOTu
A+ReAe1O1jRo7nw1/ZdtZpOkQh8mCS9ltgPLdWU+cgZ1K7QQQCcgeuacuXoK PN9olXxLoLJZ
Out6aUv3KWbC6TFwwYKRHz85DEDAzycUT+JdBtb+WwuNb02G8iQvJbyXSLIi hN5JUnIAX5s+
nPSuPvfA2s6gfM1G7j1Ke8sls7tpL+e1WNRJMwyluEW5AWbbhhFny8/L5h2x 694W1i7S10Dy
oP7MudQ1CT+0Ind5IvtNveH54dgUKrT7d3mckLwN2BJR3l5q2m6ck732oWlq kCI8zTzKgjV2
KoWyeAzAgE9SCBVd/Eugx3FpbvremrPeoj2sbXSBp1c4QoM5YMeARnPauT1P wrr+t6w+r3sF
jbzRfZvJtbTVp083y1ulbM6RI8fF0D8qtnYQcBsiSPwRexaJ4hs4mtIn1TRz Zxr58sgSZnun
Yu75dxm5XLnliGO1eFoA6x9d0eO8urOTVbFLq0iM9zC1wgeGMAEu65yq4IOT xyKsWN/Z6nZx
3lhdwXdrJnZNBIJEbBIOGHBwQR+Fcnd+GNVuNHv9ExafY2vW1CC5W8kilkc3 YuvKYKmYhksn
mK7EYDBc/KNjwvo0uj2VyJ4o4p7q4M8iLeTXZB2Ig3TTHc5wg7KAMLg43MAb lFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABVW9vRZiECCWd5pPLRItuSdrN/EQOinvVqs vW7aS5jtQkE8
yLK3mLby+XIFaKRMq25SDlhyCCOooALa/limht7ixu4jPK4SSRkK5+Z8HEjH oCPTjjAwBZ1K
4ltbPzISgkaWKMF1LAb3Vc4BGfvetYVno4hurdIbPWY4jKXmkvdTe42jypFG 0tM7KcuPu4/Q
Vd1zMMdpbwRNNcXl2ixLJcsiBk3z8nD4H7thwvoOABioq7RMtiA69jVhph1a z+1bxHgWEuwO
VLBC+/aGwCduc+1a2mXMt3ZeZNsMglkjJRSAdrsucEnHT1rkdN8OJcamni60 O6K+jS++ytaR
POSY8hFlY/KCSvpyOoFdN4dkS48PWV3GjIt3H9r2M24oZT5hXOBkAsR07VpU UUtDODk3qU7L
xZBd3TJJp19a2n2uSyjvp/K8mSZJWi2ja5ZcupCl1UE4GdzKDoXGu6PaWcd5 c6rYw2ssXnxz
SXCKjx5UbwxOCuXQZ6fOvqK5+y8Paw0baXfJYx6Yuqyaks8Fw7zS/wCltcxo UMaqnzFdx3Pw
pAHzBl5/UfDHiSz0/Q4o7OxuI9FitbG2MVzIXucXlkwkkXyv3S7bcs2C+3J6 gZOJsdhL4usP
t+mxWkkF7aX8Ukkd3BcxlMrPBDgEkK3zT9jn5MAMxAq43iXQVS9dtb00JYOE vGN0mLdixUCT
n5CWBGDjkYrk7jwXrF9rSavO9jDNLdrczwJM7rHtmsCFVyg35SyY5KrhnA5A LVch0HxDB4Vs
tDX7IItNSGCNodRmga/iRCnzukYe3ORG/wAhfO0oTgkkA3IfFGjz65HpEd9A bqa0ivLb96mL
mN/MwYucvgREnAwAVOeeJI/EugzaXNqkWt6a+nwvslu1ukMSNxwz5wD8y8E9 x61x+neBdVt9
J1PT5pLRE1iyuLO5f7TJM1qGmupEZWdQZz/pQDbih+TOWzxYtfCOqW11Fq8d taJqFvcRyJbz
6vdXYmVYp48NcSqSgH2lmCrGeVOSd/yAFzTfHq6u8iaZod9qWze/mWM1u0Zj FxNCjBpJEzu8
hm4BABHJrUsvFOmzRRG9urSwnuL25s7aGa5UNO0M7Q/IDgsSVBwM43Ac9+Ts PBusWWsNq1zo
PhzUrp90kf2m7cG0kN3c3H7tzbsTxOg3YU5Tp0oufh7fS3F6zmC4j1D7RFMh 1K5t0ije6uZl
LJFj7RlbnBRigGwgNhyQAdoPEugtcPbrremmdLhbV4xdJuWZiQsZGchyVYBe p2n0qR9d0eO8
urOTVbFLq0iM9zC1wgeGMAEu65yq4IOTxyK5O98Falc6de26T2geey1u3Ul2 wGvLhZYifl6B
RhvQ9M9ap6h8Pb66i1a2jMDLP/aEttczalcsBJcrMAPs3+qj2+eQXG8kKTtB fKgHUXHjfw3b
2tpef2zYy2Nzdmz+2RXUbQxSCJpMO+7C8Jj1yy8c10Fcnq/h3UpvFia/Ym0k e3S2MNvPK0Yk
ZFu0cM4Vto23QYEBslCCBnNdZQAUUUUAFFFFABRRRQAUUUUAFQXllaahbm3v bWG5gJBMc0Yd
SR04PFT0UbAcylxY3dzBImhFvtdpIREwgDTxMIgx2mTlcCNTkH+AcdDtaSlm uk2p0+2jtrR4
xJHDHGEChvm+6OB17d65G38NuNY0nVprLWxPZWfkPFFqGI2f9zggCcKF/dHK bcPuBYEiuo0v
TzBpVlHP5qTRwRq6iZsBgqZGAcdUHt1/vHLuwsYFk9quhafdXl5qDzzWqzSk amY8ZAyxDSLg
E56cVYgkij1jTEtri8WR5mE0E96ZiY/KchiodgBuA59RVXVNN1HStEsYGvo5 bO0lRcxr5DKo
wFLMSw47nK/h0PO+A7PWYLu2hu5ALhJ5JWAGwCEhMZQrnkcKeMcDLbTWsqmr tsYxp6K+56Tq
Wrabo1utxqmoWljAzhFkupliUtgnALEDOATj2NZ9l4v0G9S7P9p2kD2dxNb3 Ec86K8TRNICW
G7gFYZHGf4VJ4wcV/FGjalqVxZXGjvHa38KSxJqBumRrZXKbsQ7GScHYCVfb 90YKn5lpx+Fr
xrzT4bmKxmsLDW59VjkdyzyeaLl8GMphWSSZMHcc7d3ynC1ibGwvinRBdR2l xqljbXksrxRW
013EJJCsrRfKoY5yyEAdc8EBgQLH9u6P/bH9kf2rY/2n/wA+X2hPO+7u+5nd 93np05rk18Fa
kNO8W2/n2m/WLK4t7c72wrSXF7KC/wAvA23MYOM8hvQEx29rqcPi/TdIjsvN sbDVbvU5L3bM
nyzx3DbfmiEZw1yF+SVmOM7R820A9AooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k=
--------------020806090305010707020503--

--------------050200020709080002050208--
Re: Type derivation results in duplicate particles [message #595068 is a reply to message #59879] Tue, 26 April 2005 22:37 Go to previous message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Hi Ed,
I appreciate your checking this out.
It's not the imports, though; they're in my schemas, I just miscopied
them into the email.
I'm not seeing duplicates in a Semantic view -- rather, it's in code I
have that's walking the the XSD object model. Any ideas?

Is there anything in the patch() or analyze() steps that could be messed
up because of incorrect document/resource resolving?

Thanks,
Anand


Ed Merks wrote:
> Anand,
>
> You need to add an import. When I add that, it looks fine in the
> Semantics view:
>
>
> Even without that, I'm not seeing duplicates:
>
>
>
>
> Anand Thakker wrote:
>
>> Hi,
>> I'm experiencing some odd behavior with derived types.
>>
>> I have a derivation chain with three types; say C derives from B and B
>> derives from A (all by extension).
>>
>> *If* A is in one namespace and B&C are in a second ns, then I find the
>> XSDParticle representing B's content (obtained by
>> xsdComplexType.getContentType()) is duplicated in type C. This does
>> *not* occur when all three are in the same namespace.
>>
>> More concretely, here is what the object hierarchy looks like from my
>> watch window for the the complexType "StrangeType" in the schema
>> fragment below.
>> Notice the XSDParticleImpl middleTypeParticle appears twice (the same
>> reference in mem).
>>
>> Is this actually the correct behavior, or could I be using the library
>> incorrectly?
>> The only thing out of the ordinary about my usage (I think) is that I
>> have custom hooks into the parser for resolving schema fragments
>> embedded in other files.
>>
>> Thanks,
>> Anand Thakker
>> Mindreef, Inc.
>>
>>
>> XSD Object Model:
>> -----------------
>>
>> XSDComplexTypeDefinition
>> {
>> name="StrangeType"
>> content = XSDModelGroupImpl
>> {
>> compositor=sequence
>> particles[2] =
>> [ 0: XSDParticleImpl
>> {
>> term = XSDModelGroupImpl
>> {
>> compositor=sequence
>> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
>> }
>> }
>> 1: XSDParticleImpl
>> {
>> term = XSDModelGroupImpl
>> {
>> compositor=sequence
>> particles[1] = [ 0: middleTypeParticle ]
>> }
>> }
>> ]
>> }
>> }
>>
>>
>> Schemas:
>> --------
>>
>>
>> <!-- Schema One -->
>> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
>> xmlns:this="http://one/"
>> xmlns:two="http://foo/bar/"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>
>> <xs:complexType name="StrangeType">
>> <xs:complexContent>
>> <xs:extension base="this:MiddleType">
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>>
>> <xs:complexType name="MiddleType">
>> <xs:complexContent>
>> <xs:extension base="two:BaseType">
>> <xs:sequence>
>> <xs:element name="DuplicatedElement" type="xs:string"
>> minOccurs="0" maxOccurs="1" />
>> </xs:sequence>
>> </xs:extension>
>> </xs:complexContent>
>> </xs:complexType>
>> </xs:schema>
>>
>>
>>
>> <!-- Schema Two -->
>> <xs:schema elementFormDefault="qualified"
>> targetNamespace="http://foo/bar/"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>
>> <xs:complexType name="BaseType">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="id" type="xs:int" />
>> </xs:sequence>
>> </xs:complexType>
>> </xs:schema>
>
>
Re: Type derivation results in duplicate particles [message #595076 is a reply to message #59903] Tue, 26 April 2005 22:51 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 26215
Registered: July 2009
Senior Member
Anand,

It would be best if I could reproduce what you are seeing. Can you
provide a test case that demonstrates the problem? It's pretty easy to
add code to XSDMainTest.java to run a test case...


Anand Thakker wrote:

>
> Hi Ed,
> I appreciate your checking this out.
> It's not the imports, though; they're in my schemas, I just miscopied
> them into the email.
> I'm not seeing duplicates in a Semantic view -- rather, it's in code I
> have that's walking the the XSD object model. Any ideas?
>
> Is there anything in the patch() or analyze() steps that could be
> messed up because of incorrect document/resource resolving?
>
> Thanks,
> Anand
>
>
> Ed Merks wrote:
>
>> Anand,
>>
>> You need to add an import. When I add that, it looks fine in the
>> Semantics view:
>>
>>
>> Even without that, I'm not seeing duplicates:
>>
>>
>>
>>
>> Anand Thakker wrote:
>>
>>> Hi,
>>> I'm experiencing some odd behavior with derived types.
>>>
>>> I have a derivation chain with three types; say C derives from B and
>>> B derives from A (all by extension).
>>>
>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>> the XSDParticle representing B's content (obtained by
>>> xsdComplexType.getContentType()) is duplicated in type C. This does
>>> *not* occur when all three are in the same namespace.
>>>
>>> More concretely, here is what the object hierarchy looks like from
>>> my watch window for the the complexType "StrangeType" in the schema
>>> fragment below.
>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>> same reference in mem).
>>>
>>> Is this actually the correct behavior, or could I be using the
>>> library incorrectly?
>>> The only thing out of the ordinary about my usage (I think) is that
>>> I have custom hooks into the parser for resolving schema fragments
>>> embedded in other files.
>>>
>>> Thanks,
>>> Anand Thakker
>>> Mindreef, Inc.
>>>
>>>
>>> XSD Object Model:
>>> -----------------
>>>
>>> XSDComplexTypeDefinition
>>> {
>>> name="StrangeType"
>>> content = XSDModelGroupImpl
>>> {
>>> compositor=sequence
>>> particles[2] =
>>> [ 0: XSDParticleImpl
>>> {
>>> term = XSDModelGroupImpl
>>> {
>>> compositor=sequence
>>> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
>>> }
>>> }
>>> 1: XSDParticleImpl
>>> {
>>> term = XSDModelGroupImpl
>>> {
>>> compositor=sequence
>>> particles[1] = [ 0: middleTypeParticle ]
>>> }
>>> }
>>> ]
>>> }
>>> }
>>>
>>>
>>> Schemas:
>>> --------
>>>
>>>
>>> <!-- Schema One -->
>>> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
>>> xmlns:this="http://one/"
>>> xmlns:two="http://foo/bar/"
>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>
>>> <xs:complexType name="StrangeType">
>>> <xs:complexContent>
>>> <xs:extension base="this:MiddleType">
>>> </xs:extension>
>>> </xs:complexContent>
>>> </xs:complexType>
>>>
>>> <xs:complexType name="MiddleType">
>>> <xs:complexContent>
>>> <xs:extension base="two:BaseType">
>>> <xs:sequence>
>>> <xs:element name="DuplicatedElement" type="xs:string"
>>> minOccurs="0" maxOccurs="1" />
>>> </xs:sequence>
>>> </xs:extension>
>>> </xs:complexContent>
>>> </xs:complexType>
>>> </xs:schema>
>>>
>>>
>>>
>>> <!-- Schema Two -->
>>> <xs:schema elementFormDefault="qualified"
>>> targetNamespace="http://foo/bar/"
>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>
>>> <xs:complexType name="BaseType">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>> </xs:sequence>
>>> </xs:complexType>
>>> </xs:schema>
>>
>>
>>
Re: Type derivation results in duplicate particles [message #595089 is a reply to message #59924] Wed, 27 April 2005 16:56 Go to previous message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

This is a multi-part message in MIME format.
--------------090804010509020505050407
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit


Ed,
I'm attaching a simple test case JAR -- unfortunately, my source zip
didn't have XSDMainTest.java, and the CVS site seemed to be flaky.

Run com.mindreef.xsd.DoublyExtended. The schemas and java source are in
the JAR.

Thanks,
Anand

Ed Merks wrote:
> Anand,
>
> It would be best if I could reproduce what you are seeing. Can you
> provide a test case that demonstrates the problem? It's pretty easy to
> add code to XSDMainTest.java to run a test case...
>
>
> Anand Thakker wrote:
>
>>
>> Hi Ed,
>> I appreciate your checking this out.
>> It's not the imports, though; they're in my schemas, I just miscopied
>> them into the email.
>> I'm not seeing duplicates in a Semantic view -- rather, it's in code I
>> have that's walking the the XSD object model. Any ideas?
>>
>> Is there anything in the patch() or analyze() steps that could be
>> messed up because of incorrect document/resource resolving?
>>
>> Thanks,
>> Anand
>>
>>
>> Ed Merks wrote:
>>
>>> Anand,
>>>
>>> You need to add an import. When I add that, it looks fine in the
>>> Semantics view:
>>>
>>>
>>> Even without that, I'm not seeing duplicates:
>>>
>>>
>>>
>>>
>>> Anand Thakker wrote:
>>>
>>>> Hi,
>>>> I'm experiencing some odd behavior with derived types.
>>>>
>>>> I have a derivation chain with three types; say C derives from B and
>>>> B derives from A (all by extension).
>>>>
>>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>>> the XSDParticle representing B's content (obtained by
>>>> xsdComplexType.getContentType()) is duplicated in type C. This does
>>>> *not* occur when all three are in the same namespace.
>>>>
>>>> More concretely, here is what the object hierarchy looks like from
>>>> my watch window for the the complexType "StrangeType" in the schema
>>>> fragment below.
>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>> same reference in mem).
>>>>
>>>> Is this actually the correct behavior, or could I be using the
>>>> library incorrectly?
>>>> The only thing out of the ordinary about my usage (I think) is that
>>>> I have custom hooks into the parser for resolving schema fragments
>>>> embedded in other files.
>>>>
>>>> Thanks,
>>>> Anand Thakker
>>>> Mindreef, Inc.
>>>>
>>>>
>>>> XSD Object Model:
>>>> -----------------
>>>>
>>>> XSDComplexTypeDefinition
>>>> {
>>>> name="StrangeType"
>>>> content = XSDModelGroupImpl
>>>> {
>>>> compositor=sequence
>>>> particles[2] =
>>>> [ 0: XSDParticleImpl
>>>> {
>>>> term = XSDModelGroupImpl
>>>> {
>>>> compositor=sequence
>>>> particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
>>>> }
>>>> }
>>>> 1: XSDParticleImpl
>>>> {
>>>> term = XSDModelGroupImpl
>>>> {
>>>> compositor=sequence
>>>> particles[1] = [ 0: middleTypeParticle ]
>>>> }
>>>> }
>>>> ]
>>>> }
>>>> }
>>>>
>>>>
>>>> Schemas:
>>>> --------
>>>>
>>>>
>>>> <!-- Schema One -->
>>>> <xs:schema elementFormDefault="qualified" targetNamespace="http://one/"
>>>> xmlns:this="http://one/"
>>>> xmlns:two="http://foo/bar/"
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>
>>>> <xs:complexType name="StrangeType">
>>>> <xs:complexContent>
>>>> <xs:extension base="this:MiddleType">
>>>> </xs:extension>
>>>> </xs:complexContent>
>>>> </xs:complexType>
>>>>
>>>> <xs:complexType name="MiddleType">
>>>> <xs:complexContent>
>>>> <xs:extension base="two:BaseType">
>>>> <xs:sequence>
>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>> minOccurs="0" maxOccurs="1" />
>>>> </xs:sequence>
>>>> </xs:extension>
>>>> </xs:complexContent>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>>
>>>>
>>>>
>>>> <!-- Schema Two -->
>>>> <xs:schema elementFormDefault="qualified"
>>>> targetNamespace="http://foo/bar/"
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>
>>>> <xs:complexType name="BaseType">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>
>>>
>>>
>>>

--------------090804010509020505050407
Content-Type: application/octet-stream;
name="DoublyExtended.jar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="DoublyExtended.jar"

UEsDBAoAAAAAACZmmzIAAAAAAAAAAAAAAAANAAAAY29tL21pbmRyZWVmL1BL AwQKAAAAAAAm
ZpsyAAAAAAAAAAAAAAAAEQAAAGNvbS9taW5kcmVlZi94c2QvUEsDBBQAAAAI AOtmmzJ2VDRi
VwYAAD4NAAAlAAAAY29tL21pbmRyZWVmL3hzZC9Eb3VibHlFeHRlbmRlZC5j bGFzc41WaVcT
Vxh+LhAHk6kKVC1aFxQ1hiXuG9aqLGobcAlu2NYOyQVGk0w6mSh033dr91Zr 94XudTkHoT1t
7aee04/9Hf0NbZ87EyCBCMo5Jrn33Z7n3e5f//78G4A1uCawJGYlw0kzFbel 7An3Z+LhFivb
nRho7XdkKi7jGoTAnFPGGSOcMFK94f3dp2TM0VAq4G/Zf3h3pPXk4UP7BGoi lt0blrGEmc7I
sEz2hGk4aaXCWcdMhCnSJLAiljAymVpe1I56rKXH2kKPAhWRcX/NSoW6M6MD KadPOmZMoCxp
mCmBecETeYJRxzZTvU2rj/C+2YpLgdkRMyU7ssluaXca3QmeVEasmJE4Ytim +p07rIjZ0nDk
IZmxsnZMRqUj0BhcPQmPjFm2DNs5sXCefJOO2ZgjsCxfRVFpJtOJ8LFoSzTW J5PGPv7SUOlH
FSp0+DBjJkowVyDQK51RawLtwWmZ7Lrl4BjZfNwhELpFeYLRsCCAhagWqJ0I xw2AcEalPUCL
mBwi8DAKLJpAnVIco4DxLMFSPxajRqDUypLquV4OTSt8gAl0mEZpJCm3HLUF hRcdyDgyqWHl
TKzCCoFyx/JSLnA7XU4qBB2rEfKjDHUCWlqZTrBm5gaLlYyOBjQKVBWJRMMa P9YizOIhyM6B
tGyRPWbKdEwrlWFJFymU/HS1RsyMqo/12CBQfVNeNGwKYDM2EpbpSNtwLFvV dw6Wa2lf7pzG
tmIbG25atxq2B3AX2DxlKdnvTOTJ62Sauxs7iW6yJw27A2jGrgm+coEXUqGh VWAWGWq2WBSy
X91yuBSvhQOGzT5OqOrcg70BtIEDxOfmSGBpcEoVlax7EfGzddpZQkEveftV jg6wlyleGJjA
8mL2CoVIkdZnZDpclmizS0cnDivwnCYlNvNcf6sdp8aBwAy64YnAyknOizUR NXzxrDuNFk7R
PIzFVGksVhWj1eumtrU/JtNeWh7kHEx75WzETnfaRkzq6FaEGeAoFXKsAws1 VdUYdi8hVBWZ
suRLdYO0k4y4eJLVJRNs4hRFpsiohkQASZxmLxWRak3IpEw5LTw2CNSFZHne O4wkoTyEUABp
sF0WFVFv5yJI7LGtbFoDmdOpNuo3o+MMNgSQxVmOYMqPXtDSlBVIYhwXePVN YbON02PWfO7W
YykUGT1d+Q05uuq0HstW4NR0KTKtJmnoeBJPMc0TzjU848ezeJpTNNeXVopU ep1ZFSxm53m8
oFReZBdOuOywnDYrm4rnVdbLAovHpTosV4495cnZthogr7IVtqsm26HjNVV0 53Ce60KdNBvZ
DAOpz4fY2WdbZ9VWLkA5fqrjDbxZUOljdxre9uMdvKUm/nmVoj4zo14l0zxv VKq2M4NeiBrK
1U7+gKv8hNJsHNVspGbjBM1yfKjjcTyhRtHHfA3F1bVUkuX4lBZunruUdLjH I+5y/lwR/gVn
p2Mpy3bKSLRZdlLHVwixYPPlNXztxzcYJIHek8V9eG0s6me6J4SO7/A9B/Q0 chp+9OMn/EB4
UXdatZmqpKsKqWhUAaCGPJTxWVkCv3rc8Fu5IhQMF+qfj59+BPhbB0QFSl2Z 08OcZ3VXMa9s
BHeW4gYWt9cPYVnHVQQbhsCv6xpGsEVgBDsEtpUNIlRNyRZBybZtPkpV+zyx at8I7hEYhlId
wkEldlTg4n9/D6I8UjeE+BW6Bmef5OgrwW38voPvNvBFAgZfhmWo5KtjPlbw 1yo0IsidEuIC
rcNe1OMQ18wxnkm+m3uwDqewAbOouZcg11L+EKKEqOwfw3F6KsMD6MIJeqrE AdyH+wm4Brt4
epJ3krKSdlREp9GLPn4uUIvNowe/5sg8GBoBd1ik7g+kL2AuodXdQHoErG1i HsR6XmQvoJ6n
2RH053hqH0RFfY6lZEcDOanPkfHPFTdDCnyI2QC2MPytBNKEpYS6io+BTdjJ k91cfs1czzsZ
fJsLNMSAlOQAHiaUVXxeKSglKkg8gkddKAfxGG9V5tkYvPMyrwBtpo4CND80 jOcWXsSMIbx0
+Rec67qO14fw7u+uus6/V/hNhTfDPWGlqMGRY2U9P9WpL3Qd740j8btRVNN+ tRup7gnhfVxw
ab04ZmCrK8l0X8Wl439i1tHKj0qH8cnxa7hU+dkQvhzCt8O4fA3zrriex+NY yP89h1f/B1BL
AwQUAAAACAASYJsyowZ9ycMAAAApAQAAGQAAAGNvbS9taW5kcmVlZi94c2Qv YmFzZS54c2Rd
jssOgjAQRdeS8A/NfABF3RFgYYwrHwtduK11wCZ9YFsC/r3loTEu58zJvTfv Xeb4AxUjKFGh
9jtj1RYr1kpfwLNlUlQC7xBHC89sjf7IFLqGcSzg4X2TUVoZQ2/M0sHpldQu 69332XVd0q0T
Y2u6StMlvR7257EPSBlHcURIHiZwoxqJ/eXVINGhoIANczicUA7OZDl8tqg5 zmiC82yihD5x
3tpQncIcIu5AfAgpIIhCeyD0E0f/80bysyPASRrXlm9QSwMEFAAAAAgAgmSb MoOJLSs1AQAA
+QIAABsAAABjb20vbWluZHJlZWYveHNkL2RvdWJsZS54c2Slkr9OwzAQxmcq 9R0sP0CcwhY1
DFCYWhjKwOo619SS/6S2o5i35xK3JVHpgNh8351/9/l8y+gLLw6gOQEFGkx4 tU6vYM9bFUp6
bLmSewkVJYG7GsIb1+AbLqCkhxCagjFrgNH57C5qZXwRDtLfSnX2ktlby3bc jbLx51rXdVn3
kFlXs/s8X7DPzXo7WKSP8xkhS7QsdWNdIObKzQVM0qvWVvAgrSnpjnvIoseX sAtGWN0oiB9f
DQyskm6D46aGXkndJoXP1gQc0SmRUhBR8tiC9B1K2k+g2MiqUhMKFrNx9RnO fqeP9R6D4m3T
193+6rmzxROepoZTrYdjC0bASD5B0r6cPKzaRkmcNVQvSceNQVpJe0Rw0tSU aGnehWgdfnWO
EY/naHH+lNGkrvr+d36JOmwFRt9QSwMEFAAAAAgA5GabMgnZQTszAwAARwkA ACQAAABjb20v
bWluZHJlZWYveHNkL0RvdWJseUV4dGVuZGVkLmphdmG1Vd9r2zAQfg/kfzj6 ZIeidGWj0NKH
rslGYe1Kk8JgjKHKl0SrLRlJaRNK//ed5B9xHCd7miiNJX333d2nOynn4pnP EYTOWCZVYhBn
bGWTi36v35NZro0DbeYMRSpziwyzGSNsphVbOpmyx4ebi71AFNogM2j10ghk D+XHBF23Dfll
PyajcYoZKjeiZW64k1odhN/qBNOvRi/zg7B7bpwUKR4ETcQCM34QMkWTHQas cxzhTCp5OHRa
Tjc+b2i2Hxu0JmwlYYmu8X/4Cy9ANw5JM23C7nAw6PdgAFO0DgS3CDNtYJzA LZpnC3oGboFQ
OXIoFkqner72PkHhq517WZnnCDzj5BjyFD2R0g7JmruCojgyOBot81QK7jAp T/EIosSLgQlI
BdeaAseVlwjeFs7l58OhVjh8v5VJkqJfj4MnaSE3UhEPDNyrFDjw5t6VM/wF jeVpFX5eHqz1
CLHPwYTs1Dx42ORzbdCHCk9ruFJcJTBd8OdnNGHzKjdwenYMpycnn+DD6fnJ 2fnHE7i/9ZvD
fi9fPlGmQDVqLYw0zdbjlUOVYNLvvRGIBqXwQg7AOipjAdQsMPr++Pnb+Lf/ vPQLTIQY6Cva
JmGBmc3RVYceHSUeESriKGZOe6hRPP2iTRbFcTjy4LYIrfT6omUCGZcqIg2k mv/8BdzMbVxg
y0j9cGa9mTTW/Wj0LhhLoW8VbplEAxT5aJoEreIFyoHmRBS1dmLi38p6o9ix M0vsIC4CgcSL
Q4wFtecoNqKNMtWYrK3DjOmlY6HMUhUFaxK1EKkpZzWq1gLpyEuBJyfb/W6j mMkSuCPC60JS
hJF0bMHtHa5Ipngb0ZLdj50rxSfYWilk3F6MKU6mgpOLXdYOBXZoW2q0KYJd hxVp0ujzbtsO
923Y+2ba+KS7RSwgGq8E5iF1bCjYUg8L7omjR25qONVS00dJ+l53zXazhrYp Umy8HvVts9s+
5dsAzv+7rIGhRNA3aMO3nEUBJhV5UwLpKut8+Pbn1iFgFHVzeE+xD+OOZ63j aAiLKd3q3XFt
Xtj98Ww3RwilYVaHUOn4X9qkPiSqyfq7aI1qergp6oqu4f+sSfqhv79QSwEC FAsKAAAAAAAm
ZpsyAAAAAAAAAAAAAAAADQAAAAAAAAAAABAAAAAAAAAAY29tL21pbmRyZWVm L1BLAQIUCwoA
AAAAACZmmzIAAAAAAAAAAAAAAAARAAAAAAAAAAAAEAAAACsAAABjb20vbWlu ZHJlZWYveHNk
L1BLAQIUCxQAAAAIAOtmmzJ2VDRiVwYAAD4NAAAlAAAAAAAAAAAAIAAAAFoA AABjb20vbWlu
ZHJlZWYveHNkL0RvdWJseUV4dGVuZGVkLmNsYXNzUEsBAhQLFAAAAAgAEmCb MqMGfcnDAAAA
KQEAABkAAAAAAAAAAQAgAAAA9AYAAGNvbS9taW5kcmVlZi94c2QvYmFzZS54 c2RQSwECFAsU
AAAACACCZJsyg4ktKzUBAAD5AgAAGwAAAAAAAAABACAAAADuBwAAY29tL21p bmRyZWVmL3hz
ZC9kb3VibGUueHNkUEsBAhQLFAAAAAgA5GabMgnZQTszAwAARwkAACQAAAAA AAAAAQAgAAAA
XAkAAGNvbS9taW5kcmVlZi94c2QvRG91Ymx5RXh0ZW5kZWQuamF2YVBLBQYA AAAABgAGAK8B
AADRDAAAAAA=
--------------090804010509020505050407--
Re: Type derivation results in duplicate particles [message #595095 is a reply to message #59945] Wed, 27 April 2005 17:26 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 26215
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------050205090400090303080208
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Anand,

For me it prints this result:

org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
null]) (document: [#document: null], schemaLocation:
file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
targetNamespace: http://one/, attributeFormDefault: <unset>,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
[], lexicalFinal: null, block: null, mixed: <unset>)
id

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace:
http://one/) (derivationMethod: extension, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
[], lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
http://one/) (derivationMethod: extension, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
[], lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement

Does it do something different for you?


Anand Thakker wrote:

>
> Ed,
> I'm attaching a simple test case JAR -- unfortunately, my source zip
> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>
> Run com.mindreef.xsd.DoublyExtended. The schemas and java source are
> in the JAR.
>
> Thanks,
> Anand
>
> Ed Merks wrote:
>
>> Anand,
>>
>> It would be best if I could reproduce what you are seeing. Can you
>> provide a test case that demonstrates the problem? It's pretty easy
>> to add code to XSDMainTest.java to run a test case...
>>
>>
>> Anand Thakker wrote:
>>
>>>
>>> Hi Ed,
>>> I appreciate your checking this out.
>>> It's not the imports, though; they're in my schemas, I just
>>> miscopied them into the email.
>>> I'm not seeing duplicates in a Semantic view -- rather, it's in code
>>> I have that's walking the the XSD object model. Any ideas?
>>>
>>> Is there anything in the patch() or analyze() steps that could be
>>> messed up because of incorrect document/resource resolving?
>>>
>>> Thanks,
>>> Anand
>>>
>>>
>>> Ed Merks wrote:
>>>
>>>> Anand,
>>>>
>>>> You need to add an import. When I add that, it looks fine in the
>>>> Semantics view:
>>>>
>>>>
>>>> Even without that, I'm not seeing duplicates:
>>>>
>>>>
>>>>
>>>>
>>>> Anand Thakker wrote:
>>>>
>>>>> Hi,
>>>>> I'm experiencing some odd behavior with derived types.
>>>>>
>>>>> I have a derivation chain with three types; say C derives from B
>>>>> and B derives from A (all by extension).
>>>>>
>>>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>>>> the XSDParticle representing B's content (obtained by
>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>> does *not* occur when all three are in the same namespace.
>>>>>
>>>>> More concretely, here is what the object hierarchy looks like from
>>>>> my watch window for the the complexType "StrangeType" in the
>>>>> schema fragment below.
>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>> same reference in mem).
>>>>>
>>>>> Is this actually the correct behavior, or could I be using the
>>>>> library incorrectly?
>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>> that I have custom hooks into the parser for resolving schema
>>>>> fragments embedded in other files.
>>>>>
>>>>> Thanks,
>>>>> Anand Thakker
>>>>> Mindreef, Inc.
>>>>>
>>>>>
>>>>> XSD Object Model:
>>>>> -----------------
>>>>>
>>>>> XSDComplexTypeDefinition
>>>>> {
>>>>> name="StrangeType"
>>>>> content = XSDModelGroupImpl
>>>>> {
>>>>> compositor=sequence
>>>>> particles[2] =
>>>>> [ 0: XSDParticleImpl
>>>>> {
>>>>> term = XSDModelGroupImpl
>>>>> {
>>>>> compositor=sequence
>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>> middleTypeParticle ]
>>>>> }
>>>>> }
>>>>> 1: XSDParticleImpl
>>>>> {
>>>>> term = XSDModelGroupImpl
>>>>> {
>>>>> compositor=sequence
>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>> }
>>>>> }
>>>>> ]
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> Schemas:
>>>>> --------
>>>>>
>>>>>
>>>>> <!-- Schema One -->
>>>>> <xs:schema elementFormDefault="qualified"
>>>>> targetNamespace="http://one/"
>>>>> xmlns:this="http://one/"
>>>>> xmlns:two="http://foo/bar/"
>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>
>>>>> <xs:complexType name="StrangeType">
>>>>> <xs:complexContent>
>>>>> <xs:extension base="this:MiddleType">
>>>>> </xs:extension>
>>>>> </xs:complexContent>
>>>>> </xs:complexType>
>>>>>
>>>>> <xs:complexType name="MiddleType">
>>>>> <xs:complexContent>
>>>>> <xs:extension base="two:BaseType">
>>>>> <xs:sequence>
>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>> minOccurs="0" maxOccurs="1" />
>>>>> </xs:sequence>
>>>>> </xs:extension>
>>>>> </xs:complexContent>
>>>>> </xs:complexType>
>>>>> </xs:schema>
>>>>>
>>>>>
>>>>>
>>>>> <!-- Schema Two -->
>>>>> <xs:schema elementFormDefault="qualified"
>>>>> targetNamespace="http://foo/bar/"
>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>
>>>>> <xs:complexType name="BaseType">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> </xs:schema>
>>>>
>>>>
>>>>
>>>>
>>>>


--------------050205090400090303080208
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anand,<br>
<br>
For me it prints this result:<br>
<blockquote><small>org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element:
[xs:schema: null]) (document: [#document: null], schemaLocation:
<a class="moz-txt-link-freetext" href=" file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd "> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd </a>,
targetNamespace: <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>, attributeFormDefault: &lt;unset&gt;,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)<br>
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://foo/bar/">http://foo/bar/</a>) (derivationMethod: &lt;unset&gt;, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)<br>
id<br>
<br>
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)<br>
id<br>
DuplicatedElement<br>
<br>
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)<br>
id<br>
DuplicatedElement</small><br>
</blockquote>
Does it do something different for you?<br>
<br>
<br>
Anand Thakker wrote:
<blockquote cite="midd4ogi5$h8k$1@news.eclipse.org" type="cite"><br>
Ed,
<br>
I'm attaching a simple test case JAR -- unfortunately, my source zip
didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
<br>
<br>
Run com.mindreef.xsd.DoublyExtended.&nbsp; The schemas and java source are
in the JAR.
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Anand,
<br>
<br>
It would be best if I could reproduce what you are seeing.&nbsp; Can you
provide a test case that demonstrates the problem?&nbsp; It's pretty easy to
add code to XSDMainTest.java to run a test case...
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite"><br>
Hi Ed,
<br>
I appreciate your checking this out.
<br>
It's not the imports, though; they're in my schemas, I just miscopied
them into the email.
<br>
I'm not seeing duplicates in a Semantic view -- rather, it's in code I
have that's walking the the XSD object model.&nbsp; Any ideas?
<br>
<br>
Is there anything in the patch() or analyze() steps that could be
messed up because of incorrect document/resource resolving?
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
<br>
Ed Merks wrote:
<br>
<br>
<blockquote type="cite">Anand,
<br>
<br>
You need to add an import.&nbsp; When I add that, it looks fine in the
Semantics view:
<br>
<br>
<br>
Even without that, I'm not seeing duplicates:
<br>
<br>
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite">Hi,
<br>
I'm experiencing some odd behavior with derived types.
<br>
<br>
I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).
<br>
<br>
*If* A is in one namespace and B&amp;C are in a second ns, then I find
the XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C.&nbsp; This does
*not* occur when all three are in the same namespace.
<br>
<br>
More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
<br>
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).
<br>
<br>
Is this actually the correct behavior, or could I be using the library
incorrectly?
<br>
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.
<br>
<br>
Thanks,
<br>
Anand Thakker
<br>
Mindreef, Inc.
<br>
<br>
<br>
XSD Object Model:
<br>
-----------------
<br>
<br>
XSDComplexTypeDefinition
<br>
{
<br>
&nbsp; name="StrangeType"
<br>
&nbsp; content = XSDModelGroupImpl
<br>
&nbsp; {
<br>
&nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp; particles[2] =
<br>
&nbsp;&nbsp;&nbsp; [ 0: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[1] = [ 0: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; ]
<br>
&nbsp; }
<br>
}
<br>
<br>
<br>
Schemas:
<br>
--------
<br>
<br>
<br>
&lt;!-- Schema One --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:this=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:two=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a>&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="StrangeType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="this:MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="two:BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" /&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
<br>
<br>
<br>
&lt;!--&nbsp; Schema Two --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
<br>
&nbsp;&nbsp;&nbsp; targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a> &gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element minOccurs="0" name="id" type="xs:int" /&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
</blockquote>
<br>
<br>
<br>
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
</body>
</html>

--------------050205090400090303080208--
Re: Type derivation results in duplicate particles [message #595106 is a reply to message #59971] Wed, 27 April 2005 18:33 Go to previous message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Ed,
Which versoin of the library was that run with? I'm currently running
org.eclipse.xsd-2.0.0-20043081633, and I see the following...
DuplicateElement is actually duplicated for the last type (StrangeType).

org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
null]) (document: [#document: null], schemaLocation:
file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd,
targetNamespace: http://one/, attributeFormDefault: <unset>,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)
org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
<unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions: [],
lexicalFinal: null, block: null, mixed: <unset>)
id

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace: http://one/)
(derivationMethod: extension, final: [], abstract: <unset>,
contentTypeCategory: elementOnly, prohibitedSubstitutions: [],
lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement

org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
http://one/) (derivationMethod: extension, final: [], abstract: <unset>,
contentTypeCategory: elementOnly, prohibitedSubstitutions: [],
lexicalFinal: null, block: null, mixed: <unset>)
id
DuplicatedElement
DuplicatedElement







Ed Merks wrote:
> Anand,
>
> For me it prints this result:
>
> org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
> null]) (document: [#document: null], schemaLocation:
> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
> targetNamespace: http://one/, attributeFormDefault: <unset>,
> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
> version: null)
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
> [xs:complexType: null]) (name: BaseType, targetNamespace:
> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
> [xs:complexType: null]) (name: MiddleType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
> [xs:complexType: null]) (name: StrangeType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
>
> Does it do something different for you?
>
>
> Anand Thakker wrote:
>
>>
>> Ed,
>> I'm attaching a simple test case JAR -- unfortunately, my source zip
>> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>>
>> Run com.mindreef.xsd.DoublyExtended. The schemas and java source are
>> in the JAR.
>>
>> Thanks,
>> Anand
>>
>> Ed Merks wrote:
>>
>>> Anand,
>>>
>>> It would be best if I could reproduce what you are seeing. Can you
>>> provide a test case that demonstrates the problem? It's pretty easy
>>> to add code to XSDMainTest.java to run a test case...
>>>
>>>
>>> Anand Thakker wrote:
>>>
>>>>
>>>> Hi Ed,
>>>> I appreciate your checking this out.
>>>> It's not the imports, though; they're in my schemas, I just
>>>> miscopied them into the email.
>>>> I'm not seeing duplicates in a Semantic view -- rather, it's in code
>>>> I have that's walking the the XSD object model. Any ideas?
>>>>
>>>> Is there anything in the patch() or analyze() steps that could be
>>>> messed up because of incorrect document/resource resolving?
>>>>
>>>> Thanks,
>>>> Anand
>>>>
>>>>
>>>> Ed Merks wrote:
>>>>
>>>>> Anand,
>>>>>
>>>>> You need to add an import. When I add that, it looks fine in the
>>>>> Semantics view:
>>>>>
>>>>>
>>>>> Even without that, I'm not seeing duplicates:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Anand Thakker wrote:
>>>>>
>>>>>> Hi,
>>>>>> I'm experiencing some odd behavior with derived types.
>>>>>>
>>>>>> I have a derivation chain with three types; say C derives from B
>>>>>> and B derives from A (all by extension).
>>>>>>
>>>>>> *If* A is in one namespace and B&C are in a second ns, then I find
>>>>>> the XSDParticle representing B's content (obtained by
>>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>>> does *not* occur when all three are in the same namespace.
>>>>>>
>>>>>> More concretely, here is what the object hierarchy looks like from
>>>>>> my watch window for the the complexType "StrangeType" in the
>>>>>> schema fragment below.
>>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>>> same reference in mem).
>>>>>>
>>>>>> Is this actually the correct behavior, or could I be using the
>>>>>> library incorrectly?
>>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>>> that I have custom hooks into the parser for resolving schema
>>>>>> fragments embedded in other files.
>>>>>>
>>>>>> Thanks,
>>>>>> Anand Thakker
>>>>>> Mindreef, Inc.
>>>>>>
>>>>>>
>>>>>> XSD Object Model:
>>>>>> -----------------
>>>>>>
>>>>>> XSDComplexTypeDefinition
>>>>>> {
>>>>>> name="StrangeType"
>>>>>> content = XSDModelGroupImpl
>>>>>> {
>>>>>> compositor=sequence
>>>>>> particles[2] =
>>>>>> [ 0: XSDParticleImpl
>>>>>> {
>>>>>> term = XSDModelGroupImpl
>>>>>> {
>>>>>> compositor=sequence
>>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>>> middleTypeParticle ]
>>>>>> }
>>>>>> }
>>>>>> 1: XSDParticleImpl
>>>>>> {
>>>>>> term = XSDModelGroupImpl
>>>>>> {
>>>>>> compositor=sequence
>>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>>> }
>>>>>> }
>>>>>> ]
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Schemas:
>>>>>> --------
>>>>>>
>>>>>>
>>>>>> <!-- Schema One -->
>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>> targetNamespace="http://one/"
>>>>>> xmlns:this="http://one/"
>>>>>> xmlns:two="http://foo/bar/"
>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>>
>>>>>> <xs:complexType name="StrangeType">
>>>>>> <xs:complexContent>
>>>>>> <xs:extension base="this:MiddleType">
>>>>>> </xs:extension>
>>>>>> </xs:complexContent>
>>>>>> </xs:complexType>
>>>>>>
>>>>>> <xs:complexType name="MiddleType">
>>>>>> <xs:complexContent>
>>>>>> <xs:extension base="two:BaseType">
>>>>>> <xs:sequence>
>>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>>> minOccurs="0" maxOccurs="1" />
>>>>>> </xs:sequence>
>>>>>> </xs:extension>
>>>>>> </xs:complexContent>
>>>>>> </xs:complexType>
>>>>>> </xs:schema>
>>>>>>
>>>>>>
>>>>>>
>>>>>> <!-- Schema Two -->
>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>> targetNamespace="http://foo/bar/"
>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>>
>>>>>> <xs:complexType name="BaseType">
>>>>>> <xs:sequence>
>>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>>> </xs:sequence>
>>>>>> </xs:complexType>
>>>>>> </xs:schema>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
Re: Type derivation results in duplicate particles [message #595115 is a reply to message #59995] Wed, 27 April 2005 20:26 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 26215
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------090403020400090105010608
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Anand,

I'm running with my latest development image, which would be a 2.1.0.
I think this is bugzilla 80755
<https://bugs.eclipse.org/bugs/show_bug.cgi?id=80755> which is fixed in
2.1.0.I200412160800.


Anand Thakker wrote:

> Ed,
> Which versoin of the library was that run with? I'm currently running
> org.eclipse.xsd-2.0.0-20043081633, and I see the following...
> DuplicateElement is actually duplicated for the last type (StrangeType).
>
> org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
> null]) (document: [#document: null], schemaLocation:
> file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd,
> targetNamespace: http://one/, attributeFormDefault: <unset>,
> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
> version: null)
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
> [xs:complexType: null]) (name: BaseType, targetNamespace:
> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca
> (element: [xs:complexType: null]) (name: MiddleType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
>
> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824
> (element: [xs:complexType: null]) (name: StrangeType, targetNamespace:
> http://one/) (derivationMethod: extension, final: [], abstract:
> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
> [], lexicalFinal: null, block: null, mixed: <unset>)
> id
> DuplicatedElement
> DuplicatedElement
>
>
>
>
>
>
>
> Ed Merks wrote:
>
>> Anand,
>>
>> For me it prints this result:
>>
>> org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
>> null]) (document: [#document: null], schemaLocation:
>>
>> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
>>
>> targetNamespace: http://one/, attributeFormDefault: <unset>,
>> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
>> version: null)
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
>> [xs:complexType: null]) (name: BaseType, targetNamespace:
>> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
>> [xs:complexType: null]) (name: MiddleType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
>> [xs:complexType: null]) (name: StrangeType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>>
>> Does it do something different for you?
>>
>>
>> Anand Thakker wrote:
>>
>>>
>>> Ed,
>>> I'm attaching a simple test case JAR -- unfortunately, my source zip
>>> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>>>
>>> Run com.mindreef.xsd.DoublyExtended. The schemas and java source
>>> are in the JAR.
>>>
>>> Thanks,
>>> Anand
>>>
>>> Ed Merks wrote:
>>>
>>>> Anand,
>>>>
>>>> It would be best if I could reproduce what you are seeing. Can you
>>>> provide a test case that demonstrates the problem? It's pretty
>>>> easy to add code to XSDMainTest.java to run a test case...
>>>>
>>>>
>>>> Anand Thakker wrote:
>>>>
>>>>>
>>>>> Hi Ed,
>>>>> I appreciate your checking this out.
>>>>> It's not the imports, though; they're in my schemas, I just
>>>>> miscopied them into the email.
>>>>> I'm not seeing duplicates in a Semantic view -- rather, it's in
>>>>> code I have that's walking the the XSD object model. Any ideas?
>>>>>
>>>>> Is there anything in the patch() or analyze() steps that could be
>>>>> messed up because of incorrect document/resource resolving?
>>>>>
>>>>> Thanks,
>>>>> Anand
>>>>>
>>>>>
>>>>> Ed Merks wrote:
>>>>>
>>>>>> Anand,
>>>>>>
>>>>>> You need to add an import. When I add that, it looks fine in the
>>>>>> Semantics view:
>>>>>>
>>>>>>
>>>>>> Even without that, I'm not seeing duplicates:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Anand Thakker wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>> I'm experiencing some odd behavior with derived types.
>>>>>>>
>>>>>>> I have a derivation chain with three types; say C derives from B
>>>>>>> and B derives from A (all by extension).
>>>>>>>
>>>>>>> *If* A is in one namespace and B&C are in a second ns, then I
>>>>>>> find the XSDParticle representing B's content (obtained by
>>>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>>>> does *not* occur when all three are in the same namespace.
>>>>>>>
>>>>>>> More concretely, here is what the object hierarchy looks like
>>>>>>> from my watch window for the the complexType "StrangeType" in
>>>>>>> the schema fragment below.
>>>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>>>> same reference in mem).
>>>>>>>
>>>>>>> Is this actually the correct behavior, or could I be using the
>>>>>>> library incorrectly?
>>>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>>>> that I have custom hooks into the parser for resolving schema
>>>>>>> fragments embedded in other files.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Anand Thakker
>>>>>>> Mindreef, Inc.
>>>>>>>
>>>>>>>
>>>>>>> XSD Object Model:
>>>>>>> -----------------
>>>>>>>
>>>>>>> XSDComplexTypeDefinition
>>>>>>> {
>>>>>>> name="StrangeType"
>>>>>>> content = XSDModelGroupImpl
>>>>>>> {
>>>>>>> compositor=sequence
>>>>>>> particles[2] =
>>>>>>> [ 0: XSDParticleImpl
>>>>>>> {
>>>>>>> term = XSDModelGroupImpl
>>>>>>> {
>>>>>>> compositor=sequence
>>>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>>>> middleTypeParticle ]
>>>>>>> }
>>>>>>> }
>>>>>>> 1: XSDParticleImpl
>>>>>>> {
>>>>>>> term = XSDModelGroupImpl
>>>>>>> {
>>>>>>> compositor=sequence
>>>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>>>> }
>>>>>>> }
>>>>>>> ]
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> Schemas:
>>>>>>> --------
>>>>>>>
>>>>>>>
>>>>>>> <!-- Schema One -->
>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>> targetNamespace="http://one/"
>>>>>>> xmlns:this="http://one/"
>>>>>>> xmlns:two="http://foo/bar/"
>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>>>
>>>>>>> <xs:complexType name="StrangeType">
>>>>>>> <xs:complexContent>
>>>>>>> <xs:extension base="this:MiddleType">
>>>>>>> </xs:extension>
>>>>>>> </xs:complexContent>
>>>>>>> </xs:complexType>
>>>>>>>
>>>>>>> <xs:complexType name="MiddleType">
>>>>>>> <xs:complexContent>
>>>>>>> <xs:extension base="two:BaseType">
>>>>>>> <xs:sequence>
>>>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>>>> minOccurs="0" maxOccurs="1" />
>>>>>>> </xs:sequence>
>>>>>>> </xs:extension>
>>>>>>> </xs:complexContent>
>>>>>>> </xs:complexType>
>>>>>>> </xs:schema>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> <!-- Schema Two -->
>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>> targetNamespace="http://foo/bar/"
>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>>>
>>>>>>> <xs:complexType name="BaseType">
>>>>>>> <xs:sequence>
>>>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>>>> </xs:sequence>
>>>>>>> </xs:complexType>
>>>>>>> </xs:schema>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>


--------------090403020400090105010608
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anand,<br>
<br>
I'm running with my latest development image, which would be a 2.1.0.&nbsp;&nbsp;
I think this is bugzilla&nbsp; <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80755">80755</a>
which is fixed in 2.1.0.I200412160800.<br>
<br>
<br>
Anand Thakker wrote:
<blockquote cite="midd4om83$p5i$1@news.eclipse.org" type="cite">Ed,
<br>
Which versoin of the library was that run with?&nbsp; I'm currently running
org.eclipse.xsd-2.0.0-20043081633, and I see the following...
DuplicateElement is actually duplicated for the last type
(StrangeType).
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
null]) (document: [#document: null], schemaLocation:
<a class="moz-txt-link-freetext" href=" file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd "> file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd </a>,
targetNamespace: <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>, attributeFormDefault: &lt;unset&gt;,
elementFormDefault: qualified, finalDefault: [], blockDefault: [],
version: null)
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
[xs:complexType: null]) (name: BaseType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://foo/bar/">http://foo/bar/</a>) (derivationMethod: &lt;unset&gt;, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca (element:
[xs:complexType: null]) (name: MiddleType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824 (element:
[xs:complexType: null]) (name: StrangeType, targetNamespace:
<a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
&lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions: [], lexicalFinal: null, block: null, mixed:
&lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Ed Merks wrote:
<br>
<blockquote type="cite">Anand,
<br>
<br>
For me it prints this result:
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
<br>
&nbsp;&nbsp;&nbsp; null]) (document: [#document: null], schemaLocation:
<br>
&nbsp;&nbsp;&nbsp;
<a class="moz-txt-link-freetext" href=" file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd "> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd </a>,
<br>
&nbsp;&nbsp;&nbsp; targetNamespace: <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>, attributeFormDefault: &lt;unset&gt;,
<br>
&nbsp;&nbsp;&nbsp; elementFormDefault: qualified, finalDefault: [], blockDefault: [],
<br>
&nbsp;&nbsp;&nbsp; version: null)
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
<br>
&nbsp;&nbsp;&nbsp; [xs:complexType: null]) (name: BaseType, targetNamespace:
<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://foo/bar/">http://foo/bar/</a>) (derivationMethod: &lt;unset&gt;, final: [],
abstract:
<br>
&nbsp;&nbsp;&nbsp; &lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions:
<br>
&nbsp;&nbsp;&nbsp; [], lexicalFinal: null, block: null, mixed: &lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775
(element:
<br>
&nbsp;&nbsp;&nbsp; [xs:complexType: null]) (name: MiddleType, targetNamespace:
<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
<br>
&nbsp;&nbsp;&nbsp; &lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions:
<br>
&nbsp;&nbsp;&nbsp; [], lexicalFinal: null, block: null, mixed: &lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
&nbsp;&nbsp;&nbsp; org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775
(element:
<br>
&nbsp;&nbsp;&nbsp; [xs:complexType: null]) (name: StrangeType, targetNamespace:
<br>
&nbsp;&nbsp;&nbsp; <a class="moz-txt-link-freetext" href="http://one/">http://one/</a>) (derivationMethod: extension, final: [], abstract:
<br>
&nbsp;&nbsp;&nbsp; &lt;unset&gt;, contentTypeCategory: elementOnly,
prohibitedSubstitutions:
<br>
&nbsp;&nbsp;&nbsp; [], lexicalFinal: null, block: null, mixed: &lt;unset&gt;)
<br>
&nbsp;&nbsp;&nbsp; id
<br>
&nbsp;&nbsp;&nbsp; DuplicatedElement
<br>
<br>
Does it do something different for you?
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite"><br>
Ed,
<br>
I'm attaching a simple test case JAR -- unfortunately, my source zip
didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
<br>
<br>
Run com.mindreef.xsd.DoublyExtended.&nbsp; The schemas and java source are
in the JAR.
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
Ed Merks wrote:
<br>
<br>
<blockquote type="cite">Anand,
<br>
<br>
It would be best if I could reproduce what you are seeing.&nbsp; Can you
provide a test case that demonstrates the problem?&nbsp; It's pretty easy to
add code to XSDMainTest.java to run a test case...
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite"><br>
Hi Ed,
<br>
I appreciate your checking this out.
<br>
It's not the imports, though; they're in my schemas, I just miscopied
them into the email.
<br>
I'm not seeing duplicates in a Semantic view -- rather, it's in code I
have that's walking the the XSD object model.&nbsp; Any ideas?
<br>
<br>
Is there anything in the patch() or analyze() steps that could be
messed up because of incorrect document/resource resolving?
<br>
<br>
Thanks,
<br>
Anand
<br>
<br>
<br>
Ed Merks wrote:
<br>
<br>
<blockquote type="cite">Anand,
<br>
<br>
You need to add an import.&nbsp; When I add that, it looks fine in the
Semantics view:
<br>
<br>
<br>
Even without that, I'm not seeing duplicates:
<br>
<br>
<br>
<br>
<br>
Anand Thakker wrote:
<br>
<br>
<blockquote type="cite">Hi,
<br>
I'm experiencing some odd behavior with derived types.
<br>
<br>
I have a derivation chain with three types; say C derives from B and B
derives from A (all by extension).
<br>
<br>
*If* A is in one namespace and B&amp;C are in a second ns, then I find
the XSDParticle representing B's content (obtained by
xsdComplexType.getContentType()) is duplicated in type C.&nbsp; This does
*not* occur when all three are in the same namespace.
<br>
<br>
More concretely, here is what the object hierarchy looks like from my
watch window for the the complexType "StrangeType" in the schema
fragment below.
<br>
Notice the XSDParticleImpl middleTypeParticle appears twice (the same
reference in mem).
<br>
<br>
Is this actually the correct behavior, or could I be using the library
incorrectly?
<br>
The only thing out of the ordinary about my usage (I think) is that I
have custom hooks into the parser for resolving schema fragments
embedded in other files.
<br>
<br>
Thanks,
<br>
Anand Thakker
<br>
Mindreef, Inc.
<br>
<br>
<br>
XSD Object Model:
<br>
-----------------
<br>
<br>
XSDComplexTypeDefinition
<br>
{
<br>
&nbsp; name="StrangeType"
<br>
&nbsp; content = XSDModelGroupImpl
<br>
&nbsp; {
<br>
&nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp; particles[2] =
<br>
&nbsp;&nbsp;&nbsp; [ 0: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[2] = [ 0: baseTypeParticle, 1: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1: XSDParticleImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; term = XSDModelGroupImpl
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; compositor=sequence
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; particles[1] = [ 0: middleTypeParticle ]
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; ]
<br>
&nbsp; }
<br>
}
<br>
<br>
<br>
Schemas:
<br>
--------
<br>
<br>
<br>
&lt;!-- Schema One --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:this=<a class="moz-txt-link-rfc2396E" href="http://one/">"http://one/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:two=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a>&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="StrangeType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="this:MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="MiddleType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:complexContent&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:extension base="two:BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;xs:element name="DuplicatedElement" type="xs:string"
minOccurs="0" maxOccurs="1" /&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xs:extension&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:complexContent&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
<br>
<br>
<br>
&lt;!--&nbsp; Schema Two --&gt;
<br>
&lt;xs:schema elementFormDefault="qualified"
<br>
&nbsp;&nbsp;&nbsp; targetNamespace=<a class="moz-txt-link-rfc2396E" href="http://foo/bar/">"http://foo/bar/"</a>
<br>
&nbsp;&nbsp;&nbsp; xmlns:xs=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema">"http://www.w3.org/2001/XMLSchema"</a> &gt;
<br>
<br>
&nbsp; &lt;xs:complexType name="BaseType"&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;xs:sequence&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xs:element minOccurs="0" name="id" type="xs:int" /&gt;
<br>
&nbsp;&nbsp;&nbsp; &lt;/xs:sequence&gt;
<br>
&nbsp; &lt;/xs:complexType&gt;
<br>
&lt;/xs:schema&gt;
<br>
</blockquote>
<br>
<br>
<br>
<br>
<br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<br>
</blockquote>
</blockquote>
<br>
</body>
</html>

--------------090403020400090105010608--
Re: Type derivation results in duplicate particles [message #595125 is a reply to message #60021] Thu, 28 April 2005 02:02 Go to previous message
Eclipse UserFriend
Originally posted by: anand.mindreef.com

Ed,
Indeed, I was using an older version. Thanks very much for all your help!
Anand

Ed Merks wrote:
> Anand,
>
> I'm running with my latest development image, which would be a 2.1.0.
> I think this is bugzilla 80755
> <https://bugs.eclipse.org/bugs/show_bug.cgi?id=80755> which is fixed in
> 2.1.0.I200412160800.
>
>
> Anand Thakker wrote:
>
>> Ed,
>> Which versoin of the library was that run with? I'm currently running
>> org.eclipse.xsd-2.0.0-20043081633, and I see the following...
>> DuplicateElement is actually duplicated for the last type (StrangeType).
>>
>> org.eclipse.xsd.impl.XSDSchemaImpl@1c80b01 (element: [xs:schema:
>> null]) (document: [#document: null], schemaLocation:
>> file:/C:/mindreef/main/common/test/com/mindreef/xsd/double.x sd,
>> targetNamespace: http://one/, attributeFormDefault: <unset>,
>> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
>> version: null)
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@4aa0ce (element:
>> [xs:complexType: null]) (name: BaseType, targetNamespace:
>> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@1833eca
>> (element: [xs:complexType: null]) (name: MiddleType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>>
>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@18f5824
>> (element: [xs:complexType: null]) (name: StrangeType, targetNamespace:
>> http://one/) (derivationMethod: extension, final: [], abstract:
>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>> [], lexicalFinal: null, block: null, mixed: <unset>)
>> id
>> DuplicatedElement
>> DuplicatedElement
>>
>>
>>
>>
>>
>>
>>
>> Ed Merks wrote:
>>
>>> Anand,
>>>
>>> For me it prints this result:
>>>
>>> org.eclipse.xsd.impl.XSDSchemaImpl@cba2775 (element: [xs:schema:
>>> null]) (document: [#document: null], schemaLocation:
>>>
>>> file:/D:/sandbox/unpackage1_3.1M6/eclipse/plugins/org.eclips e.xsd.test/bin/com/mindreef/xsd/double.xsd,
>>>
>>> targetNamespace: http://one/, attributeFormDefault: <unset>,
>>> elementFormDefault: qualified, finalDefault: [], blockDefault: [],
>>> version: null)
>>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@832e776 (element:
>>> [xs:complexType: null]) (name: BaseType, targetNamespace:
>>> http://foo/bar/) (derivationMethod: <unset>, final: [], abstract:
>>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>>> [], lexicalFinal: null, block: null, mixed: <unset>)
>>> id
>>>
>>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@433fe775 (element:
>>> [xs:complexType: null]) (name: MiddleType, targetNamespace:
>>> http://one/) (derivationMethod: extension, final: [], abstract:
>>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>>> [], lexicalFinal: null, block: null, mixed: <unset>)
>>> id
>>> DuplicatedElement
>>>
>>> org.eclipse.xsd.impl.XSDComplexTypeDefinitionImpl@43572775 (element:
>>> [xs:complexType: null]) (name: StrangeType, targetNamespace:
>>> http://one/) (derivationMethod: extension, final: [], abstract:
>>> <unset>, contentTypeCategory: elementOnly, prohibitedSubstitutions:
>>> [], lexicalFinal: null, block: null, mixed: <unset>)
>>> id
>>> DuplicatedElement
>>>
>>> Does it do something different for you?
>>>
>>>
>>> Anand Thakker wrote:
>>>
>>>>
>>>> Ed,
>>>> I'm attaching a simple test case JAR -- unfortunately, my source zip
>>>> didn't have XSDMainTest.java, and the CVS site seemed to be flaky.
>>>>
>>>> Run com.mindreef.xsd.DoublyExtended. The schemas and java source
>>>> are in the JAR.
>>>>
>>>> Thanks,
>>>> Anand
>>>>
>>>> Ed Merks wrote:
>>>>
>>>>> Anand,
>>>>>
>>>>> It would be best if I could reproduce what you are seeing. Can you
>>>>> provide a test case that demonstrates the problem? It's pretty
>>>>> easy to add code to XSDMainTest.java to run a test case...
>>>>>
>>>>>
>>>>> Anand Thakker wrote:
>>>>>
>>>>>>
>>>>>> Hi Ed,
>>>>>> I appreciate your checking this out.
>>>>>> It's not the imports, though; they're in my schemas, I just
>>>>>> miscopied them into the email.
>>>>>> I'm not seeing duplicates in a Semantic view -- rather, it's in
>>>>>> code I have that's walking the the XSD object model. Any ideas?
>>>>>>
>>>>>> Is there anything in the patch() or analyze() steps that could be
>>>>>> messed up because of incorrect document/resource resolving?
>>>>>>
>>>>>> Thanks,
>>>>>> Anand
>>>>>>
>>>>>>
>>>>>> Ed Merks wrote:
>>>>>>
>>>>>>> Anand,
>>>>>>>
>>>>>>> You need to add an import. When I add that, it looks fine in the
>>>>>>> Semantics view:
>>>>>>>
>>>>>>>
>>>>>>> Even without that, I'm not seeing duplicates:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Anand Thakker wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I'm experiencing some odd behavior with derived types.
>>>>>>>>
>>>>>>>> I have a derivation chain with three types; say C derives from B
>>>>>>>> and B derives from A (all by extension).
>>>>>>>>
>>>>>>>> *If* A is in one namespace and B&C are in a second ns, then I
>>>>>>>> find the XSDParticle representing B's content (obtained by
>>>>>>>> xsdComplexType.getContentType()) is duplicated in type C. This
>>>>>>>> does *not* occur when all three are in the same namespace.
>>>>>>>>
>>>>>>>> More concretely, here is what the object hierarchy looks like
>>>>>>>> from my watch window for the the complexType "StrangeType" in
>>>>>>>> the schema fragment below.
>>>>>>>> Notice the XSDParticleImpl middleTypeParticle appears twice (the
>>>>>>>> same reference in mem).
>>>>>>>>
>>>>>>>> Is this actually the correct behavior, or could I be using the
>>>>>>>> library incorrectly?
>>>>>>>> The only thing out of the ordinary about my usage (I think) is
>>>>>>>> that I have custom hooks into the parser for resolving schema
>>>>>>>> fragments embedded in other files.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Anand Thakker
>>>>>>>> Mindreef, Inc.
>>>>>>>>
>>>>>>>>
>>>>>>>> XSD Object Model:
>>>>>>>> -----------------
>>>>>>>>
>>>>>>>> XSDComplexTypeDefinition
>>>>>>>> {
>>>>>>>> name="StrangeType"
>>>>>>>> content = XSDModelGroupImpl
>>>>>>>> {
>>>>>>>> compositor=sequence
>>>>>>>> particles[2] =
>>>>>>>> [ 0: XSDParticleImpl
>>>>>>>> {
>>>>>>>> term = XSDModelGroupImpl
>>>>>>>> {
>>>>>>>> compositor=sequence
>>>>>>>> particles[2] = [ 0: baseTypeParticle, 1:
>>>>>>>> middleTypeParticle ]
>>>>>>>> }
>>>>>>>> }
>>>>>>>> 1: XSDParticleImpl
>>>>>>>> {
>>>>>>>> term = XSDModelGroupImpl
>>>>>>>> {
>>>>>>>> compositor=sequence
>>>>>>>> particles[1] = [ 0: middleTypeParticle ]
>>>>>>>> }
>>>>>>>> }
>>>>>>>> ]
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> Schemas:
>>>>>>>> --------
>>>>>>>>
>>>>>>>>
>>>>>>>> <!-- Schema One -->
>>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>>> targetNamespace="http://one/"
>>>>>>>> xmlns:this="http://one/"
>>>>>>>> xmlns:two="http://foo/bar/"
>>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>>>>>>>>
>>>>>>>> <xs:complexType name="StrangeType">
>>>>>>>> <xs:complexContent>
>>>>>>>> <xs:extension base="this:MiddleType">
>>>>>>>> </xs:extension>
>>>>>>>> </xs:complexContent>
>>>>>>>> </xs:complexType>
>>>>>>>>
>>>>>>>> <xs:complexType name="MiddleType">
>>>>>>>> <xs:complexContent>
>>>>>>>> <xs:extension base="two:BaseType">
>>>>>>>> <xs:sequence>
>>>>>>>> <xs:element name="DuplicatedElement" type="xs:string"
>>>>>>>> minOccurs="0" maxOccurs="1" />
>>>>>>>> </xs:sequence>
>>>>>>>> </xs:extension>
>>>>>>>> </xs:complexContent>
>>>>>>>> </xs:complexType>
>>>>>>>> </xs:schema>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> <!-- Schema Two -->
>>>>>>>> <xs:schema elementFormDefault="qualified"
>>>>>>>> targetNamespace="http://foo/bar/"
>>>>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>>>>>>>>
>>>>>>>> <xs:complexType name="BaseType">
>>>>>>>> <xs:sequence>
>>>>>>>> <xs:element minOccurs="0" name="id" type="xs:int" />
>>>>>>>> </xs:sequence>
>>>>>>>> </xs:complexType>
>>>>>>>> </xs:schema>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>
>
Previous Topic:Type derivation results in duplicate particles
Next Topic:attribute reference unresolved - must be basic answer
Goto Forum:
  


Current Time: Fri Nov 21 17:53:32 GMT 2014

Powered by FUDForum. Page generated in 0.03377 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software