Author: ips
Date: Thu Apr 7 10:46:41 2005
New Revision: 160422
URL: http://svn.apache.org/viewcvs?view=rev&rev=160422
Log:
cleaned up addChildElement() and its test
Modified:
incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java
Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java?view=diff&r1=160421&r2=160422
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
(original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java Thu
Apr 7 10:46:41 2005
@@ -20,9 +20,9 @@
import org.apache.ws.util.i18n.MessagesImpl;
import org.apache.xmlbeans.SchemaType;
import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
-import org.apache.xmlbeans.XmlException;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;
@@ -338,20 +338,22 @@
XmlObject xBean )
{
parentXBean = getRootElement( parentXBean );
+ xBean = getRootElement( xBean );
XmlCursor parentCursor = parentXBean.newCursor();
- if ( parentCursor.toLastChild() )
+ if ( parentCursor.toLastChild() ) // has children
{
parentCursor.toEndToken();
parentCursor.toNextToken();
}
- parentCursor.toEndToken();
- xBean = getRootElement( xBean );
+ else // childless
+ {
+ parentCursor.toEndToken();
+ }
parentCursor.insertElement( getName( xBean ) );
parentCursor.toPrevSibling();
XmlObject childXBean = parentCursor.getObject();
parentCursor.dispose();
- childXBean.set( xBean );
- return childXBean;
+ return childXBean.set( xBean );
}
/**
@@ -364,16 +366,20 @@
QName name )
{
parentXBean = getRootElement( parentXBean );
- XmlCursor xCursor = parentXBean.newCursor();
- if ( xCursor.toLastChild() )
+ XmlCursor parentCursor = parentXBean.newCursor();
+ if ( parentCursor.toLastChild() ) // has children
+ {
+ parentCursor.toEndToken();
+ parentCursor.toNextToken();
+ }
+ else // childless
{
- xCursor.toEndToken();
+ parentCursor.toEndToken();
}
- xCursor.toNextToken();
- xCursor.insertElement( name );
- xCursor.toPrevSibling();
- XmlObject childXBean = xCursor.getObject();
- xCursor.dispose();
+ parentCursor.insertElement( name );
+ parentCursor.toPrevSibling();
+ XmlObject childXBean = parentCursor.getObject();
+ parentCursor.dispose();
return childXBean;
}
@@ -576,6 +582,7 @@
String localName = value.substring( colonIndex + 1 );
return new QName( nsURI, localName );
}
+
/**
* Makes and returns a copy of the specified XMLBean.
*
@@ -589,20 +596,18 @@
{
return XmlObject.Factory.parse( srcXBean.xmlText( new
XmlOptions().setSaveOuter() ) );
}
- catch ( XmlException e )
+ catch ( XmlException xe )
{
- e.printStackTrace(); //To change body of catch statement use File
| Settings | File Templates.
+ throw new RuntimeException( xe );
}
- XmlCursor srcCursor = srcXBean.newCursor( );
+ /*XmlCursor srcCursor = srcXBean.newCursor( );
// create an object of the appropriate type to copy to
XmlObject destXBean = XmlObject.Factory.newInstance( new XmlOptions(
).setDocumentType( srcXBean.schemaType() ) );
- //XmlObject destXBean = XmlObject.Factory.newInstance( );
XmlCursor destCursor = destXBean.newCursor( );
// move into the document
- //destCursor.toStartDoc( ); // TODO: I think doing this is wrong,
since it assumes the src xbean is a document
destCursor.toNextToken( );
// copy the xml into the new document
@@ -612,7 +617,7 @@
destCursor.dispose( );
srcCursor.dispose( );
- return destXBean;
+ return destXBean;*/
}
/**
Modified:
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java?view=diff&r1=160421&r2=160422
==============================================================================
---
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java
(original)
+++
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java
Thu Apr 7 10:46:41 2005
@@ -22,14 +22,13 @@
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import org.apache.xmlbeans.XmlString;
-import org.apache.xmlbeans.XmlDateTime;
import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSBaseFaults12Draft01.BaseFaultType;
+import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceLifetime12Draft01.CurrentTimeDocument;
import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.GetResourcePropertyDocument;
import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryExpressionDocument;
import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryExpressionType;
import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.ResourcePropertyValueChangeNotificationDocument;
import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.ResourcePropertyValueChangeNotificationType;
-import
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceLifetime12Draft01.CurrentTimeDocument;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceDocument;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
import org.xmlsoap.schemas.ws.x2003.x03.addressing.ReferencePropertiesType;
@@ -73,12 +72,11 @@
ResourcePropertyValueChangeNotificationType
resourcePropertyValueChangeNotificationType =
ResourcePropertyValueChangeNotificationType.Factory.newInstance();
ResourcePropertyValueChangeNotificationType.OldValue oldValue =
resourcePropertyValueChangeNotificationType.addNewOldValue();
XmlBeanUtils.addChildElement( oldValue, XmlObject.Factory.parse(
"<foo/>" ) );
- System.out.println( oldValue.xmlText( new XmlOptions( ).setSaveOuter()
) );
XmlObject[] childElems = XmlBeanUtils.getChildElements( oldValue, new
QName( "foo" ) );
assertEquals( 1, childElems.length );
XmlObject fooElem = childElems[0];
childElems = XmlBeanUtils.getChildElements( fooElem, new QName( "foo"
) );
- //assertEquals( 0, childElems.length );
+ //assertEquals( 0, childElems.length ); // a bug in XmlBeans causes
this assertion to fail
resourcePropertyValueChangeNotificationType =
ResourcePropertyValueChangeNotificationType.Factory.newInstance();
oldValue =
resourcePropertyValueChangeNotificationType.addNewOldValue();
@@ -86,11 +84,15 @@
currentTimeDocument.setCurrentTime( Calendar.getInstance( ) );
XmlObject newXBean = XmlBeanUtils.copyXmlBean(
currentTimeDocument.xgetCurrentTime() );
XmlBeanUtils.addChildElement( oldValue, newXBean );
- System.out.println( oldValue.xmlText( new XmlOptions( ).setSaveOuter()
) );
-
- final QName elemName = SushiPropertyQNames.IKA;
- final String elemValue = "whatever";
- final XmlObject xBean = XmlObject.Factory.parse(
+ childElems = XmlBeanUtils.getChildElements( oldValue, new QName(
"http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd",
"CurrentTime" ) );
+ assertEquals( 1, childElems.length );
+ XmlObject currentTimeElem = childElems[0];
+ childElems = XmlBeanUtils.getChildElements( currentTimeElem, new
QName(
"http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd",
"CurrentTime" ) );
+ assertEquals( 0, childElems.length );
+
+ QName elemName = SushiPropertyQNames.IKA;
+ String elemValue = "whatever";
+ XmlObject xBean = XmlObject.Factory.parse(
"<" + elemName.getLocalPart() + " xmlns=\"" +
elemName.getNamespaceURI() + "\">" + elemValue + "</" +
elemName.getLocalPart() +
">" );
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]