diff --git a/pom.xml b/pom.xml
index 0f1eb53..4801683 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,7 +74,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/x
org.fedoraproject.xmvn
xmvn-api
- 4.3.0
+ 5.0.0
+
+
+ io.kojan
+ kojan-xml
+ 1.0.1
org.yaml
diff --git a/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java b/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java
index 839c8d5..358a76f 100644
--- a/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java
+++ b/src/main/java/org/fedoraproject/javapackages/validator/validators/MavenMetadataValidator.java
@@ -1,6 +1,6 @@
package org.fedoraproject.javapackages.validator.validators;
-import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Map;
@@ -8,19 +8,17 @@
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import javax.xml.stream.XMLStreamException;
-
import org.apache.commons.compress.archivers.cpio.CpioArchiveEntry;
import org.apache.commons.io.IOUtils;
import org.fedoraproject.javapackages.validator.spi.Decorated;
import org.fedoraproject.javapackages.validator.util.Common;
import org.fedoraproject.javapackages.validator.util.ElementwiseValidator;
import org.fedoraproject.xmvn.metadata.PackageMetadata;
-import org.fedoraproject.xmvn.metadata.io.stax.MetadataStaxReader;
import io.kojan.javadeptools.rpm.RpmArchiveInputStream;
import io.kojan.javadeptools.rpm.RpmInfo;
import io.kojan.javadeptools.rpm.RpmPackage;
+import io.kojan.xml.XMLException;
/// Validator which checks that Maven metadata XML stored in
/// `/usr/share/maven-metadata/`.
@@ -75,9 +73,10 @@ public void validate(RpmPackage rpm) throws Exception {
for (var entry : metadataXmls) {
PackageMetadata packageMetadata = null;
- try (var is = new ByteArrayInputStream(entry.getValue())) {
- packageMetadata = new MetadataStaxReader().read(is, true);
- } catch (XMLStreamException ex) {
+ try {
+ String xml = new String(entry.getValue(), StandardCharsets.UTF_8);
+ packageMetadata = PackageMetadata.fromXML(xml);
+ } catch (XMLException ex) {
fail("{0}: metadata validation failed: {1}", Decorated.rpm(rpm), Decorated.plain(ex.getMessage()));
continue;
}