private void copyEvent(XMLStreamReader reader, DataHandlerReader dataHandlerReader) throws OutputException {
try {
int eventType = reader.getEventType();
switch (eventType) {
case XMLStreamReader.DTD:
DTDReader dtdReader;
try {
dtdReader = (DTDReader)reader.getProperty(DTDReader.PROPERTY);
} catch (IllegalArgumentException ex) {
dtdReader = null;
}
if (dtdReader == null) {
throw new XMLStreamException("Cannot serialize the DTD because the XMLStreamReader doesn't support the DTDReader extension");
}
writeDTD(dtdReader.getRootName(), dtdReader.getPublicId(), dtdReader.getSystemId(), reader.getText());
break;
case XMLStreamReader.START_ELEMENT:
internalBeginStartElement(normalize(reader.getPrefix()), normalize(reader.getNamespaceURI()), reader.getLocalName());
for (int i=0, count=reader.getNamespaceCount(); i<count; i++) {
mapNamespace(normalize(reader.getNamespacePrefix(i)), normalize(reader.getNamespaceURI(i)), true, false);