1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.archetype.old.descriptor;
20
21 import javax.xml.parsers.SAXParser;
22 import javax.xml.parsers.SAXParserFactory;
23
24 import java.io.File;
25 import java.io.InputStream;
26
27 import org.codehaus.plexus.PlexusTestCase;
28 import org.xml.sax.InputSource;
29 import org.xml.sax.SAXException;
30 import org.xml.sax.SAXParseException;
31 import org.xml.sax.helpers.DefaultHandler;
32
33 public class ArchetypeXsdTest extends PlexusTestCase {
34 private static final String ARCHETYPE_XSD = "archetype-1.0.0.xsd";
35
36 public void testXsd() throws Exception {
37 File archetypeXsd = new File(getBasedir(), "/target/generated-site/resources/xsd/" + ARCHETYPE_XSD);
38
39 SAXParserFactory factory = SAXParserFactory.newInstance();
40 factory.setValidating(true);
41 factory.setNamespaceAware(true);
42 SAXParser saxParser = factory.newSAXParser();
43 saxParser.setProperty(
44 "http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
45 saxParser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", archetypeXsd);
46
47 try (InputStream in = getClass().getResourceAsStream("sample-archetype.xml")) {
48 saxParser.parse(new InputSource(in), new Handler());
49 }
50 }
51
52 private static class Handler extends DefaultHandler {
53 @Override
54 public void warning(SAXParseException e) throws SAXException {
55 throw e;
56 }
57
58 @Override
59 public void error(SAXParseException e) throws SAXException {
60 throw e;
61 }
62 }
63 }