private void addPage(Element parent) {
		Element pageNode = doc.createElementNS(getNamespace(), DefaultXmlNames.ELEMENT_Page);
		parent.appendChild(pageNode);
		
		//Image filename
		addAttribute(pageNode, DefaultXmlNames.ATTR_imageFilename, page.getImageFilename());
		
		//Width/height
		addAttribute(pageNode, DefaultXmlNames.ATTR_imageWidth, Integer.toString(layout.getWidth()));
		addAttribute(pageNode, DefaultXmlNames.ATTR_imageHeight, Integer.toString(layout.getHeight()));
		
		//Other Attributes (page type, ...)
		addContentObjectAttributes(pageNode, page.getAttributes());

		//Alternative images
		List<AlternativeImage> altImages = page.getAlternativeImages();
		if (altImages != null) {
			for (Iterator<AlternativeImage> it = altImages.iterator(); it.hasNext(); ) {
				AlternativeImage img = it.next();
				
				Element node = doc.createElementNS(getNamespace(), DefaultXmlNames.ELEMENT_AlternativeImage);
				pageNode.appendChild(node);
				addAttribute(node, DefaultXmlNames.ATTR_filename, img.getFilename());
				if (!img.getComments().isEmpty())
					addAttribute(node, DefaultXmlNames.ATTR_comments, img.getComments());
			}
		}
		
		//Border
		GeometricObject border = layout.getBorder();
		if (border != null) {
			Element node = doc.createElementNS(getNamespace(), DefaultXmlNames.ELEMENT_Border);
			pageNode.appendChild(node);
			addCoords(node, border.getCoords());
		}

		//Print space
		GeometricObject printSpace = layout.getPrintSpace();
		if (printSpace != null) {
			Element node = doc.createElementNS(getNamespace(), DefaultXmlNames.ELEMENT_PrintSpace);
			pageNode.appendChild(node);
			addCoords(node, printSpace.getCoords());
		}
		
		//Reading order
		addReadingOrder(pageNode, layout.getReadingOrder());
		
		//Layers
		addLayers(pageNode, layout.getLayers());
		
		//Relations
		addRelations(pageNode, layout.getRelations());
		
		//Regions
		for (int i=0; i<layout.getRegionCount(); i++) {
			addContentObject(pageNode, layout.getRegion(i));
		}
	}