CVS Update: xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit
Aleksander Andrzej Slominski <[email protected]> Thu, 10 Jul 2003 13:04:57 -0500 (EST)
| Newsgroups | gmane.text.xml.xmlpull.devel |
|---|---|
| Message-ID | <[email protected]> |
aslom 03/07/10 13:04:57
Modified: addons/java/wrapper/src/org/xmlpull/v1/wrapper
XmlPullParserWrapper.java XmlSerializerWrapper.java
addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic
StaticXmlPullParserWrapper.java
StaticXmlSerializerWrapper.java
addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit
TestXmlPullWrapper.java
Log:
more javadocs, added processing xsi:nil for xsd:string, fixed method name
Revision Changes Path
1.8 +9 -1 xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/XmlPullParserWrapper.java
Index: XmlPullParserWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/XmlPullParserWrapper.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -t -w -r1.7 -r1.8
--- XmlPullParserWrapper.java 10 Jul 2003 17:02:30 -0000 1.7
+++ XmlPullParserWrapper.java 10 Jul 2003 18:04:57 -0000 1.8
@@ -19,6 +19,7 @@
public interface XmlPullParserWrapper extends XmlPullParser {
public static final String NO_NAMESPACE = "";
public static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
+ public static final String XSD_NS = "http://www.w3.org/2001/XMLSchema";
/**
* Return value of attribute with given name and no namespace.
@@ -155,7 +156,14 @@
*/
public int readInt() throws XmlPullParserException, IOException;
- //* Check for xsi:nil and if not
+ /**
+ * Check for xsi:nil and if it has value 'true' returns null
+ * as described in
+ * <a href="http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions">XML Schemas
+ * Part 1</a>
+ * otherwise it calls nextText().
+ * After this method executed the parser is positioned on END_TAG.
+ */
public String readString() throws XmlPullParserException, IOException;
/**
1.7 +5 -4 xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/XmlSerializerWrapper.java
Index: XmlSerializerWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/XmlSerializerWrapper.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -t -w -r1.6 -r1.7
--- XmlSerializerWrapper.java 1 Jul 2003 19:02:46 -0000 1.6
+++ XmlSerializerWrapper.java 10 Jul 2003 18:04:57 -0000 1.7
@@ -15,8 +15,9 @@
* @author Naresh Bhatia
*/
public interface XmlSerializerWrapper extends XmlSerializer {
- public static final String NO_NAMESPACE = "";
- public static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
+ public static final String NO_NAMESPACE = XmlPullParserWrapper.NO_NAMESPACE;
+ public static final String XSI_NS = XmlPullParserWrapper.XSI_NS;
+ public static final String XSD_NS = XmlPullParserWrapper.XSD_NS;
/**
* Get namespace that is used as default when no namespace parameter is used for
@@ -75,7 +76,7 @@
// set of methods to make easy to write XSD types
/**
- * Write as text value of argument.
+ * Write as text value of argument (just calls text!).
*/
public void writeDouble(double d)
throws XmlPullParserException, IOException, IllegalArgumentException;
@@ -97,7 +98,7 @@
throws XmlPullParserException, IOException, IllegalArgumentException;
public void writeIntElement(String namespace, String name, int i)
throws XmlPullParserException, IOException, IllegalArgumentException;
- public void wiriteStringElement(String namespace, String name, String s)
+ public void writeStringElement(String namespace, String name, String s)
throws XmlPullParserException, IOException, IllegalArgumentException;
}
1.8 +5 -0 xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic/StaticXmlPullParserWrapper.java
Index: StaticXmlPullParserWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic/StaticXmlPullParserWrapper.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -t -w -r1.7 -r1.8
--- StaticXmlPullParserWrapper.java 8 Jul 2003 21:17:34 -0000 1.7
+++ StaticXmlPullParserWrapper.java 10 Jul 2003 18:04:57 -0000 1.8
@@ -273,6 +273,11 @@
}
public String readString() throws XmlPullParserException, IOException {
+ String xsiNil = pp.getAttributeValue(XSD_NS, "nil");
+ if("true".equals(xsiNil)) {
+ nextEndTag();
+ return null;
+ }
return pp.nextText();
}
1.10 +6 -2 xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic/StaticXmlSerializerWrapper.java
Index: StaticXmlSerializerWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/src/org/xmlpull/v1/wrapper/classic/StaticXmlSerializerWrapper.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -t -w -r1.9 -r1.10
--- StaticXmlSerializerWrapper.java 1 Jul 2003 19:11:50 -0000 1.9
+++ StaticXmlSerializerWrapper.java 10 Jul 2003 18:04:57 -0000 1.10
@@ -411,11 +411,15 @@
xs.endTag(namespace, name);
}
- public void wiriteStringElement(String namespace, String name, String s)
+ public void writeStringElement(String namespace, String name, String s)
throws XmlPullParserException, IOException, IllegalArgumentException
{
xs.startTag(namespace, name);
+ if(s == null) {
+ xs.attribute(XSD_NS, "nil", "true");
+ } else {
writeString(s);
+ }
xs.endTag(namespace, name);
}
1.5 +46 -1 xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit/TestXmlPullWrapper.java
Index: TestXmlPullWrapper.java
===================================================================
RCS file: /l/extreme/cvspub/xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper/junit/TestXmlPullWrapper.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -t -w -r1.4 -r1.5
--- TestXmlPullWrapper.java 19 May 2003 14:43:03 -0000 1.4
+++ TestXmlPullWrapper.java 10 Jul 2003 18:04:57 -0000 1.5
@@ -6,6 +6,8 @@
//import junit.framework.Test;
import java.io.IOException;
import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.xmlpull.v1.XmlPullParser;
@@ -14,7 +16,6 @@
import org.xmlpull.v1.wrapper.XmlPullParserWrapper;
import org.xmlpull.v1.wrapper.XmlPullWrapperFactory;
import org.xmlpull.v1.wrapper.XmlSerializerWrapper;
-import java.io.StringWriter;
/**
* Test some wrapper utility operations.
@@ -159,6 +160,50 @@
assertEquals(pw.next(), XmlPullParser.END_DOCUMENT);
}
+
+ public void testXsdTypes() throws IOException, XmlPullParserException {
+ XmlSerializerWrapper xs = wrappedFactory.newSerializerWrapper();
+ Writer out = new StringWriter();
+ xs.setOutput(out);
+ xs.startTag("test");
+ xs.writeStringElement(null, "s1", "foo");
+ xs.writeStringElement(null, "s2", "");
+ xs.writeStringElement(null, "s1", null);
+ xs.writeIntElement(null, "i1", 0);
+ xs.writeIntElement(null, "i2", 100);
+ xs.writeIntElement(null, "imax", Integer.MAX_VALUE);
+ xs.writeIntElement(null, "imin", Integer.MIN_VALUE);
+ xs.writeDoubleElement(null, "d1", 0.0);
+ xs.writeDoubleElement(null, "d2", -100.0);
+ xs.endDocument();
+ //System.err.println(getClass()+" s="+out.toString());
+
+ XmlPullParserWrapper pw = wrappedFactory.newPullParserWrapper();
+ pw.setInput(new StringReader(out.toString()));
+ pw.nextStartTag("test");
+ pw.nextTag();
+ String s1 = pw.readStringElemet(null, "s1");
+ assertEquals("foo", s1);
+ pw.nextTag();
+ String s2 = pw.readStringElemet(null, "s2");
+ assertEquals("", s2);
+ pw.nextTag();
+ s1 = pw.readStringElemet(null, "s1");
+ assertEquals(null, s1);
+ pw.nextTag();
+ assertEquals(0, pw.readIntElement(null, "i1"));
+ pw.nextTag();
+ assertEquals(100, pw.readIntElement(null, "i2"));
+ pw.nextTag();
+ assertEquals(Integer.MAX_VALUE, pw.readIntElement(null, "imax"));
+ pw.nextTag();
+ assertEquals(Integer.MIN_VALUE, pw.readIntElement(null, "imin"));
+ pw.nextTag();
+ assertEquals(0.0, pw.readDoubleElement(null, "d1"), 0.00001);
+ pw.nextTag();
+ assertEquals(-100.0, pw.readDoubleElement(null, "d2"), 0.00001);
+ }
+
private static String printable(char ch) {
if(ch == '\n') {
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Coral Calcium for Greater Health. 1 month supply - $23.95
(1 bottle, 90 tablets, 400mg each with Magnesium & Vitamin D)
http://www.challengerone.com/t/l.asp?cid=2805&lp=calcium2.asp
http://us.click.yahoo.com/mcIe3D/v9VGAA/ySSFAA/2U_rlB/TM
---------------------------------------------------------------------~->
To unsubscribe from this group, send an email to:
[email protected]
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/