private void writeAttributeType(Object unknownAttributeType, final PrintWriter writer, final int textDepth) {

		final String initialBlanks = createEmptyString(textDepth);

		if(unknownAttributeType instanceof ConfigurationString) {
			// zeichenkette schreiben
			final ConfigurationString string = (ConfigurationString)unknownAttributeType;

			writer.print(initialBlanks);
			writer.print("<zeichenkette");

			writeAttributeAndValueCheckedValue(" laenge", Integer.toString(string.getLength()), writer);
			writeAttributeAndValueCheckedValue(" kodierung", string.getStringEncoding(), writer);
			writer.println("/>");
		}
		else if(unknownAttributeType instanceof ConfigurationIntegerDef) {
			// ganzzahl schreiben

			final ConfigurationIntegerDef integer = (ConfigurationIntegerDef)unknownAttributeType;

			writer.print(initialBlanks);
			writer.print("<ganzzahl");

			writeAttributeAndValueCheckedValue(" bits", Integer.toString(integer.getBits()), writer);
			writer.println(">");

			// (bereich|zustand)+
			final Object[] regionAndState = integer.getValueRangeAndState();

			for(int nr = 0; nr < regionAndState.length; nr++) {
				if(regionAndState[nr] instanceof ConfigurationValueRange) {
					// Das Objekt ist vom Typ bereich
					writeRegion((ConfigurationValueRange)regionAndState[nr], writer, textDepth + 1);
				}
				else {
					// Das Objekt ist vom Typ zustand
					writeState((ConfigurationState)regionAndState[nr], writer, textDepth + 1);
				}
			}

			writer.print(initialBlanks);
			writer.println("</ganzzahl>");
		}
		else if(unknownAttributeType instanceof ConfigurationTimeStamp) {
			// zeitstempel schreiben
			writeTimeStamp((ConfigurationTimeStamp)unknownAttributeType, writer, textDepth);
		}
		else if(unknownAttributeType instanceof ConfigurationObjectReference) {
			// objektReferenz
			writeObjectReference((ConfigurationObjectReference)unknownAttributeType, writer, textDepth);
		}
		else if(unknownAttributeType instanceof ConfigurationDoubleDef) {
			// kommazahl schreiben
			writeFloatingPointNumber((ConfigurationDoubleDef)unknownAttributeType, writer, textDepth);
		}
	}