public synchronized final
	void saveToCache () {
		if (getCache() == null)
			return;
		// absolutely required field
		if (getTitle()==null) return;
		//1. Compose this one and childrefs
		Element e = getSpecificDataXML();
		if (e==null) return; // element is corrupt and should not be cached 
		e.setAttribute("title", getTitle());
		e.setAttribute("url", url.toString());
		for (AbstractPage child: childPages) 
			if (child != null) {
				Element childElement = new Element("childref");
				childElement.setAttribute("class",child.getClass().getSimpleName());
				childElement.setAttribute("url",child.url.toString());
				e.addContent(childElement);
			}
		getCache().addElementWithReplacement(e);
	}