1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package tests.customext.elt;
20
21 import junit.framework.TestCase;
22 import org.apache.ws.commons.schema.XmlSchema;
23 import org.apache.ws.commons.schema.XmlSchemaCollection;
24 import org.apache.ws.commons.schema.XmlSchemaElement;
25 import org.apache.ws.commons.schema.constants.Constants;
26 import org.w3c.dom.Document;
27 import tests.Resources;
28
29 import javax.xml.parsers.DocumentBuilderFactory;
30 import java.util.Iterator;
31 import java.util.Map;
32
33
34
35
36 public class CustomExtElementDeserializerTest extends TestCase {
37
38
39 public void testDeserialization() throws Exception {
40
41 System.setProperty(Constants.SystemConstants.EXTENSION_REGISTRY_KEY,
42 CustomExtensionRegistry.class.getName());
43
44
45 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
46 documentBuilderFactory.setNamespaceAware(true);
47 Document doc = documentBuilderFactory.newDocumentBuilder().
48 parse(Resources.asURI("/external/externalElementAnnotations.xsd"));
49
50 XmlSchemaCollection schemaCol = new XmlSchemaCollection();
51 XmlSchema schema = schemaCol.read(doc,null);
52 assertNotNull(schema);
53
54
55
56 Iterator values = schema.getElements().getValues();
57 while (values.hasNext()) {
58 XmlSchemaElement elt = (XmlSchemaElement) values.next();
59 assertNotNull(elt);
60 Map metaInfoMap = elt.getMetaInfoMap();
61 assertNotNull(metaInfoMap);
62
63 CustomElement customElt = (CustomElement)metaInfoMap.get(CustomElement.CUSTOM_ELT_QNAME);
64 assertNotNull(customElt);
65
66 }
67
68
69 System.getProperties().remove(Constants.SystemConstants.EXTENSION_REGISTRY_KEY);
70
71 }
72 }