summaryrefslogtreecommitdiffstats
path: root/xml
Commit message (Collapse)AuthorAgeFilesLines
* am acf4a11b: Merge "Implementing almost all of Document.normalizeDocument()."Jesse Wilson2010-03-0110-48/+446
|\ | | | | | | | | | | | | Merge commit 'acf4a11bf201ccdf4a4d2b429d33757556cdc0ed' into dalvik-dev * commit 'acf4a11bf201ccdf4a4d2b429d33757556cdc0ed': Implementing almost all of Document.normalizeDocument().
| * Implementing almost all of Document.normalizeDocument().Jesse Wilson2010-03-0110-48/+446
| | | | | | | | | | | | | | | | | | | | | | This follows the rules specified by DOMConfiguration. In particular: - replacing CDATA nodes with text - splitting CDATA nodes - merging text nodes - stripping comments - detecting invalid characters I haven't added the normalization code for XML validation or namespaces.
* | am ad71aa20: Merge "New implementation for DOMConfiguration."Jesse Wilson2010-03-015-21/+808
|\ \ | |/ | | | | | | | | | | Merge commit 'ad71aa2046502db784a8c861b30b11ddf88044f1' into dalvik-dev * commit 'ad71aa2046502db784a8c861b30b11ddf88044f1': New implementation for DOMConfiguration.
| * New implementation for DOMConfiguration.Jesse Wilson2010-03-015-21/+808
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This API is disgusting. Its not regular, not typesafe, sparsely implemented and overly specific. I'm implementing the minimum I can get away with - exactly the same route taken by the RI. The Parameter stuff feels a little bit like overkill, but it allowed me to group related chunks of code together and avoid long chains of equalsIgnoreCase if statements. This is necessary to implement Document.normalize(), one of the last remaining APIs in DOMv3. Also fixing our implementation of Node.normalize() and adding tests to discover a bug in that code. Previously a document like this: "<foo>abc<br>def</foo>" Would be normalized to this: "<foo>abcdef<br></foo>" Which is a horrible bug! Yuck. Implementation and tests for Document.normalize() are forthcoming.
* | am dd55f1bb: Merge "Adding tests to parse document attributes from the DOM."Jesse Wilson2010-02-285-24/+142
|\ \ | |/ | | | | | | | | | | Merge commit 'dd55f1bba1216e91206255f31de587062ed115b6' into dalvik-dev * commit 'dd55f1bba1216e91206255f31de587062ed115b6': Adding tests to parse document attributes from the DOM.
| * Adding tests to parse document attributes from the DOM.Jesse Wilson2010-02-265-24/+142
| | | | | | | | | | | | | | | | This adds implementation and tests for these methods: getInputEncoding(), getDocumentURI(). And tests for these methods: getXmlEncoding(), getXmlVersion(), getXmlStandalone().
* | am 4795e033: Merge "Implementing still more DOM API for text nodes. - ↵Jesse Wilson2010-02-2811-78/+248
|\ \ | |/ | | | | | | | | | | | | | | Text.isElementContentWhitespace() - Text.getWholeText() - Text.replaceWholeText()" Merge commit '4795e033e5d93d72438d5004dd77ea82014f4657' into dalvik-dev * commit '4795e033e5d93d72438d5004dd77ea82014f4657': Implementing still more DOM API for text nodes.
| * Implementing still more DOM API for text nodes.Jesse Wilson2010-02-2311-78/+248
| | | | | | | | | | | | - Text.isElementContentWhitespace() - Text.getWholeText() - Text.replaceWholeText()
* | Merge remote branch 'goog/master' into mmElliott Hughes2010-02-2237-1338/+1448
|\ \ | |/ | | | | | | Conflicts: libcore/JavaLibrary.mk
| * More XML DOM v3 APIs.Jesse Wilson2010-02-204-14/+324
| | | | | | | | | | | | | | | | | | This adds the following APIs and tests: - Node.isDefaultNamespace - DomImplementation.hasFeature - Node.isSupported - Node.getFeature - Node.isEqualNode
| * DOM setTextContent() tests and implementation fixes.Jesse Wilson2010-02-194-16/+184
| |
| * Filling in some gaps in our XML DOM v3 API.Jesse Wilson2010-02-1911-137/+662
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically, these methods on Node: - setTextContent() - isSameNode() - lookupPrefix() - lookupNamespaceURI() In order to implement the last 2 I needed to fix our KXml parser to include namespace attributes (ie. xmlns) in the pulled document. Previously these were being elided. Added a new testcase to verify our behaviour. It passes the RI. On Dalvik we have a small issue with entity declarations. Added a new testcase to verify Node.getBaseURI(). This test fails because the method isn't implemented. Part of this test required moving a method out to Support_Resources.java; in order to verify the BaseURI the XML must be read from a file and not a stream (so that path information exists). Also... - Style cleanup: changing static calls to look like static calls. - Efficiency: avoiding concatenating with "" when unnecessary - Duplication: sharing prefix validation between attributes and elements - Renaming NodeTests to NodeTest for vogar-friendliness Outstanding: - I need to write a test for setTextContent().
| * Removing unnecessary org.w3c.dom subpackagesJesse Wilson2010-02-1618-1112/+12
| |
| * Fixing problems with the test runner's ability to parse expected results files.Jesse Wilson2010-02-113-43/+190
| | | | | | | | | | | | It appears that the original authors of this testing framework didn't really know whether these files were supposed to be XML or HTML, UTF-8 or UTF-16, and so there's quite a mess of processing in order to canonicalize them.
| * Fixing some of our XSLT implementation issues.Jesse Wilson2010-02-107-30/+90
| | | | | | | | | | | | | | | | | | | | | | These changes move our XSLT code to passing 1898/3173 of the OASIS tests. To contrast, the RI passes 2105/3173 tests. Highlights: - Implementing getTextContent() for nodes - Removing validation during transforms. We don't support validation! - Fixing attribute constraints to match the spec - Fixing test suite to not confuse BaseURI from NamespaceURI
* | Resync a load of tests with upstream, make our build faster.Elliott Hughes2010-02-199-36/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I started off with a mission to remove uses of dalvik.annotation.* (stuff like @TestTargetNew and other useless junk that just makes it harder to stay in sync with upstream). I wrote a script to go through tests showing me the diff between what we have and what upstream has, thinking that in cases where upstream has also added tests, I may as well pull them in at the same time... ...but I didn't realize how close we were to having dx fill its 1.5GiB heap. After trying various alternatives, I decided to bite the bullet and break core-tests up into one .jar per module. This adds parallelism back into this, the slowest part of our build. (I can do even better, but I'll do that in a separate patch, preferably after we've merged recent changes from master.) Only a couple of dependencies were problematic: the worthless TestSuiteFactory which already contained a comment suggesting we get rid of it, and the fact that some tests -- most notably the concurrent ones -- also contained main methods that started the JUnit tty-based TestRunner. (In the long run, we want to be running the harmony tests directly from a pristine "svn co" of upstream, using DalvikRunner. But this will be a big help in the meantime, and starts the work of getting our current copy of the tests into a state where we can start to extract any meaningful changes/additions we've made.)
* | Remove obviously bogus @KnownFailure annotations.Elliott Hughes2010-02-034-9/+0
|/ | | | | | | | | | | | | | We've already agreed @KnownFailure Must Die (to be replaced by expectations for DalvikRunner), but some are -- I think -- obviously in need of investigation. This patch removes @KnownFailure for all cases where the reason looks bogus. I've left the @KnownFailure annotations in cases where I it looks "reasonable" in that we simply haven't implemented the functionality (pack200, say), and a few other cases. Those should probably be done in a separate patch that adds expectations at the same time. But these ones, I think, all need investigating. (There's a scary number of Arabic-related bugs in here, given that we're supposed to be shipping Arabic in froyo.)
* Merge "A new test suite for our XSLT transforms."Jesse Wilson2010-02-021-0/+484
|\
| * A new test suite for our XSLT transforms.Jesse Wilson2010-02-021-0/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the test suite isn't wired-in to run automatically. Before that can happen I need to devise a way for the device to grab the OASIS test .zip from the Internet (or distribute it with Android). In the interim the test can be run by hand by manually copying the test suite to the device ("adb push") and running the test suite's main method. This approach might be workable in our continuous build. Note that the RI does horribly at this test suite - in my run it reports the following: FAILURES!!! Tests run: 3173, Failures: 338, Errors: 730
* | Restore our ability to parse an XML Document given a File argumentJesse Wilson2010-02-022-23/+42
| | | | | | | | | | | | | | directly, rather than via a stream. When I updated DocumentBuilder but not its subclass DocumentBuilderImpl, some of the assumptions by DocumentBuilderImpl were violated.
* | Remove @KnownFailure from tests that now pass.Elliott Hughes2010-02-011-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of these tests still doesn't pass, but for a different reason know the known failure is fixed, so I've removed that test's annotation too: 16) test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String(tests.api.javax.xml.parsers.SAXParserTest)junit.framework.AssertionFailedError at tests.api.javax.xml.parsers.SAXParserTest.test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String(SAXParserTest.java:680) at java.lang.reflect.Method.invokeNative(Native Method) at com.google.coretests.CoreTestRunnable.runInternally(CoreTestRunnable.java:129) at com.google.coretests.CoreTestRunnable.run(CoreTestRunnable.java:92) at com.google.coretests.CoreTestResult.runProtected(CoreTestResult.java:148) at com.google.coretests.CoreTestSuite.run(CoreTestSuite.java:278) at com.google.coretests.CoreTestRunner.doRun(CoreTestRunner.java:141) at com.google.coretests.CoreTestRunner.start(CoreTestRunner.java:317) at com.google.coretests.CoreTestRunner.main(CoreTestRunner.java:110) at com.google.coretests.Main.main(Main.java:45) at dalvik.system.NativeStart.main(Native Method)
* | Fix warnings in the new XML code.Elliott Hughes2010-02-012-4/+4
| |
* | Merge "Fixing a critical regression in our SAX parsing."Jesse Wilson2010-01-292-22/+152
|\ \
| * | Fixing a critical regression in our SAX parsing.Jesse Wilson2010-01-292-22/+152
| |/ | | | | | | | | We weren't correctly covering the case where namespaces were off, but elements contained namespaces. See bug 2400596.
* | Removing dead code from our copy of Xalan.Jesse Wilson2010-01-28166-74891/+45
|/ | | | | | | | | The trace package isn't accessible via our public API, so I've removed it. Exception localization isn't worthwhile. The Exslt code is a third-party extension that isn't necessary for the spec. Several other classes and methods were unused; I used IntelliJ to find and remove these. There's more that can go, but this is a fine first step.
* Bring our XML APIs up to date with Java 5.Jesse Wilson2010-01-27777-2008/+272320
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New packages for Java 5 compatiblity: - javax.xml.datatype - javax.xml.namespace - javax.xml.parsers (updated) - javax.xml.transform - javax.xml.transform.dom - javax.xml.transform.sax - javax.xml.transform.stream - javax.xml.validation - javax.xml.xpath - org.w3c.dom (updated) - org.w3c.dom.events - org.w3c.dom.ls (load/save) - org.w3c.dom.traversal - org.w3c.dom.views Omitted packages (that otherwise exist in Java 5) - org.w3c.dom.bootstrap. This package facilitates pluggable implementations of DOM. I'm not including this because there's little need for it in practice; and because it adds an unnecessary layer of complexity. This decision is also reflected in TransformerFactory.newInstance(), SAXParserFactory.newInstance(), and DocumentBuilderFactory.newInstance(). New packages that pseudo-exist in Java 5 - org.w3c.dom.traversal This package is referenced by Java 5's org.w3c.dom.ls.LSSerializerFilter, but isn't included in the Javadoc API. Their spec isn't self-consistent. - org.w3c.dom.views This package is referenced by Java 5's org.w3c.dom.events.MouseEvent, but isn't included in the Javadoc API. Another spec that isn't self-consistent. This upgrades DOM from v2 to v3. http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ This includes some API-incompatible changes; notably introducing new methods into interfaces. I believe this is still safe, and Java made a similar backwards incompatible change when they upgraded DOM from v2 to v3 between Java 1.4 and Java 5.0. Source for the new APIs comes from Apache XML commons. http://svn.apache.org/repos/asf/xml/commons/trunk rev 901014. This code currently contains several gaps in its implementation. In particular, the impelementations of the DOM model classes (AttrImpl, ElementImpl, NodeImpl) have DOM v3 methods that throw UnsupportedOperationExceptions. I intend to address this problem in an immediate follow-up CL. All gaps are marked with TODO comments, and they all live in the org.apache.harmony.xml.dom package. To implement these APIs, I've included Apache Xalan. In a follow-up change I intend to remove most of the code we don't actually need. I'm using their pristine copy from SVN so Git can track our local modifications. http://svn.apache.org/repos/asf/xalan/java/trunk rev 889881.
* Including proper prefixes and qualified names in the Expat parser.Jesse Wilson2010-01-262-139/+165
| | | | | | | | | | | | | | | | | | | Also changing our SAX codepath to always include values for optional parameters. In testing Xalan's javax.xml.transform packages with the Expat source code, the emitted documents were malformed. The underlying problem was that Xalan was expecting optional parameters to be populated, but Expat was not populating them. The spec says, "Any or all of these may be provided, depending on the values of the http://xml.org/sax/features/namespaces and the http://xml.org/sax/features/namespace-prefixes properties: * the Namespace URI and local name are required when the namespaces property is true (the default), and are optional when the namespaces property is false (if one is specified, both must be); * the qualified name is required when the namespace-prefixes property is true, and is optional when the namespace-prefixes property is false (the default). Although Xalan is technically at fault here, it may take forever to find all of the places where these optional parameters are assumed to be present. Instead, I'll just supply them which adds little overhead anyway. See http://code.google.com/p/android/issues/detail?id=990
* Depessimize string conversions.Elliott Hughes2009-12-181-1/+1
| | | | | | | | | | | | Why does this idiom persist? It's ugly, and it's the least efficient way to do it. (I found the ones in DecimalFormatSymbols while invesigating why "new SimpleDateFormat()" burns through so many StringBuilders. grep(1) found the rest.) The DocumentBuilderImpl removes an unnecessary level of indirection, since we implement Character.toString in terms of String.valueOf. (I wouldn't have bothered except this was the only use of Character.toString in the core libraries, and I added it myself a few weeks ago.)
* Implement DTDHandler support for ExpatParser.Elliott Hughes2009-12-094-49/+167
| | | | | | | | | | | Every time a third-party developer gets their DefaultHandler method signatures wrong (making it impossible for us to call them), they see this in the log and complain that SAX parsing is broken on Android: WARN/ExpatReader(704): DTD handlers aren't supported. This patch adds that support -- even though no-one wants it -- so we can get rid of the irrelevant log message.
* Fix KXmlSerializer so it won't generate invalid XML.Elliott Hughes2009-11-183-36/+135
| | | | | | | | | | | | We were allowing arbitrary characters to be output (which, surprisingly, XML does not), and we weren't correctly escaping CDATA sections that contained "]]>". Pull out some of my test helpers from DocumentBuilderTest into Support_Xml, because they're more generally useful when writing tests involving XML. Also correct a bunch of spelling mistakes in XmlSerializer's javadoc, since I happened to be reading through.
* Various XML fixes.Elliott Hughes2009-11-175-29/+52
| | | | | | | | | | | | | | | | | | | Add tests for bug 2487, exploring the situations where "]]>" is and isn't allowed. Fix the bug by changing KXmlParser so it pays attention to whether it's dealing with normal text or text in an attribute value and reports errors appropriately. In order to pass the new tests, we also need to fix DocumentBuilder to pay attention to its DocumentBuilderFactory's "coalescing" setting: whether or not adjacent text/CDATA nodes should be coalesced. This in turn fixes a @KnownFailure in DocumentBuilderFactoryTest: previously we didn't allow the caller to turn "coalescing" off (though until my previous patch, we didn't actually coalesce anyway). Now we support both, and I've made coalescing the default, because bug reports tell us that's what users want. It's how the RI behaves, too. Bug: 2487
* Merge change If8e2929aAndroid (Google) Code Review2009-11-161-20/+15
|\ | | | | | | | | * changes: Don't allocate arbitrary-length buffers on the stack.
| * Don't allocate arbitrary-length buffers on the stack.Elliott Hughes2009-11-131-20/+15
| | | | | | | | | | | | | | | | | | | | | | | | A new LocalArray C++ class lets us specify a "reasonable" amount of stack to use, but transparently fall back to using the heap if we need more space. The three places I've chosen to use LocalArray in this patch are fairly random; all they have in common is that they're the places where we call GetStringUTFRegion. There are more places LocalArray will be useful: the java.io.File JNI in particular. Bug: 2257819
* | Remove org.kxml2.wap.Elliott Hughes2009-11-136-2701/+0
|/ | | | | | (Not to be submitted before d2944c35 in packages/apps/Email.) Bug: 2249953
* Fix typos in the XmlPullParser documentation.Elliott Hughes2009-11-111-26/+25
|
* Fix DOM parsing of character references/entities.Elliott Hughes2009-11-101-5/+41
| | | | | | | | | | | Our DOM parser didn't support &#123; or &#x9a; character references, and didn't merge adjacent text nodes into one (so "a&amp;b" would be three text nodes rather than one; SAX allows the former, but DOM guarantees the latter). This patch fixes both bugs, and adds tests. Bug: 2607 (and duplicates)
* Bring our kxml2 up to date with upstream.Elliott Hughes2009-11-092-262/+319
| | | | | | | | | | Much of this is spurious whitespace changes, but there's some increased "relaxation". I deliberately lost the Android-specific change that was avoiding Runtime, since we do now have Runtime. I've added an Android-specific change to comment out some System.out logging that's been added upstream. I'd tell you the upstream revision number, but they're still using CVS, so there isn't one.
* Our XML serializer permits \0, resulting in malformed documents.Jesse Wilson2009-11-064-1/+111
| | | | | This failing test demonstrates the problem. It also adds AllTests plumbing for this test and some missing ones.
* Fix a few FindBugs warnings in code that isn't upstream.Elliott Hughes2009-10-271-3/+1
| | | | Bugs: 2099642, 2099637
* A new hygenic way for tests to clean up before or after execution.Jesse Wilson2009-10-256-12/+38
| | | | This replaces PrefsTester and is more general purpose.
* JNI Delete* and Release* _are_ allowed while an exception is pending.Elliott Hughes2009-10-071-41/+3
| | | | | | | | | See "Exceptions" in our own documentation: http://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=docs/jni-tips.html;hb=HEAD This is also true of the RI, though the spec sometimes implies otherwise. Here's the canonical reference: http://java.sun.com/docs/books/jni/html/design.html#2193
* Use jniThrowException instead of FindClass/ThrowNew.Elliott Hughes2009-10-011-18/+6
| | | | | | Always use our best-of-breed code for throwing exceptions. The remaining callers of Throw have good reason, and the only caller of ThrowNew is now JNIHelp.c (jniThrowException) itself.
* Fix Node.getNextSibling bounds checking.Elliott Hughes2009-09-255-3/+50
| | | | | | | | | | | Obvious copy & paste error in InnerNodeImpl compared to LeafNodeImpl, plus new test. I've also fixed a typo that annoys me whenever I look at the XML test results, and removed a KnownFailure for a test that passes (and has been passing for some time). Bug: 779
* Use GetStringRegion/GetStringUTFRegion where appropriate.Elliott Hughes2009-09-101-20/+6
| | | | | | | | | | | Note that the changes to DecimalFormatInterface.cpp and RBNFInterface.cpp are just minor tidy-ups, fixing an issue where the early error exit wouldn't call ReleaseStringChars to undo the earlier call to GetStringChars. Also remove a dead function and fix a comment in ExpatParser.cpp. Tested on sapphire-eng. Bug: 1639287
* Merge change 9368Android Code Review2009-08-281-1/+1
|\ | | | | | | | | * changes: libcore/.../rg_apache_harmony_xml_ExpatParser: in C++, the return type of strchr(const char*) is 'const char*' instead of 'char *'.
| * libcore/.../rg_apache_harmony_xml_ExpatParser: in C++, the return typeScott Tsai2009-03-241-1/+1
| | | | | | | | | | | | | | | | of strchr(const char*) is 'const char*' instead of 'char *'. C++ overloads string functions so that strchr(char*) returns 'char*' and strchr(const char*) returns 'const char*'. This patch fixes an "invalid conversion from ‘const char*’ to ‘char*’" error when building with gcc-4.4.
* | AI 147687: Several fixes for failing tests in the cts host. also tests that ↵Urs Grob2009-04-242-49/+62
| | | | | | | | | | | | | | | | | | | | timeout are now marked with BrokenTest to exclude them for the time being until we have a way to execute them. BUG=1285921 Automated import of CL 147687
* | AI 146132: Fixes from the review of 'Bringing XML down to one broken test.'Urs Grob2009-04-142-26/+33
| | | | | | | | | | | | BUG=1285921 Automated import of CL 146132
* | AI 144822: Bringing XML down to one broken test.Jorg Pleumann2009-04-072-38/+36
| | | | | | | | | | | | BUG=1285921 Automated import of CL 144822
* | AI 143454: Temporarily removing the Expat test from the XMLJorg Pleumann2009-03-301-1/+2
| | | | | | | | | | | | | | test suite, so it can be run on the RI as well. BUG=1285921 Automated import of CL 143454