1 package tests;
2
3 import junit.framework.TestCase;
4 import org.apache.ws.commons.schema.*;
5
6 import javax.xml.namespace.QName;
7 import javax.xml.transform.stream.StreamSource;
8 import java.io.FileInputStream;
9 import java.io.InputStream;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public class ListTest extends TestCase {
29
30
31
32
33
34
35 public void testList() throws Exception {
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 QName ELEMENT_QNAME = new QName("http://soapinterop.org/types",
59 "workDays");
60 InputStream is = new FileInputStream(Resources.asURI("list.xsd"));
61 XmlSchemaCollection schemaCol = new XmlSchemaCollection();
62 XmlSchema schema = schemaCol.read(new StreamSource(is), null);
63
64 XmlSchemaElement elem = schemaCol.getElementByQName(ELEMENT_QNAME);
65 assertNotNull(elem);
66 assertEquals("workDays", elem.getName());
67 assertEquals(new QName("http://soapinterop.org/types", "workDays"),
68 elem.getQName());
69
70 XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType)elem.getSchemaType();
71 assertNotNull(simpleType);
72
73 XmlSchemaSimpleTypeRestriction r =
74 (XmlSchemaSimpleTypeRestriction)simpleType.getContent();
75 assertNotNull(r);
76
77 QName baseTypeName = r.getBaseTypeName();
78 assertEquals(new QName("http://soapinterop.org/types", "daysInWeek"),
79 baseTypeName);
80 XmlSchemaType type = schemaCol.getTypeByQName(baseTypeName);
81
82 XmlSchemaSimpleTypeContent content = ((XmlSchemaSimpleType)type).getContent();
83 assertEquals(new QName("http://www.w3.org/2001/XMLSchema", "integer"),
84 ((XmlSchemaSimpleTypeList)content).getItemTypeName());
85
86 }
87
88 }