1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.doxia.module.xdoc;
20
21 import java.io.File;
22 import java.util.regex.Matcher;
23 import java.util.regex.Pattern;
24
25 import org.apache.commons.lang3.StringUtils;
26 import org.apache.maven.doxia.markup.XmlMarkup;
27 import org.apache.maven.doxia.xsd.AbstractXmlValidatorTest;
28
29 import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
30
31
32
33
34
35
36
37 public class XdocValidatorTest extends AbstractXmlValidatorTest {
38
39 private static final File XDOC_XSD = new File(getBasedir(), "/src/main/resources/xdoc-2.0.xsd");
40
41
42 protected String[] getIncludes() {
43 return new String[] {"**/*.xml", "**/xdoc/*"};
44 }
45
46
47 protected String addNamespaces(String content) {
48 Pattern pattern = Pattern.compile(".*<([A-Za-z][A-Za-z0-9:_.-]*)([^>]*)>.*");
49 Matcher matcher = pattern.matcher(content);
50 if (matcher.find()) {
51 String root = matcher.group(1);
52 String value = matcher.group(2);
53
54 if (!value.contains(XDOC_XSD.getName())) {
55 String faqs = "<" + root + " xmlns=\"http://maven.apache.org/XDOC/2.0\""
56 + " xmlns:xsi=\"" + XmlMarkup.XML_NAMESPACE + "\""
57 + " xsi:schemaLocation=\"http://maven.apache.org/XDOC/2.0 " + XDOC_XSD.toURI() + "\" ";
58
59 return StringUtils.replace(content, "<" + root, faqs);
60 }
61 }
62
63 return content;
64 }
65
66 @Override
67 public void testValidateFiles() {
68
69 }
70 }