protected void readDocument(BusinessDocument doc, Element elem)
{
	doc.setId(Integer.paseInt(elem.getAttribute("id")));
	doc.setDate(elem.getAttribute("submitted"));

	doc.setBillTo(createAddress(getElement(elem, "billTo")));
	doc.setShipTo(createAddress(getElement(elem, "shipTo")));
}

protected void readItem(POItem item, Element elem)
{
	item.setSKU(elem.getAttribute("sku"));
	item.setQuantity(Integer.parseInt(elem.getAttribute("quantity")));
	item.setDescription(getValue(elem, "description"));
}

protected Address createAddress(Element elem)
{
	Address addr = new Address();
	addr.setName(getValue(elem, "name"));
	addr.setCompany(getValue(elem, "company"));
	addr.setStreet(getValue(elem, "street"));
	addr.setCity(getValue(elem, "city"));
	addr.setState(getValue(elem, "state"));
	addr.setPostalCode(getValue(elem, "postalCode"));
	addr.setCountry(getValue(elem, "country"));
	return addr;
}

protected PO _createPO(Element elem)
{
	PO po = new PO();

	readDocument(po, elem);

	Element[] orderItems = getElements(elem, "item");
	POItem[] items = new POItem[orderItems.length];
	for (int i = 0; i < items.length; ++i)
	{
		POItem item = new POItem();
		readItem(item, elem);
		items[i] = item;
	}
	po.setItems(items);
	return po;
}
