You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@xmlbeans.apache.org by "Bailey, Brian P" <br...@lmco.com> on 2006/08/18 00:34:49 UTC

How to use XmlObject.valueEquals

Hi, I'm using xmlbeans 2.1.0 and have a question about comparing
XmlObjects for equivalency. I have the following schema:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://myself.com/data"
targetNamespace="http://myself.com/data">
  <complexType name="location2DType">
    <sequence>
      <element name="latitude" type="double"/>
      <element name="longitude" type="double"/>
    </sequence>
  </complexType>
  <element name="Location2D" type="tns:location2DType"/>
</schema>


I would like to compare two documents based on this schema and see if
they are equivalent (ignoring element prefixes, attribute ordering,
etc.). I thought I might use XmlObject.valueEquals(), but that doesn't
seem to work. For example, when running the following code, I see
"valueEquals: true" even though the latitude value is different:

      Location2DDocument doc1 =
Location2DDocument.Factory.newInstance();
      doc1.addNewLocation2D();
      doc1.getLocation2D().setLatitude(34.2);
      doc1.getLocation2D().setLongitude(84.8);
      
      Location2DDocument doc2 =
Location2DDocument.Factory.newInstance();
      doc2.addNewLocation2D();
      doc2.getLocation2D().setLatitude(95.2);
      doc2.getLocation2D().setLongitude(84.8);
      
      System.out.println("valueEquals: " + doc1.valueEquals(doc2));

What should I use to compare two xml beans for equivalency?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


RE: XmlBeans for schema aware comparisons

Posted by "Baker, Jon" <ba...@mitre.org>.
Radu,

Based on your response to the earlier messages to this list I thought
that it would be possible to build into XmlBeans a schema aware
comparison capability.

My comparison algorithm is of course fairly specific to my own
implementation. However, I think that following capabilities are fairly
generic to a schema aware comparison:
- ignore comments
- ignore attribute ordering
- understand default attribute values - if attribute 'attr1' has a
default value of 1 then the following elements should be considered to
be the same.
   <elm attr1="1"/>
   <elm />
- ordering of child elements is not important. The following elements
should be considered the same:
   <elm>
      <a>1</a>
      <b>2</b>
   </elm>

   <elm>
      <b>2</b>
      <a>1</a>
   </elm>

For my own implementation I need to be able to ignore certain
attributes. In some cases if 2 elements are exactly the same except for
one specific attribute I might not care. Basically to the compare, but
ignore certain differences.

I can implement the comparison capability I need using XmlBeans in my
own code. Since I suspect a lot of what I need to do would be useful to
others it would be nice to understand if it is possible to build this
sort of schema aware comparison into XmlBeans.

Regards,

Jon

============================================
Jonathan O. Baker
http://oval.mitre.org
The MITRE Corporation
Email: bakerj@mitre.org
 

>-----Original Message-----
>From: Radu Preotiuc-Pietro [mailto:radup@bea.com] 
>Sent: Wednesday, June 13, 2007 4:54 PM
>To: user@xmlbeans.apache.org
>Subject: RE: XmlBeans for schema aware comparisons
>
>No progress has been made since then.
>
>But with XMLBeans, say you have objects obj1 and obj2, you have access
>to the Schema type for each XmlObject, (SchemaType obj.schemaType()).
>SchemaType contains all the information about that type from 
>the Schema.
>XmlCursor on the other hand (XmlCuror obj.newCursor()) contains all
the
>information from the instance document, so with these you 
>should be able
>to implement any comparison algorithm.
>
>Just out of curiosity, could you give a brief overview of what 
>algorithm
>you have in mind (like, are comments relevant, is the order of
>attributes relevant etc)?
>
>Radu
>
>> -----Original Message-----
>> From: Baker, Jon [mailto:bakerj@mitre.org] 
>> Sent: Wednesday, June 13, 2007 9:46 AM
>> To: user@xmlbeans.apache.org
>> Subject: XmlBeans for schema aware comparisons
>> 
>> In august of 2006 a question was asked about using XmlBeans 
>> for a schema aware comparison of two XmlObjects. Has any 
>> progress been made on this capability since then? How hard is 
>> it to implement in XmlBeans?
>> In your response to the question you mentioned that XmlBeans 
>> has the foundation for this code already implemented. Where 
>> can I find out more information so that I can decide if I 
>> want to try to add this capability to XmlBeans?
>> 
>> Thanks,
>> 
>> Jon
>> 
>> ============================================
>> Jonathan O. Baker
>> The MITRE Corporation
>> Email: bakerj@mitre.org
>> 
>> 
>>  
>> 
>> >-----Original Message-----
>> >From: Radu Preotiuc-Pietro [mailto:radup@bea.com]
>> >Sent: Wednesday, August 30, 2006 1:10 PM
>> >To: user@xmlbeans.apache.org
>> >Subject: RE: How to use XmlObject.valueEquals
>> >
>> >The JavaDoc for .valueEquals() is fairly detailed but forgets to 
>> >mention one thing: that .valueEquals() is only implemented 
>> for simple 
>> >type values.
>> >
>> >Actually, Schema-aware comparison is something that a lot of people

>> >find valuable and XmlBeans has all the foundation work done 
>> to support 
>> >something like that, unfortunately we weren't able to find an 
>> >interested person that could contribute the code to do it.
>> >
>> >This is my way of saying basically that this would be a 
>> great project 
>> >for someone who is looking to get involved in XmlBeans and 
>in Apache 
>> >and open-source in general.
>> >
>> >Radu
>> >
>> >-----Original Message-----
>> >From: Bailey, Brian P [mailto:brian.p.bailey@lmco.com]
>> >Sent: Thursday, August 17, 2006 3:35 PM
>> >To: user@xmlbeans.apache.org
>> >Subject: How to use XmlObject.valueEquals
>> >
>> >Hi, I'm using xmlbeans 2.1.0 and have a question about comparing 
>> >XmlObjects for equivalency. I have the following schema:
>> >
>> ><schema xmlns="http://www.w3.org/2001/XMLSchema"
>> >xmlns:tns="http://myself.com/data"
>> >targetNamespace="http://myself.com/data">
>> >  <complexType name="location2DType">
>> >    <sequence>
>> >      <element name="latitude" type="double"/>
>> >      <element name="longitude" type="double"/>
>> >    </sequence>
>> >  </complexType>
>> >  <element name="Location2D" type="tns:location2DType"/> </schema>
>> >
>> >
>> >I would like to compare two documents based on this schema 
>> and see if 
>> >they are equivalent (ignoring element prefixes, attribute ordering,

>> >etc.). I thought I might use XmlObject.valueEquals(), but 
>> that doesn't 
>> >seem to work. For example, when running the following code, I see
>> >"valueEquals: true" even though the latitude value is different:
>> >
>> >      Location2DDocument doc1 =
>> >Location2DDocument.Factory.newInstance();
>> >      doc1.addNewLocation2D();
>> >      doc1.getLocation2D().setLatitude(34.2);
>> >      doc1.getLocation2D().setLongitude(84.8);
>> >      
>> >      Location2DDocument doc2 =
>> >Location2DDocument.Factory.newInstance();
>> >      doc2.addNewLocation2D();
>> >      doc2.getLocation2D().setLatitude(95.2);
>> >      doc2.getLocation2D().setLongitude(84.8);
>> >      
>> >      System.out.println("valueEquals: " + doc1.valueEquals(doc2));
>> >
>> >What should I use to compare two xml beans for equivalency?
>> >
>> 
>>---------------------------------------------------------------------
>> >To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
>> >For additional commands, e-mail: user-help@xmlbeans.apache.org
>> >
>> >_____________________________________________________________
>> _________
>> _
>> >Notice:  This email message, together with any attachments, may
>> contain
>> >information  of  BEA Systems,  Inc.,  its subsidiaries  and
>> affiliated
>> >entities,  that may be confidential,  proprietary,  copyrighted
>> and/or
>> >legally privileged, and is intended solely for the use of the 
>> >individual or entity named in this message. If you are not 
>> the intended
>> recipient,
>> >and have received this message in error, please immediately return
>> this
>> >by email and then delete it.
>> >
>> 
>>---------------------------------------------------------------------
>> >To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
>> >For additional commands, e-mail: user-help@xmlbeans.apache.org
>> >
>> >
>> 
>>
---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
>> For additional commands, e-mail: user-help@xmlbeans.apache.org
>> 
>> 
>
>Notice:  This email message, together with any attachments, 
>may contain information  of  BEA Systems,  Inc.,  its 
>subsidiaries  and  affiliated entities,  that may be 
>confidential,  proprietary,  copyrighted  and/or legally 
>privileged, and is intended solely for the use of the 
>individual or entity named in this message. If you are not the 
>intended recipient, and have received this message in error, 
>please immediately return this by email and then delete it.
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
>For additional commands, e-mail: user-help@xmlbeans.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


RE: XmlBeans for schema aware comparisons

Posted by Radu Preotiuc-Pietro <ra...@bea.com>.
No progress has been made since then.

But with XMLBeans, say you have objects obj1 and obj2, you have access
to the Schema type for each XmlObject, (SchemaType obj.schemaType()).
SchemaType contains all the information about that type from the Schema.
XmlCursor on the other hand (XmlCuror obj.newCursor()) contains all the
information from the instance document, so with these you should be able
to implement any comparison algorithm.

Just out of curiosity, could you give a brief overview of what algorithm
you have in mind (like, are comments relevant, is the order of
attributes relevant etc)?

Radu

> -----Original Message-----
> From: Baker, Jon [mailto:bakerj@mitre.org] 
> Sent: Wednesday, June 13, 2007 9:46 AM
> To: user@xmlbeans.apache.org
> Subject: XmlBeans for schema aware comparisons
> 
> In august of 2006 a question was asked about using XmlBeans 
> for a schema aware comparison of two XmlObjects. Has any 
> progress been made on this capability since then? How hard is 
> it to implement in XmlBeans?
> In your response to the question you mentioned that XmlBeans 
> has the foundation for this code already implemented. Where 
> can I find out more information so that I can decide if I 
> want to try to add this capability to XmlBeans?
> 
> Thanks,
> 
> Jon
> 
> ============================================
> Jonathan O. Baker
> The MITRE Corporation
> Email: bakerj@mitre.org
> 
> 
>  
> 
> >-----Original Message-----
> >From: Radu Preotiuc-Pietro [mailto:radup@bea.com]
> >Sent: Wednesday, August 30, 2006 1:10 PM
> >To: user@xmlbeans.apache.org
> >Subject: RE: How to use XmlObject.valueEquals
> >
> >The JavaDoc for .valueEquals() is fairly detailed but forgets to 
> >mention one thing: that .valueEquals() is only implemented 
> for simple 
> >type values.
> >
> >Actually, Schema-aware comparison is something that a lot of people 
> >find valuable and XmlBeans has all the foundation work done 
> to support 
> >something like that, unfortunately we weren't able to find an 
> >interested person that could contribute the code to do it.
> >
> >This is my way of saying basically that this would be a 
> great project 
> >for someone who is looking to get involved in XmlBeans and in Apache 
> >and open-source in general.
> >
> >Radu
> >
> >-----Original Message-----
> >From: Bailey, Brian P [mailto:brian.p.bailey@lmco.com]
> >Sent: Thursday, August 17, 2006 3:35 PM
> >To: user@xmlbeans.apache.org
> >Subject: How to use XmlObject.valueEquals
> >
> >Hi, I'm using xmlbeans 2.1.0 and have a question about comparing 
> >XmlObjects for equivalency. I have the following schema:
> >
> ><schema xmlns="http://www.w3.org/2001/XMLSchema"
> >xmlns:tns="http://myself.com/data"
> >targetNamespace="http://myself.com/data">
> >  <complexType name="location2DType">
> >    <sequence>
> >      <element name="latitude" type="double"/>
> >      <element name="longitude" type="double"/>
> >    </sequence>
> >  </complexType>
> >  <element name="Location2D" type="tns:location2DType"/> </schema>
> >
> >
> >I would like to compare two documents based on this schema 
> and see if 
> >they are equivalent (ignoring element prefixes, attribute ordering, 
> >etc.). I thought I might use XmlObject.valueEquals(), but 
> that doesn't 
> >seem to work. For example, when running the following code, I see
> >"valueEquals: true" even though the latitude value is different:
> >
> >      Location2DDocument doc1 =
> >Location2DDocument.Factory.newInstance();
> >      doc1.addNewLocation2D();
> >      doc1.getLocation2D().setLatitude(34.2);
> >      doc1.getLocation2D().setLongitude(84.8);
> >      
> >      Location2DDocument doc2 =
> >Location2DDocument.Factory.newInstance();
> >      doc2.addNewLocation2D();
> >      doc2.getLocation2D().setLatitude(95.2);
> >      doc2.getLocation2D().setLongitude(84.8);
> >      
> >      System.out.println("valueEquals: " + doc1.valueEquals(doc2));
> >
> >What should I use to compare two xml beans for equivalency?
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
> >For additional commands, e-mail: user-help@xmlbeans.apache.org
> >
> >_____________________________________________________________
> _________
> _
> >Notice:  This email message, together with any attachments, may
> contain
> >information  of  BEA Systems,  Inc.,  its subsidiaries  and
> affiliated
> >entities,  that may be confidential,  proprietary,  copyrighted
> and/or
> >legally privileged, and is intended solely for the use of the 
> >individual or entity named in this message. If you are not 
> the intended
> recipient,
> >and have received this message in error, please immediately return
> this
> >by email and then delete it.
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
> >For additional commands, e-mail: user-help@xmlbeans.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
> For additional commands, e-mail: user-help@xmlbeans.apache.org
> 
> 

Notice:  This email message, together with any attachments, may contain information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated entities,  that may be confidential,  proprietary,  copyrighted  and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


XmlBeans for schema aware comparisons

Posted by "Baker, Jon" <ba...@mitre.org>.
In august of 2006 a question was asked about using XmlBeans for a
schema aware comparison of two XmlObjects. Has any progress been made
on this capability since then? How hard is it to implement in XmlBeans?
In your response to the question you mentioned that XmlBeans has the
foundation for this code already implemented. Where can I find out more
information so that I can decide if I want to try to add this
capability to XmlBeans?

Thanks,

Jon

============================================
Jonathan O. Baker
The MITRE Corporation
Email: bakerj@mitre.org


 

>-----Original Message-----
>From: Radu Preotiuc-Pietro [mailto:radup@bea.com] 
>Sent: Wednesday, August 30, 2006 1:10 PM
>To: user@xmlbeans.apache.org
>Subject: RE: How to use XmlObject.valueEquals
>
>The JavaDoc for .valueEquals() is fairly detailed but forgets 
>to mention
>one thing: that .valueEquals() is only implemented for simple type
>values.
>
>Actually, Schema-aware comparison is something that a lot of 
>people find
>valuable and XmlBeans has all the foundation work done to support
>something like that, unfortunately we weren't able to find an 
>interested
>person that could contribute the code to do it.
>
>This is my way of saying basically that this would be a great project
>for someone who is looking to get involved in XmlBeans and in 
>Apache and
>open-source in general.
>
>Radu 
>
>-----Original Message-----
>From: Bailey, Brian P [mailto:brian.p.bailey@lmco.com] 
>Sent: Thursday, August 17, 2006 3:35 PM
>To: user@xmlbeans.apache.org
>Subject: How to use XmlObject.valueEquals
>
>Hi, I'm using xmlbeans 2.1.0 and have a question about comparing
>XmlObjects for equivalency. I have the following schema:
>
><schema xmlns="http://www.w3.org/2001/XMLSchema"
>xmlns:tns="http://myself.com/data"
>targetNamespace="http://myself.com/data">
>  <complexType name="location2DType">
>    <sequence>
>      <element name="latitude" type="double"/>
>      <element name="longitude" type="double"/>
>    </sequence>
>  </complexType>
>  <element name="Location2D" type="tns:location2DType"/> </schema>
>
>
>I would like to compare two documents based on this schema and see if
>they are equivalent (ignoring element prefixes, attribute ordering,
>etc.). I thought I might use XmlObject.valueEquals(), but that doesn't
>seem to work. For example, when running the following code, I see
>"valueEquals: true" even though the latitude value is different:
>
>      Location2DDocument doc1 =
>Location2DDocument.Factory.newInstance();
>      doc1.addNewLocation2D();
>      doc1.getLocation2D().setLatitude(34.2);
>      doc1.getLocation2D().setLongitude(84.8);
>      
>      Location2DDocument doc2 =
>Location2DDocument.Factory.newInstance();
>      doc2.addNewLocation2D();
>      doc2.getLocation2D().setLatitude(95.2);
>      doc2.getLocation2D().setLongitude(84.8);
>      
>      System.out.println("valueEquals: " + doc1.valueEquals(doc2));
>
>What should I use to compare two xml beans for equivalency?
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
>For additional commands, e-mail: user-help@xmlbeans.apache.org
>
>______________________________________________________________________
_
>Notice:  This email message, together with any attachments, may
contain
>information  of  BEA Systems,  Inc.,  its subsidiaries  and
affiliated
>entities,  that may be confidential,  proprietary,  copyrighted
and/or
>legally privileged, and is intended solely for the use of the 
>individual
>or entity named in this message. If you are not the intended
recipient,
>and have received this message in error, please immediately return
this
>by email and then delete it.
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
>For additional commands, e-mail: user-help@xmlbeans.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


RE: How to use XmlObject.valueEquals

Posted by Radu Preotiuc-Pietro <ra...@bea.com>.
The JavaDoc for .valueEquals() is fairly detailed but forgets to mention
one thing: that .valueEquals() is only implemented for simple type
values.

Actually, Schema-aware comparison is something that a lot of people find
valuable and XmlBeans has all the foundation work done to support
something like that, unfortunately we weren't able to find an interested
person that could contribute the code to do it.

This is my way of saying basically that this would be a great project
for someone who is looking to get involved in XmlBeans and in Apache and
open-source in general.

Radu 

-----Original Message-----
From: Bailey, Brian P [mailto:brian.p.bailey@lmco.com] 
Sent: Thursday, August 17, 2006 3:35 PM
To: user@xmlbeans.apache.org
Subject: How to use XmlObject.valueEquals

Hi, I'm using xmlbeans 2.1.0 and have a question about comparing
XmlObjects for equivalency. I have the following schema:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://myself.com/data"
targetNamespace="http://myself.com/data">
  <complexType name="location2DType">
    <sequence>
      <element name="latitude" type="double"/>
      <element name="longitude" type="double"/>
    </sequence>
  </complexType>
  <element name="Location2D" type="tns:location2DType"/> </schema>


I would like to compare two documents based on this schema and see if
they are equivalent (ignoring element prefixes, attribute ordering,
etc.). I thought I might use XmlObject.valueEquals(), but that doesn't
seem to work. For example, when running the following code, I see
"valueEquals: true" even though the latitude value is different:

      Location2DDocument doc1 =
Location2DDocument.Factory.newInstance();
      doc1.addNewLocation2D();
      doc1.getLocation2D().setLatitude(34.2);
      doc1.getLocation2D().setLongitude(84.8);
      
      Location2DDocument doc2 =
Location2DDocument.Factory.newInstance();
      doc2.addNewLocation2D();
      doc2.getLocation2D().setLatitude(95.2);
      doc2.getLocation2D().setLongitude(84.8);
      
      System.out.println("valueEquals: " + doc1.valueEquals(doc2));

What should I use to compare two xml beans for equivalency?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org

_______________________________________________________________________
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org