RE: jdom-interest Digest, Vol 49, Issue 6

View: New views
1 Messages — Rating Filter:   Alert me  

Parent Message unknown RE: jdom-interest Digest, Vol 49, Issue 6

by Martinez, Will :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Fabio,

I encountered the same problem, if not similar to what you are describing.  I submitted my question to this group but did not receive a reply.

 

My next step is to use Xpath.  I had been busy on other tasks, but plan to tackle Xpath today.  I am new to Xpath, so we'll see how far I get.

 

This is what I had posted:

 

I have this xml file that I need to access the Text "Dish."  I have listed what semi works and does not work.  Please see attached file.

 

<CatParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <CatInputs>

        <InputValue Name="Food">

            <From>MotherCat</From>

            <Where>

                <On>Dish</On>

            </Where>

            <Get Name="Tom">WHITE</Get>

            <Get Name="Jerry">BLACK</Get>

            <Get Name="Sam">GREY</Get>

        </InputValue>

 

descendant_2 = Where

secondDescendant_1 = On

descendant_3 = Get

attributeValue = Name

 

With this syntax, I am able to get at Dish, but that is because an attribute is not associated with

the element On.

String secondDescendant1Data = subParentElement.getChild(descendant_2).getChildText(secondDescendant_1);

System.out.print("\n secondDescendant1 Text: " + secondDescendant1Data);// child's descendant2 Where Dish

 

I get WHITE with this, but I do not have a way of getting to the next element  BLACK.

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getValue();//This works!

 

I get Tom with this syntax;

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getAttribute(attributeValue).getValue();

 

 

With this syntax I get the actual attribute: Name;

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getAttribute(attributeValue).getName();//Name

 

I need syntax like this;

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getAttributeValue(attributeValue).getText(of Tom);

 

But there isnt an API method that works!

Might you be able to suggest a solution?

 

-----Original Message-----
From: jdom-interest-bounces@... [mailto:jdom-interest-bounces@...] On Behalf Of jdom-interest-request@...
Sent: Sunday, November 23, 2008 1:00 PM
To: jdom-interest@...
Subject: jdom-interest Digest, Vol 49, Issue 6

 

Send jdom-interest mailing list submissions to

      jdom-interest@...

 

To subscribe or unsubscribe via the World Wide Web, visit

      http://www.jdom.org/mailman/listinfo/jdom-interest

or, via email, send a message with subject or body 'help' to

      jdom-interest-request@...

 

You can reach the person managing the list at

      jdom-interest-owner@...

 

When replying, please edit your Subject line so it is more specific

than "Re: Contents of jdom-interest digest..."

 

 

Today's Topics:

 

   1. using JDOM 1.1 on Android's Dalvik VM (Sean Sullivan)

   2. Jdom with XMI Files (Fabio Leal)

   3. RE: Jdom with XMI Files (Michael Kay)

   4. RE: Jdom with XMI Files (Michael Kay)

 

 

----------------------------------------------------------------------

 

Message: 1

Date: Sat, 22 Nov 2008 16:05:46 -0800

From: "Sean Sullivan" <sean@...>

Subject: [jdom-interest] using JDOM 1.1 on Android's Dalvik VM

To: jdom-interest@...

Message-ID:

      <3a0630af0811221605x6a5d6ab6k4092cc5147e6f18@...>

Content-Type: text/plain; charset="iso-8859-1"

 

I'm trying to use JDOM 1.1 on the Android 1.0 platform.

 

The Android platform supports most Java 5 API's.  However, java.rmi.*

classes are not part of the Android platform.

 

When I use JDOM 1.1 on Android, I see this error:

 

 

W/dalvikvm(  327): VFY: unable to resolve check-cast 98

(Ljava/rmi/RemoteException;) in Lorg/jdom/JDOMException;

W/dalvikvm(  327): VFY:  rejecting opcode 0x1f at 0x003d

W/dalvikvm(  327): VFY:  rejected

Lorg/jdom/JDOMException;.getNestedException

(Ljava/lang/Throwable;)Ljava/lang/Throwable;

W/dalvikvm(  327): Verifier rejected class Lorg/jdom/JDOMException;

D/AndroidRuntime(  327): Shutting down VM

W/dalvikvm(  327): threadid=3: thread exiting with uncaught exception

(group=0x40010e28)

E/AndroidRuntime(  327): Uncaught handler: thread main exiting due to

uncaught exception

E/AndroidRuntime(  327): java.lang.VerifyError: org.jdom.JDOMException

 

 

I looked at the JDOM source code and noticed that org.jdom.JDOMException

uses java.rmi.RemoteException:

 

        if (parent instanceof RemoteException) {

            return ((RemoteException)parent).detail;

        }

 

 

In order for this code to run on Android, we would need to eliminate

java.rmi.RemoteException from JDOMException.java

 

One possible fix (?) is to use reflection to retrieve the "detail" field:

 

        if (parent.getClass().getName().startsWith("java.rmi.")) {

            try    {

                Field f = parent.getClass().getField("detail");

                return (Throwable) f.get(parent);

            } catch (Exception ignore) {

                // ignored

            }

        }

 

Using 'startsWith' is a hack. The intent is to detect

java.rmi.RemoteException as well as all

subclasses of java.rmi.RemoteException from the java.rmi pacakge.

 

  http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html

 

Is there a better way to code this?  Any other comments?

 

Sean

-------------- next part --------------

An HTML attachment was scrubbed...

URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20081122/3df43c07/attachment-0001.htm

 

------------------------------

 

Message: 2

Date: Sun, 23 Nov 2008 00:09:34 -0300

From: "Fabio Leal" <fabioleal.ufcg@...>

Subject: [jdom-interest] Jdom with XMI Files

To: jdom-interest@...

Message-ID:

      <acc6a2a30811221909m21da7d26n77daf2a98b860e1d@...>

Content-Type: text/plain; charset="iso-8859-1"

 

Hy everybody...

I'm trying to manipulate a XMI file with Jdom, and I have experienced some

difficulties doing it.

 

For example:

All the subnodes of the root Element have the "same name", but have

different attributes.

How can I choose a specific "Element", by specifying it's attributes?

 

Another point is that the attributes started with "xmi:" aren't recognized

by Jdom. I've already tested a bunch of things to make it recognizable, but

all of them were unsuccessful. =/

 

I think that my problems are quite easy to solve, but I haven't found

anything that could help me in the web.

If Jdom isn't a great tool with XMI, could you suggest me other?

 

 

*Xmi file that i want to read:

http://www.omg.org/spec/UML/20061001/Superstructure.cmof

 

 

Cheers,

Fábio Leal

-------------- next part --------------

An HTML attachment was scrubbed...

URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20081123/08303f56/attachment-0001.htm

 

------------------------------

 

Message: 3

Date: Sun, 23 Nov 2008 13:58:22 -0000

From: "Michael Kay" <mike@...>

Subject: RE: [jdom-interest] Jdom with XMI Files

To: "'Fabio Leal'" <fabioleal.ufcg@...>,

      <jdom-interest@...>

Message-ID: <373A40C0FF5B4348A9D7581488867D89@Sealion>

Content-Type: text/plain; charset="iso-8859-1"

 

It's a good idea to show the code you were using, then people can tell you

where you went wrong.

 

It looks a bit as if you haven't grasped how namespaces work, but without

seeing your attempts, that's a guess.

 

Michael Kay

http://www.saxonica.com/

 

 

  _____ 

 

From: jdom-interest-bounces@... [mailto:jdom-interest-bounces@...]

On Behalf Of Fabio Leal

Sent: 23 November 2008 03:10

To: jdom-interest@...

Subject: [jdom-interest] Jdom with XMI Files

 

 

Hy everybody...

I'm trying to manipulate a XMI file with Jdom, and I have experienced some

difficulties doing it.

 

For example:

All the subnodes of the root Element have the "same name", but have

different attributes.

How can I choose a specific "Element", by specifying it's attributes?

 

Another point is that the attributes started with "xmi:" aren't recognized

by Jdom. I've already tested a bunch of things to make it recognizable, but

all of them were unsuccessful. =/

 

I think that my problems are quite easy to solve, but I haven't found

anything that could help me in the web. 

If Jdom isn't a great tool with XMI, could you suggest me other?

 

 

*Xmi file that i want to read:

http://www.omg.org/spec/UML/20061001/Superstructure.cmof

 

 

Cheers,

Fábio Leal

 

 

 

-------------- next part --------------

An HTML attachment was scrubbed...

URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20081123/d56b168f/attachment-0001.htm

 

------------------------------

 

Message: 4

Date: Sun, 23 Nov 2008 15:07:26 -0000

From: "Michael Kay" <mike@...>

Subject: RE: [jdom-interest] Jdom with XMI Files

To: "'Fabio Leal'" <fabioleal.ufcg@...>

Cc: jdom-interest@...

Message-ID: <B5CD911C957041ACA1914AF3B58A06C9@Sealion>

Content-Type: text/plain;     charset="US-ASCII"

 

>

> You were right. I am quite confuse when manipulating namespaces.

> Could you give me a help there?

 

Please don't go off-list. When people search the archives, they want to find

the answers, not only the questions!

>

> For example, how could I get to the Element:

>

>  <ownedMember xmi:type="cmof:Package" xmi:id="StateMachines"

> name="StateMachines">

>

> (this is a root's child) without using

> rootElement.getchildren() and iterating over it?

 

Use Element.getChild(name, namespace)

>

> How could I get its child attributes without using

> myElement.getAttributes() and iterating over it?

 

Use Element.getAttribute(name, namespace)

 

Michael Kay

http://www.saxonica.com/

 

 

 

------------------------------

 

_______________________________________________

To control your jdom-interest membership:

http://www.jdom.org/mailman/options/jdom-interest/youraddr@...

 

End of jdom-interest Digest, Vol 49, Issue 6

********************************************


_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/youraddr@...