Правильное использование Apache Tika MediaType
Я хочу использовать класс MediaType APache Tika для сравнения mediaTypes.
Сначала я использую Tika для обнаружения MediaType. Затем я хочу начать действие в соответствии с MediaType.
Поэтому, если MediaType относится к типу XML, я хочу выполнить какое-либо действие, если это сжатый файл, я хочу запустить другое действие.
Моя проблема в том, что существует много типов XML, так как я могу проверить, является ли это XML с использованием MediaType?
Вот моя предыдущая (до Тика) реализация:
if (contentType.contains("text/xml") ||
contentType.contains("application/xml") ||
contentType.contains("application/x-xml") ||
contentType.contains("application/atom+xml") ||
contentType.contains("application/rss+xml")) {
processXML();
}
else if (contentType.contains("application/gzip") ||
contentType.contains("application/x-gzip") ||
contentType.contains("application/x-gunzip") ||
contentType.contains("application/gzipped") ||
contentType.contains("application/gzip-compressed") ||
contentType.contains("application/x-compress") ||
contentType.contains("gzip/document") ||
contentType.contains("application/octet-stream")) {
processGzip();
}
Я хочу переключить его, чтобы использовать Тика что-то вроде следующего:
MediaType mediaType = MediaType.parse(contentType);
if (mediaType == APPLICATION_XML) {
return processXml();
} else if (mediaType == APPLICATION_ZIP || mediaType == OCTET_STREAM) {
return processGzip();
}
Но проблема в том, что Tika.detect (...) возвращает много разных типов, которые не имеют константы MediaType.
Как я могу просто определить MediaType, если это тип XML? Или если это тип Compress? Мне нужен тип "Father", который включает в себя все его дочерние элементы, возможно, метод, который является: "boolean isXML ()", который включает в себя application / xml и text / xml и application / x-xml или "boolean isCompress ()", который включает в себя все типы zip + gzip и т. д.