public PairXmlDriver(String xmlStr) throws DocumentException,
            XmlTypeErrorException {
        super();
        if (!isPairXml(xmlStr)) {
            throw new XmlTypeErrorException("not a valid pair Xml");
        }
        document = DocumentHelper.parseText(xmlStr);
        cubeIdentifier = document.selectSingleNode("//properties/cube")
                .getText();
        timestamp = document.selectSingleNode("//properties/timestamp")
                .getText();
        // construct nodeMeaningBeans
        String dimensionName;
        String type;
        String value;
        Element root = this.document.getRootElement();
        List<?> list = root.selectNodes("//properties/parameters/parameter");
        for (Iterator<?> iter = list.iterator(); iter.hasNext(); ) {
            Node node = (Node) iter.next();
            dimensionName = node.selectSingleNode("dimensionName").getText();
            type = node.selectSingleNode("type").getText();
            value = node.selectSingleNode("value").getText();
            nodeMeaningBeans.add(new NodeMeaningBean(cubeIdentifier,
                    dimensionName, type, value));
        }
    }