diff --git a/build.xml b/build.xml
index 88bc47c20..0db316073 100644
--- a/build.xml
+++ b/build.xml
@@ -145,6 +145,7 @@ under the License.
+
@@ -262,9 +263,11 @@ under the License.
+
+
@@ -348,7 +351,18 @@ under the License.
-
+
+
+
+
+
+
+
+
+
+
@@ -452,7 +466,8 @@ under the License.
-
+
diff --git a/src/scratchpad/ooxml-src/org/apache/poi/hssf/HSSFXML.java b/src/scratchpad/ooxml-src/org/apache/poi/hssf/HSSFXML.java
index 20707aac8..f2a71fd46 100644
--- a/src/scratchpad/ooxml-src/org/apache/poi/hssf/HSSFXML.java
+++ b/src/scratchpad/ooxml-src/org/apache/poi/hssf/HSSFXML.java
@@ -18,7 +18,7 @@ package org.apache.poi.hssf;
import java.io.IOException;
-import org.apache.poi.HXFDocument;
+import org.apache.poi.hxf.HXFDocument;
import org.apache.xmlbeans.XmlException;
import org.openxml4j.exceptions.OpenXML4JException;
import org.openxml4j.opc.Package;
diff --git a/src/scratchpad/ooxml-src/org/apache/poi/HXFDocument.java b/src/scratchpad/ooxml-src/org/apache/poi/hxf/HXFDocument.java
similarity index 97%
rename from src/scratchpad/ooxml-src/org/apache/poi/HXFDocument.java
rename to src/scratchpad/ooxml-src/org/apache/poi/hxf/HXFDocument.java
index 427e377fa..f8f74e094 100644
--- a/src/scratchpad/ooxml-src/org/apache/poi/HXFDocument.java
+++ b/src/scratchpad/ooxml-src/org/apache/poi/hxf/HXFDocument.java
@@ -14,12 +14,13 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-package org.apache.poi;
+package org.apache.poi.hxf;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import org.apache.poi.POIXMLDocument;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
diff --git a/src/scratchpad/ooxml-src/org/apache/poi/hxf/dev/HXFLister.java b/src/scratchpad/ooxml-src/org/apache/poi/hxf/dev/HXFLister.java
new file mode 100644
index 000000000..d56d2682e
--- /dev/null
+++ b/src/scratchpad/ooxml-src/org/apache/poi/hxf/dev/HXFLister.java
@@ -0,0 +1,126 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.hxf.dev;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+
+import org.openxml4j.opc.Package;
+import org.openxml4j.opc.PackageAccess;
+import org.openxml4j.opc.PackagePart;
+import org.openxml4j.opc.PackageRelationship;
+import org.openxml4j.opc.PackageRelationshipCollection;
+
+/**
+ * Prints out the contents of a HXF (ooxml) container.
+ * Useful for seeing what parts are defined, and how
+ * they're all related to each other.
+ */
+public class HXFLister {
+ private Package container;
+ private PrintStream disp;
+
+ public HXFLister(Package container) {
+ this(container, System.out);
+ }
+ public HXFLister(Package container, PrintStream disp) {
+ this.container = container;
+ this.disp = disp;
+ }
+
+ /**
+ * Figures out how big a given PackagePart is.
+ */
+ public static long getSize(PackagePart part) throws IOException {
+ InputStream in = part.getInputStream();
+ byte[] b = new byte[8192];
+ long size = 0;
+ int read = 0;
+
+ while(read > -1) {
+ read = in.read(b);
+ if(read > 0) {
+ size += read;
+ }
+ }
+
+ return size;
+ }
+
+ /**
+ * Displays information on all the different
+ * parts of the OOXML file container.
+ */
+ public void displayParts() throws Exception {
+ ArrayList parts = container.getParts();
+ for (PackagePart part : parts) {
+ disp.println(part.getPartName());
+ disp.println("\t" + part.getContentType());
+
+ if(! part.getPartName().toString().equals("/docProps/core.xml")) {
+ disp.println("\t" + getSize(part) + " bytes");
+ }
+
+ if(! part.isRelationshipPart()) {
+ disp.println("\t" + part.getRelationships().size() + " relations");
+ }
+ }
+ }
+ /**
+ * Displays information on all the different
+ * relationships between different parts
+ * of the OOXML file container.
+ */
+ public void displayRelations() throws Exception {
+ PackageRelationshipCollection rels =
+ container.getRelationships();
+ for (PackageRelationship rel : rels) {
+ disp.println("Relationship:");
+ disp.println("\tFrom: "+ rel.getSourceURI());
+ disp.println("\tTo: " + rel.getTargetURI());
+ disp.println("\tMode: " + rel.getTargetMode());
+ disp.println("\tType: " + rel.getRelationshipType());
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ if(args.length == 0) {
+ System.err.println("Use:");
+ System.err.println("\tjava HXFLister ");
+ System.exit(1);
+ }
+
+ File f = new File(args[0]);
+ if(! f.exists()) {
+ System.err.println("Error, file not found!");
+ System.err.println("\t" + f.toString());
+ System.exit(2);
+ }
+
+ HXFLister lister = new HXFLister(
+ Package.open(f.toString(), PackageAccess.READ)
+ );
+
+ lister.disp.println(f.toString() + "\n");
+ lister.displayParts();
+ lister.disp.println();
+ lister.displayRelations();
+ }
+}
diff --git a/src/scratchpad/ooxml-testcases/org/apache/poi/hssf/TestHSSFXML.java b/src/scratchpad/ooxml-testcases/org/apache/poi/hssf/TestHSSFXML.java
index 1013d4f10..69d5a668a 100644
--- a/src/scratchpad/ooxml-testcases/org/apache/poi/hssf/TestHSSFXML.java
+++ b/src/scratchpad/ooxml-testcases/org/apache/poi/hssf/TestHSSFXML.java
@@ -2,7 +2,7 @@ package org.apache.poi.hssf;
import java.io.File;
-import org.apache.poi.HXFDocument;
+import org.apache.poi.hxf.HXFDocument;
import org.openxml4j.opc.Package;
import org.openxml4j.opc.PackagePart;