private void readPartDec(StructureFile structure, Element element) throws SyntaxException {
		DOMHelper.checkedAllAttributes(element, new String[] { "name", "center", "size" });
		String partName = element.getAttribute("name");
		Vector3 originCoord = ValueHelper.vectorFromString(element.getAttribute("center"));
		Dimension3 size = ValueHelper.dimensionFromString(element.getAttribute("size"));
		StructurePart part = new StructurePart(partName, size, originCoord);

		NodeList operations = element.getChildNodes();
		for (int i = 0; i < operations.getLength(); i++) {
			Node op = operations.item(i);
			if (!(op instanceof Element))
				continue;
			Element operation = (Element) op;
			if (DOMHelper.isNodeOfType(operation, "Set", strict)) {
				DOMHelper.checkedAllAttributes(operation, new String[] { "loc", "size", "block" });
				// TODO: part -> set data
			} else if (DOMHelper.isNodeOfType(operation, "SetRange", strict)) {
				DOMHelper.checkedAllAttributes(operation, new String[] { "start", "block" });
				DOMHelper.checkedAnyAttributes(operation, new String[] { "end", "size" });
				// TODO: part -> set vector (line)
			} else if (DOMHelper.isNodeOfType(operation, "Cuboid", strict)) {
				DOMHelper.checkedAllAttributes(operation, new String[] { "start", "end" });
				// TODO: read cuboid chunks
				// TODO: cuboid data -> set data
			} else if (DOMHelper.isNodeOfType(operation, "Chest", strict)) {
				DOMHelper.checkedAllAttributes(operation, new String[] { "loc", "size", "orientation" });
				// TODO: NBT handling (essentially); do it as child nodes
			} else
				throw new SyntaxException(String.format("Unknown or unexpected tag %s",
						operation.getTagName()));
		}
	}