public void parseSharedDiskSectionTag(HashMap<String, SharedDisk> sdisks, HashMap<String,File> files, XMLEvent e, XMLEventReader r) throws XMLStreamException{
		boolean end = false;
		while (!end && r.hasNext()){
			e = r.nextEvent();
			end = (e.isEndElement() && e.asEndElement().getName().getLocalPart().contentEquals("SharedDiskSection"));
			if (!end)
				switch (e.getEventType()){
					case XMLEvent.START_ELEMENT:
						if (e.asStartElement().getName().getLocalPart().contentEquals("SharedDisk")){
							String id = e.asStartElement().getAttributeByName(QName.valueOf(ovfNames + "diskId")).
									getValue().trim();
							//FIXME disk in ovf file can be empty
							String capacity = e.asStartElement().getAttributeByName(QName.valueOf(ovfNames + "capacity"))
									.getValue().trim();
							String format = e.asStartElement().getAttributeByName(QName.valueOf(ovfNames + "format"))
									.getValue().trim();
							
							String fileRef = null;
							try {
								fileRef = e.asStartElement().getAttributeByName(QName.valueOf(ovfNames + "fileRef"))
									.getValue().trim();
							}
							catch (NullPointerException ex){
								fileRef = "";
							}
							
							sdisks.put("ovf:/disk/" + id, new SharedDisk(id, files.get(fileRef), capacity, format) );
							
							Attribute attParRef = e.asStartElement().getAttributeByName(QName.valueOf(ovfNames + "parentRef"));
							if (attParRef!=null){
								SharedDisk parent = sdisks.get("ovf:/disk/" + attParRef.getValue());
								SharedDisk child = sdisks.get("ovf:/disk/" + id); 
								child.setParent(parent);
								parent.addChild(child);
							}
						}
						break;
				}
		}	
	}