io.apicurio.registry.rules.validity.XmlContentValidator Maven / Gradle / Ivy
package io.apicurio.registry.rules.validity;
import io.apicurio.registry.content.TypedContent;
import io.apicurio.registry.rest.v3.beans.ArtifactReference;
import io.apicurio.registry.rules.RuleViolationException;
import io.apicurio.registry.types.RuleType;
import io.apicurio.registry.util.DocumentBuilderAccessor;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
public class XmlContentValidator implements ContentValidator {
/**
* Constructor.
*/
public XmlContentValidator() {
}
/**
* @see io.apicurio.registry.rules.validity.ContentValidator#validate(ValidityLevel, TypedContent, Map)
*/
@Override
public void validate(ValidityLevel level, TypedContent content,
Map resolvedReferences) throws RuleViolationException {
if (level == ValidityLevel.SYNTAX_ONLY || level == ValidityLevel.FULL) {
try (InputStream stream = content.getContent().stream()) {
DocumentBuilderAccessor.getDocumentBuilder().parse(stream);
} catch (Exception e) {
throw new RuleViolationException("Syntax violation for XML artifact.", RuleType.VALIDITY,
level.name(), e);
}
}
}
/**
* @see io.apicurio.registry.rules.validity.ContentValidator#validateReferences(TypedContent, List)
*/
@Override
public void validateReferences(TypedContent content, List references)
throws RuleViolationException {
// Note: not yet implemented!
}
}