private void parseDoc(org.w3c.dom.Document xmlDoc) throws ParseException, EnrycherException {
		Element topElt = (Element)xmlDoc.getElementsByTagName("item").item(0);
		// parse meta-data
		if (topElt.getElementsByTagName("metadata").getLength() > 0) {
			Element metadataElt = (Element)xmlDoc.getElementsByTagName("metadata").item(0);
			// load document level semantic attributes
			if (metadataElt.getElementsByTagName("semantics").getLength() > 0) {					
				Element semanticsElt = (Element)metadataElt.getElementsByTagName("semantics").item(0);
				parseSemantics(semanticsElt, attributeV);
			}
			// load pipeline information
			if (metadataElt.getElementsByTagName("pipeline").getLength() > 0) {
				Element pipelineElt = (Element)metadataElt.getElementsByTagName("pipeline").item(0);
				parsePipeline(pipelineElt);
			}
		}		
		// read text
		if (topElt.getElementsByTagName("text").getLength() > 0) {
			Element textElt = (Element)xmlDoc.getElementsByTagName("text").item(0);
			parseText(textElt);
		}								
		// read annotations
		if (topElt.getElementsByTagName("annotations").getLength() > 0) {
			Element annsElt = (Element)topElt.getElementsByTagName("annotations").item(0);
			parseAnnotations(annsElt, annotationH);
		}		
		// read assertion
		if (topElt.getElementsByTagName("assertions").getLength() > 0) {
			Element assertsElt = (Element)topElt.getElementsByTagName("assertions").item(0);
			parseAssertion(assertsElt);			
		}				
	}