Регулярное выражение, упомянутое Брайаном Окли, будет работать (с оговорками, которые он упоминает).
Другие, кто высказался против идеи не знать пространства имен, включенного в XML-документ для анализа, забывают о спецификации XSDдля подстановочных знаков (см. раздел 3.10 спецификации XML-схемы части 1 ).
Вы можете быть в сценарии, как я в настоящее время, где у вас есть только определенная базовая XSD, но которая намеренноопределилэлементы для разрешения произвольных расширений XML из других пространств имен.В этом сценарии вам придется использовать XPath для анализа любого XML из других пространств имен, которые используют элементы подстановки XSD.Для моего парсера мне нужно сначала выяснить, какие пространства имен используются.Затем, основываясь на этом, возьмите соответствующие предопределенные XPath для этих пространств имен, прежде чем я смогу проанализировать документ.
Использование подстановочных знаков XSD удобно, когда вам нужна просто базовая структура, но также требуется гибкость, позволяющая другимдобавлять свою собственную информацию независимо друг от друга, чтобы вам не приходилось постоянно пересматривать XSD для любого случайного запроса из другой группы и рисковать нарушением тех, кто в данный момент использует схему.
Я не нашел окончательного решения дляэто сам.Но склоняется к использованию регулярных выражений для захвата префиксов XML (которые, вероятно, будут иметь ложные срабатывания), а затем проверяет эти совпадения с помощью JAXP org.w3c.dom.Document.lookupNamespaceURI (префикс String) для удаления ложных срабатываний.