1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package tests;
21
22 import junit.framework.TestCase;
23 import org.apache.ws.commons.schema.*;
24
25 import javax.xml.namespace.QName;
26 import javax.xml.transform.stream.StreamSource;
27 import java.io.ByteArrayOutputStream;
28 import java.io.FileInputStream;
29 import java.io.InputStream;
30 import java.util.Iterator;
31
32 public class ElementRefsTest extends TestCase {
33 public void testElementRefs() throws Exception {
34 QName ELEMENT_QNAME = new QName("http://soapinterop.org/types",
35 "attTests");
36 InputStream is = new FileInputStream(Resources.asURI("elementreferences.xsd"));
37 XmlSchemaCollection schemaCol = new XmlSchemaCollection();
38 XmlSchema schema = schemaCol.read(new StreamSource(is), null);
39
40 XmlSchemaElement elem = schemaCol.getElementByQName(ELEMENT_QNAME);
41
42 assertNotNull(elem);
43
44 XmlSchemaComplexType cmplxType = (XmlSchemaComplexType)elem.getSchemaType();
45 XmlSchemaObjectCollection items = ((XmlSchemaSequence)cmplxType.getParticle()).getItems();
46
47 Iterator it = items.getIterator();
48 while (it.hasNext()) {
49 XmlSchemaElement innerElement = (XmlSchemaElement)it.next();
50 assertNotNull(innerElement.getRefName());
51 }
52
53
54 ByteArrayOutputStream bos = new ByteArrayOutputStream();
55 schema.write(bos);
56 }
57
58 }