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.io.ByteArrayInputStream;
31 import java.io.ByteArrayOutputStream;
32 import java.util.Iterator;
33 import java.util.Map;
34
35
36
37
38 public class CustomExtElementSerializerTest extends TestCase {
39
40
41 public void testSerialization() throws Exception {
42
43 System.setProperty(Constants.SystemConstants.EXTENSION_REGISTRY_KEY,
44 CustomExtensionRegistry.class.getName());
45
46
47 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
48 documentBuilderFactory.setNamespaceAware(true);
49
50
51 if (documentBuilderFactory.getClass().toString().indexOf("crimson") != -1) {
52 return;
53 }
54 Document doc = documentBuilderFactory.newDocumentBuilder().
55 parse(Resources.asURI("/external/externalElementAnnotations.xsd"));
56
57 XmlSchemaCollection schemaCol = new XmlSchemaCollection();
58 XmlSchema schema = schemaCol.read(doc,null);
59 assertNotNull(schema);
60
61
62
63 ByteArrayOutputStream baos = new ByteArrayOutputStream();
64 schema.write(baos);
65 Document doc2 = documentBuilderFactory.newDocumentBuilder().
66 parse(new ByteArrayInputStream(baos.toByteArray()));
67
68
69 schemaCol = new XmlSchemaCollection();
70 schema = schemaCol.read(doc2,null);
71 assertNotNull(schema);
72
73
74
75 Iterator values = schema.getElements().getValues();
76 while (values.hasNext()) {
77 XmlSchemaElement elt = (XmlSchemaElement) values.next();
78 assertNotNull(elt);
79 Map metaInfoMap = elt.getMetaInfoMap();
80 assertNotNull(metaInfoMap);
81
82 CustomElement customElt = (CustomElement)metaInfoMap.get(CustomElement.CUSTOM_ELT_QNAME);
83 assertNotNull(customElt);
84
85 }
86
87
88 System.getProperties().remove(Constants.SystemConstants.EXTENSION_REGISTRY_KEY);
89
90 }
91 }