public void load(Element docElem) throws Exception {
   this.dataSource = docElem.getOwnerDocument();
   Iterator<Element> elemIter = DataUtil.getElementChildrenIterator(docElem);
   while (elemIter.hasNext()) {
     Element child = elemIter.next();
     logger.debug("load(): Element: " + child.getNodeName());
     if (child.getNodeName().equals(CFLO_TAGNAME)) {
       logger.debug("load(): Creating new Story...");
       this.newStory(child);
     } else if (child.getNodeName().equals(DOCP_TAGNAME)) {
       logger.debug("load(): Getting document preferences...");
       this.newDocumentPreferences(child);
     } else if (child.getNodeName().equals(MSPR_TAGNAME)) {
       logger.debug("load(): Creating new Master Spread...");
       this.newMasterSpread(child);
     } else if (child.getNodeName().equals(SPRD_TAGNAME)) {
       logger.debug("load(): Creating new Spread...");
       this.newSpread(child);
     } else {
       logger.debug(" + Creating new unhandled child " + child.getNodeName() + "...");
       InDesignComponent comp = this.newInDesignComponent(child);
       this.addChild(comp);
     }
   }
 }