bug 250829 - continued refactoring of VEX Document Model.
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Document.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Document.java
index a200091..fdfbb23 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Document.java
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Document.java
@@ -293,9 +293,9 @@
 		VEXElement[] children = e1.getChildElements();
 
 		Content newContent = new GapContent(endOffset - startOffset);
-		String s = this.content.getString(startOffset, endOffset - startOffset);
+		String s = content.getString(startOffset, endOffset - startOffset);
 		newContent.insertString(0, s);
-		List newChildren = new ArrayList();
+		List<VEXElement> newChildren = new ArrayList<VEXElement>();
 		for (int i = 0; i < children.length; i++) {
 			VEXElement child = children[i];
 			if (child.getEndOffset() <= startOffset) {
@@ -303,14 +303,12 @@
 			} else if (child.getStartOffset() >= endOffset) {
 				break;
 			} else {
-				newChildren.add(this.cloneElement(child, newContent,
+				newChildren.add(cloneElement(child, newContent,
 						-startOffset, null));
 			}
 		}
 
-		VEXElement[] elementArray = (VEXElement[]) newChildren
-				.toArray(new VEXElement[newChildren.size()]);
-		return new DocumentFragment(newContent, elementArray);
+		return new DocumentFragment(newContent, newChildren);
 	}
 
 	/* (non-Javadoc)
@@ -399,17 +397,17 @@
 	 *            child elements that are within the run
 	 */
 	static VEXNode[] createNodeArray(Content content, int startOffset,
-			int endOffset, VEXElement[] elements) {
+			int endOffset, List<VEXElement> elements) {
 
 		List nodes = new ArrayList();
 		int offset = startOffset;
-		for (int i = 0; i < elements.length; i++) {
-			int start = elements[i].getStartOffset();
+		for (int i = 0; i < elements.size(); i++) {
+			int start = elements.get(i).getStartOffset();
 			if (offset < start) {
 				nodes.add(new Text(content, offset, start));
 			}
-			nodes.add(elements[i]);
-			offset = elements[i].getEndOffset() + 1;
+			nodes.add(elements.get(i));
+			offset = elements.get(i).getEndOffset() + 1;
 		}
 
 		if (offset < endOffset) {
@@ -598,9 +596,9 @@
 			index++;
 		}
 
-		VEXElement[] elements = fragment.getElements();
-		for (int i = 0; i < elements.length; i++) {
-			VEXElement newElement = this.cloneElement(elements[i], this.content,
+		List<VEXElement> elements = fragment.getElements();
+		for (int i = 0; i < elements.size(); i++) {
+			VEXElement newElement = this.cloneElement(elements.get(i), this.content,
 					offset, parent);
 			parent.insertChild(index, newElement);
 			index++;
@@ -934,11 +932,11 @@
 		clone.setContent(content, original.getStartOffset() + shift, original
 				.getEndOffset()
 				+ shift);
-		String[] attrNames = original.getAttributeNames();
-		for (int i = 0; i < attrNames.length; i++) {
+		List<String> attrNames = original.getAttributeNames();
+		for (int i = 0; i < attrNames.size(); i++) {
 			try {
-				clone.setAttribute(attrNames[i], original
-						.getAttribute(attrNames[i]));
+				clone.setAttribute(attrNames.get(i), original
+						.getAttribute(attrNames.get(i)));
 			} catch (DocumentValidationException ex) {
 				throw new RuntimeException("Unexpected exception: " + ex);
 			}
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentFragment.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentFragment.java
index 7f77b1f..8edc700 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentFragment.java
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentFragment.java
@@ -30,7 +30,7 @@
 public class DocumentFragment implements Serializable, VEXDocumentFragment {
 
 	private Content content;
-	private VEXElement[] elements;
+	private List<VEXElement> elements;
 
 	/**
 	 * Class constructor.
@@ -40,7 +40,7 @@
 	 * @param elementArray
 	 *            Elements that make up this fragment.
 	 */
-	public DocumentFragment(Content content, VEXElement[] elementArray) {
+	public DocumentFragment(Content content, List<VEXElement> elementArray) {
 		this.content = content;
 		this.elements = elementArray;
 	}
@@ -62,7 +62,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXDocumentFragment#getElements()
 	 */
-	public VEXElement[] getElements() {
+	public List<VEXElement> getElements() {
 		return this.elements;
 	}
 
@@ -99,10 +99,10 @@
 	 */
 
 	private void writeObject(ObjectOutputStream out) throws IOException {
-		out.writeUTF(this.content.getString(0, this.content.getLength()));
-		out.writeInt(this.elements.length);
-		for (int i = 0; i < this.elements.length; i++) {
-			this.writeElement(this.elements[i], out);
+		out.writeUTF(content.getString(0, content.getLength()));
+		out.writeInt(elements.size());
+		for (int i = 0; i < elements.size(); i++) {
+			this.writeElement(elements.get(i), out);
 		}
 	}
 
@@ -112,11 +112,11 @@
 		out.writeObject(element.getName());
 		out.writeInt(element.getStartOffset());
 		out.writeInt(element.getEndOffset());
-		String[] attrNames = element.getAttributeNames();
-		out.writeInt(attrNames.length);
-		for (int i = 0; i < attrNames.length; i++) {
-			out.writeObject(attrNames[i]);
-			out.writeObject(element.getAttribute(attrNames[i]));
+		List<String> attrNames = element.getAttributeNames();
+		out.writeInt(attrNames.size());
+		for (int i = 0; i < attrNames.size(); i++) {
+			out.writeObject(attrNames.get(i));
+			out.writeObject(element.getAttribute(attrNames.get(i)));
 		}
 		VEXElement[] children = element.getChildElements();
 		out.writeInt(children.length);
@@ -132,9 +132,9 @@
 		this.content = new GapContent(s.length());
 		content.insertString(0, s);
 		int n = in.readInt();
-		this.elements = new Element[n];
+		elements = new ArrayList<VEXElement>(n);
 		for (int i = 0; i < n; i++) {
-			this.elements[i] = this.readElement(in);
+			elements.add(readElement(in));
 		}
 	}
 
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriter.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriter.java
index 2beafec..e0745d7 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriter.java
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriter.java
@@ -15,6 +15,8 @@
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 import org.eclipse.wst.xml.vex.core.internal.provisional.dom.VEXDocument;
 import org.eclipse.wst.xml.vex.core.internal.provisional.dom.VEXElement;
@@ -283,10 +285,10 @@
 		} else {
 			VEXElement element = (VEXElement) node;
 			VEXNode[] content = element.getChildNodes();
-			String[] attrs = element.getAttributeNames();
-			Arrays.sort(attrs);
+			List<String> attrs = element.getAttributeNames();
+			Collections.sort(attrs);
 
-			if (attrs.length == 0) {
+			if (attrs.size() == 0) {
 				if (content.length == 0) {
 					wrapper.add("<" + element.getName() + " />");
 				} else {
@@ -295,16 +297,16 @@
 			} else {
 				Validator validator = element.getDocument().getValidator();
 				StringBuffer sb = new StringBuffer();
-				for (int i = 0; i < attrs.length; i++) {
+				for (int i = 0; i < attrs.size(); i++) {
 					sb.setLength(0);
 					if (i == 0) {
 						sb.append("<" + element.getName());
 					}
-					if (!attrHasDefaultValue(validator, element, attrs[i])) {
-						sb.append(attrToString(attrs[i], element
-								.getAttribute(attrs[i])));
+					if (!attrHasDefaultValue(validator, element, attrs.get(i))) {
+						sb.append(attrToString(attrs.get(i), element
+								.getAttribute(attrs.get(i))));
 					}
-					if (i == attrs.length - 1) {
+					if (i == attrs.size() - 1) {
 						if (content.length == 0) {
 							sb.append("/>");
 						} else {
@@ -329,17 +331,17 @@
 
 		Validator validator = element.getDocument().getValidator();
 
-		String[] attrs = element.getAttributeNames();
-		Arrays.sort(attrs);
+		List<String> attrs = element.getAttributeNames();
+		Collections.sort(attrs);
 		StringBuffer sb = new StringBuffer();
-		for (int i = 0; i < attrs.length; i++) {
-			if (attrHasDefaultValue(validator, element, attrs[i])) {
+		for (int i = 0; i < attrs.size(); i++) {
+			if (attrHasDefaultValue(validator, element, attrs.get(i))) {
 				continue;
 			}
 			sb.append(" ");
-			sb.append(attrs[i]);
+			sb.append(attrs.get(i));
 			sb.append("=\"");
-			sb.append(escape(element.getAttribute(attrs[i])));
+			sb.append(escape(element.getAttribute(attrs.get(i))));
 			sb.append("\"");
 		}
 		return sb.toString();
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Element.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Element.java
index d26abd7..06ca1f4 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Element.java
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/dom/Element.java
@@ -10,7 +10,9 @@
  *******************************************************************************/
 package org.eclipse.wst.xml.vex.core.internal.dom;
 
+import java.lang.reflect.Array;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -35,7 +37,6 @@
 	private List children = new ArrayList();
 	private Map attributes = new HashMap();
 
-	
 	/**
 	 * Class constructor.
 	 * 
@@ -46,15 +47,21 @@
 		this.name = name;
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#addChild(org.eclipse.wst.xml.vex.core.internal.dom.Element)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#addChild(org.eclipse
+	 * .wst.xml.vex.core.internal.dom.Element)
 	 */
 	public void addChild(VEXElement child) {
 		this.children.add(child);
 		child.setParent(this);
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#clone()
 	 */
 	public Object clone() {
@@ -74,46 +81,65 @@
 		}
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getAttribute(java.lang.String)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getAttribute(java
+	 * .lang.String)
 	 */
 	public String getAttribute(String name) {
 		return (String) attributes.get(name);
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getAttributeNames()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getAttributeNames()
 	 */
-	public String[] getAttributeNames() {
+	public List<String> getAttributeNames() {
 		Collection names = this.attributes.keySet();
-		return (String[]) names.toArray(new String[names.size()]);
+		List attributeNames = Arrays.asList((String[]) names.toArray(new String[names.size()]));
+		return attributeNames;
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getChildIterator()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getChildIterator()
 	 */
 	public Iterator getChildIterator() {
 		return this.children.iterator();
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getChildElements()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getChildElements()
 	 */
 	public VEXElement[] getChildElements() {
 		int size = this.children.size();
 		return (VEXElement[]) this.children.toArray(new VEXElement[size]);
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getChildNodes()
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getChildNodes()
 	 */
 	public VEXNode[] getChildNodes() {
-		return Document.createNodeArray(this.getContent(), this
-				.getStartOffset() + 1, this.getEndOffset(), this
-				.getChildElements());
+		List<VEXElement> childElements = Arrays.asList(getChildElements());
+		return Document.createNodeArray(getContent(), getStartOffset() + 1,
+				getEndOffset(), childElements);
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getDocument()
 	 */
 	public VEXDocument getDocument() {
@@ -128,21 +154,27 @@
 		}
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getName()
 	 */
 	public String getName() {
 		return this.name;
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getParent()
 	 */
 	public VEXElement getParent() {
 		return this.parent;
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#getText()
 	 */
 	public String getText() {
@@ -163,18 +195,24 @@
 	 */
 	public void insertChild(int index, VEXElement child) {
 		this.children.add(index, child);
-		child.setParent(this); 
+		child.setParent(this);
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#isEmpty()
 	 */
 	public boolean isEmpty() {
 		return this.getStartOffset() + 1 == this.getEndOffset();
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#removeAttribute(java.lang.String)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#removeAttribute
+	 * (java.lang.String)
 	 */
 	public void removeAttribute(String name) throws DocumentValidationException {
 
@@ -185,7 +223,7 @@
 		}
 		VEXDocument doc = this.getDocument();
 		if (doc != null) { // doc may be null, e.g. when we're cloning an
-							// element
+			// element
 			// to produce a document fragment
 
 			IUndoableEdit edit = doc.isUndoEnabled() ? new AttributeChangeEdit(
@@ -196,8 +234,12 @@
 		}
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#setAttribute(java.lang.String, java.lang.String)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#setAttribute(java
+	 * .lang.String, java.lang.String)
 	 */
 	public void setAttribute(String name, String value)
 			throws DocumentValidationException {
@@ -214,7 +256,7 @@
 			this.attributes.put(name, value);
 			VEXDocument doc = this.getDocument();
 			if (doc != null) { // doc may be null, e.g. when we're cloning an
-								// element
+				// element
 				// to produce a document fragment
 
 				IUndoableEdit edit = doc.isUndoEnabled() ? new AttributeChangeEdit(
@@ -228,14 +270,20 @@
 
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#setParent(org.eclipse.wst.xml.vex.core.internal.dom.Element)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#setParent(org.eclipse
+	 * .wst.xml.vex.core.internal.dom.Element)
 	 */
 	public void setParent(Element parent) {
 		this.parent = parent;
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.wst.xml.vex.core.internal.dom.IVEXElement#toString()
 	 */
 	public String toString() {
@@ -243,16 +291,16 @@
 		StringBuffer sb = new StringBuffer();
 		sb.append("<");
 		sb.append(this.getName());
-		String[] attrs = this.getAttributeNames();
+		List<String> attrs = this.getAttributeNames();
 
-		for (int i = 0; i < attrs.length; i++) {
+		for (int i = 0; i < attrs.size(); i++) {
 			if (i > 0) {
 				sb.append(",");
 			}
 			sb.append(" ");
-			sb.append(attrs[i]);
+			sb.append(attrs.get(i));
 			sb.append("=\"");
-			sb.append(this.getAttribute(attrs[i]));
+			sb.append(this.getAttribute(attrs.get(i)));
 			sb.append("\"");
 		}
 
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXDocumentFragment.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXDocumentFragment.java
index 8320c52..9d2ddca 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXDocumentFragment.java
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXDocumentFragment.java
@@ -33,7 +33,7 @@
 	 * 
 	 * @model 
 	 */
-	public  VEXElement[] getElements();
+	public  List<VEXElement> getElements();
 
 	/**
 	 * Returns an array of element names and Validator.PCDATA representing the
diff --git a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXElement.java b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXElement.java
index 829aba7..b3da020 100644
--- a/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXElement.java
+++ b/sourceediting/plugins/org.eclipse.wst.xml.vex.core/src/org/eclipse/wst/xml/vex/core/internal/provisional/dom/VEXElement.java
@@ -1,6 +1,7 @@
 package org.eclipse.wst.xml.vex.core.internal.provisional.dom;
 
 import java.util.Iterator;
+import java.util.List;
 
 import org.eclipse.wst.xml.vex.core.internal.dom.DocumentValidationException;
 
@@ -43,7 +44,7 @@
 	 * 
 	 * @model 
 	 */
-	public String[] getAttributeNames();
+	public List<String> getAttributeNames();
 
 	/**
 	 * Returns an iterator over the children. Used by
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriterTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriterTest.java
index 6945a90..683fa08 100644
--- a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriterTest.java
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DocumentWriterTest.java
@@ -17,6 +17,9 @@
 import java.io.InputStream;
 import java.net.URL;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParserFactory;
 import junit.framework.TestCase;
@@ -84,15 +87,15 @@
 		System.out.println("Checking " + actual.getName());
 		assertEquals(expected.getName(), actual.getName());
 
-		String[] expectedAttrs = expected.getAttributeNames();
-		Arrays.sort(expectedAttrs);
+		List<String> expectedAttrs = expected.getAttributeNames();
+		Collections.sort(expectedAttrs);
 
-		String[] actualAttrs = actual.getAttributeNames();
-		Arrays.sort(actualAttrs);
+		List<String> actualAttrs = actual.getAttributeNames();
+		Collections.sort(actualAttrs);
 
-		assertEquals(expectedAttrs.length, actualAttrs.length);
-		for (int i = 0; i < expectedAttrs.length; i++) {
-			assertEquals(expectedAttrs[i], actualAttrs[i]);
+		assertEquals(expectedAttrs.size(), actualAttrs.size());
+		for (int i = 0; i < expectedAttrs.size(); i++) {
+			assertEquals(expectedAttrs.get(i), actualAttrs.get(i));
 		}
 
 		VEXNode[] expectedContent = expected.getChildNodes();
diff --git a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DomTest.java b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DomTest.java
index 8243811..7db9614 100644
--- a/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DomTest.java
+++ b/sourceediting/tests/org.eclipse.wst.xml.vex.core.tests/src/org/eclipse/wst/xml/vex/core/internal/dom/DomTest.java
@@ -122,7 +122,6 @@
 
 		VEXDocument doc;
 		VEXDocumentFragment frag;
-		VEXElement[] elements;
 		List<VEXNode> nodes;
 		VEXElement root;
 		VEXElement x;
@@ -157,7 +156,7 @@
 
 		frag = doc.getFragment(2, 3);
 		assertEquals(1, frag.getContent().getLength());
-		assertEquals(0, frag.getElements().length);
+		assertEquals(0, frag.getElements().size());
 		nodes = frag.getNodes();
 		assertEquals(1, nodes.size());
 		this.assertIsText(nodes.get(0), "b", 0, 1);
@@ -182,15 +181,16 @@
 		doc.insertText(3, "b");
 
 		frag = doc.getFragment(1, 6);
-		elements = frag.getElements();
-		assertEquals(1, elements.length);
-		this.assertIsElement(elements[0], "z", null, 1, 3);
+		
+		List<VEXElement> elements = frag.getElements();
+		assertEquals(1, elements.size());
+		this.assertIsElement(elements.get(0), "z", null, 1, 3);
 		nodes = frag.getNodes();
 		assertEquals(3, nodes.size());
 		assertIsText(nodes.get(0), "a", 0, 1);
 		assertIsElement(nodes.get(1), "z", null, 1, 3);
 		assertIsText(nodes.get(2), "c", 4, 5);
-		VEXNode[] childNodes = elements[0].getChildNodes();
+		VEXNode[] childNodes = elements.get(0).getChildNodes();
 		assertEquals(1, childNodes.length);
 		assertIsText(childNodes[0], "b", 2, 3);
 
@@ -224,9 +224,9 @@
 		assertEquals(9, frag.getContent().getLength());
 
 		elements = frag.getElements();
-		assertEquals(2, elements.length);
-		assertIsElement(elements[0], "x", null, 1, 3);
-		assertIsElement(elements[1], "y", null, 5, 7);
+		assertEquals(2, elements.size());
+		assertIsElement(elements.get(0), "x", null, 1, 3);
+		assertIsElement(elements.get(1), "y", null, 5, 7);
 
 		nodes = frag.getNodes();
 		assertEquals(5, nodes.size());
@@ -246,14 +246,14 @@
 		assertEquals(13, frag.getContent().getLength());
 
 		elements = frag.getElements();
-		assertEquals(1, elements.length);
-		assertIsElement(elements[0], "z", null, 0, 12);
+		assertEquals(1, elements.size());
+		assertIsElement(elements.get(0), "z", null, 0, 12);
 
 		nodes = frag.getNodes();
 		assertEquals(1, nodes.size());
 		assertIsElement(nodes.get(0), "z", null, 0, 12);
 
-		z = elements[0];
+		z = elements.get(0);
 		childNodes = z.getChildNodes();
 		assertEquals(5, childNodes.length);
 		assertIsText(childNodes[0], "bc", 1, 3);