public DiceTaskXmlDriver(String xmlStr) throws DocumentException,
            XmlTypeErrorException {
        super();
        if (!isDiceTaskXml(xmlStr)) {
            throw new XmlTypeErrorException("not a valid diceTask Xml");
        }
        document = DocumentHelper.parseText(xmlStr);
        timestamp = document.selectSingleNode("//properties/timestamp")
                .getText();
        fromCubeIdentifier = document.selectSingleNode(
                "//properties/operation/from").getText();

        Element root = this.document.getRootElement();
        List<?> list = root
                .selectNodes("//properties/operation/conditions/condition");
        String dimensionName;
        final String levelName = "";
        String start;
        String end;
        ConditionBean conditionBean;
        Node tmpNode;
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); ) {
            Node node = (Node) iter.next();
            dimensionName = node.selectSingleNode("dimensionName").getText();
            if (null == (tmpNode = node.selectSingleNode("start"))) {
                start = "";
            } else {
                start = tmpNode.getText();
            }
            if (null == (tmpNode = node.selectSingleNode("end"))) {
                end = "";
            } else {
                end = tmpNode.getText();
            }
            conditionBean = new ConditionBean(dimensionName, levelName, start,
                    end);
            conditionBeans.add(conditionBean);
        }
    }