1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package tests.customext.attrib;
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 CustomExtensionSerializerTest extends TestCase {
39
40 public void testSerialization() throws Exception {
41
42 System.setProperty(Constants.SystemConstants.EXTENSION_REGISTRY_KEY,
43 CustomExtensionRegistry.class.getName());
44
45
46 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
47 documentBuilderFactory.setNamespaceAware(true);
48
49
50 if (documentBuilderFactory.getClass().toString().indexOf("crimson") != -1) {
51 return;
52 }
53 Document doc1 = documentBuilderFactory.newDocumentBuilder().
54 parse(Resources.asURI("/external/externalAnnotations.xsd"));
55
56 XmlSchemaCollection schemaCol = new XmlSchemaCollection();
57 XmlSchema schema = schemaCol.read(doc1,null);
58 assertNotNull(schema);
59
60
61
62 ByteArrayOutputStream baos = new ByteArrayOutputStream();
63 schema.write(baos);
64
65
66 Document doc2 = documentBuilderFactory.newDocumentBuilder().
67 parse(new ByteArrayInputStream(baos.toByteArray()));
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 CustomAttribute customAttrib = (CustomAttribute)metaInfoMap.get(CustomAttribute.CUSTOM_ATTRIBUTE_QNAME);
83 assertNotNull(customAttrib);
84
85 }
86
87
88
89 System.getProperties().remove(Constants.SystemConstants.EXTENSION_REGISTRY_KEY);
90
91 }
92
93 }