protected void printProcessingInstruction(final Writer out,
			final FormatStack fstack, final ProcessingInstruction pi)
			throws IOException {
		String target = pi.getTarget();
		boolean piProcessed = false;

		if (fstack.isIgnoreTrAXEscapingPIs() == false) {
			if (target.equals(Result.PI_DISABLE_OUTPUT_ESCAPING)) {
				// special case... change the FormatStack
				fstack.setEscapeOutput(false);
				piProcessed = true;
			}
			else if (target.equals(Result.PI_ENABLE_OUTPUT_ESCAPING)) {
				// special case... change the FormatStack
				fstack.setEscapeOutput(true);
				piProcessed = true;
			}
		}
		if (piProcessed == false) {
			String rawData = pi.getData();

			// Write <?target data?> or if no data then just <?target?>
			if (!"".equals(rawData)) {
				write(out, "<?");
				write(out, target);
				write(out, " ");
				write(out, rawData);
				write(out, "?>");
			}
			else {
				write(out, "<?");
				write(out, target);
				write(out, "?>");
			}
		}
	}