/** * validate a .sld against the schema * * @param xml input stream representing the .sld file * @return list of SAXExceptions (0 if the file's okay) */ public List validateSLD(InputSource xml) { URL schemaURL = SLDValidator.class.getResource("/schemas/sld/StyledLayerDescriptor.xsd"); return ResponseUtils.validate(xml, schemaURL, false, entityResolver); } }
public static List validate( InputSource xml, URL schemaURL, boolean skipTargetNamespaceException, EntityResolver entityResolver) { StreamSource source = null; if (xml.getCharacterStream() != null) { source = new StreamSource(xml.getCharacterStream()); } else if (xml.getByteStream() != null) { source = new StreamSource(xml.getByteStream()); } else { throw new IllegalArgumentException("Could not turn input source to stream source"); } return validate(source, schemaURL, skipTargetNamespaceException, entityResolver); }
/** * validate a GETMAP against the schema * * @param xml input stream representing the GETMAP file * @param SchemaUrl location of the schemas. Normally use * ".../capabilities/sld/StyleLayerDescriptor.xsd" * @return list of SAXExceptions (0 if the file's okay) */ public List validateGETMAP(InputSource xml, URL SchemaUrl) { EntityResolverProvider provider = GeoServerExtensions.bean(EntityResolverProvider.class); return ResponseUtils.validate(xml, SchemaUrl, true, provider.getEntityResolver()); } }
public static List validate( Source xml, URL schemaURL, boolean skipTargetNamespaceException, EntityResolver entityResolver) { try { Schema schema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI) .newSchema(schemaURL); Validator v = schema.newValidator(); if (entityResolver != null) { v.setResourceResolver( new EntityResolverToLSResourceResolver( v.getResourceResolver(), entityResolver)); } Handler handler = new Handler(skipTargetNamespaceException, entityResolver); v.setErrorHandler(handler); v.validate(xml); return handler.errors; } catch (SAXException e) { return exception(e); } catch (IOException e) { return exception(e); } }