code: public static Text[] toTextArray(Document doc, Object o) throws PageException {
  	// Node[]
  	if (o instanceof Node[]) {
  	    Node[] nodes = (Node[]) o;
  	    if (_isAllOfSameType(nodes, Node.TEXT_NODE)) return (Text[]) nodes;
  
  	    Text[] textes = new Text[nodes.length];
  	    for (int i = 0; i < nodes.length; i++) {
  		textes[i] = toText(doc, nodes[i]);
  	    }
  	    return textes;
  	}
  	// Collection
  	else if (o instanceof Collection) {
  	    Collection coll = (Collection) o;
  	    Iterator<Object> it = coll.valueIterator();
  	    List<Text> textes = new ArrayList<Text>();
  	    while (it.hasNext()) {
  		textes.add(toText(doc, it.next()));
  	    }
  	    return textes.toArray(new Text[textes.size()]);
  	}
  	// Node Map and List
  	Node[] nodes = _toNodeArray(doc, o);
  	if (nodes != null) return toTextArray(doc, nodes);
  	// Single Text Node
  	try {
  	    return new Text[] { toText(doc, o) };
  	}
  	catch (ExpressionException e) {
  	    throw new XMLException("can't cast Object of type " + Caster.toClassName(o) + " to a XML Text Array");
  	}
      }
docs: casts a value to a XML Text Array
  
  @param doc XML Document
  @param o Object to cast
  @return XML Text Array
  @throws PageException