1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 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.FileInputStream; 28 import java.io.InputStream; 29 30 /* 31 * Copyright 2004,2007 The Apache Software Foundation. 32 * Copyright 2006 International Business Machines Corp. 33 * 34 * Licensed under the Apache License, Version 2.0 (the "License"); 35 * you may not use this file except in compliance with the License. 36 * You may obtain a copy of the License at 37 * 38 * http://www.apache.org/licenses/LICENSE-2.0 39 * 40 * Unless required by applicable law or agreed to in writing, software 41 * distributed under the License is distributed on an "AS IS" BASIS, 42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 43 * See the License for the specific language governing permissions and 44 * limitations under the License. 45 * 46 */ 47 public class ListTest extends TestCase { 48 49 /** 50 * This method will test the list. 51 * 52 * @throws Exception Any exception encountered 53 */ 54 public void testList() throws Exception { 55 56 /* 57 <schema xmlns="http://www.w3.org/2001/XMLSchema" 58 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 59 xmlns:tns="http://soapinterop.org/types" 60 targetNamespace="http://soapinterop.org/types"> 61 62 <element name="workDays"> 63 <simpleType> 64 <restriction base="tns:daysInWeek"> 65 <length value="5"/> 66 </restriction> 67 </simpleType> 68 </element> 69 70 <simpleType name="daysInWeek"> 71 <list itemType="xsd:integer"/> 72 </simpleType> 73 74 </schema> 75 */ 76 77 QName ELEMENT_QNAME = new QName("http://soapinterop.org/types", 78 "workDays"); 79 InputStream is = new FileInputStream(Resources.asURI("list.xsd")); 80 XmlSchemaCollection schemaCol = new XmlSchemaCollection(); 81 schemaCol.read(new StreamSource(is), null); 82 83 XmlSchemaElement elem = schemaCol.getElementByQName(ELEMENT_QNAME); 84 assertNotNull(elem); 85 assertEquals("workDays", elem.getName()); 86 assertEquals(new QName("http://soapinterop.org/types", "workDays"), 87 elem.getQName()); 88 89 XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType)elem.getSchemaType(); 90 assertNotNull(simpleType); 91 92 XmlSchemaSimpleTypeRestriction r = 93 (XmlSchemaSimpleTypeRestriction)simpleType.getContent(); 94 assertNotNull(r); 95 96 QName baseTypeName = r.getBaseTypeName(); 97 assertEquals(new QName("http://soapinterop.org/types", "daysInWeek"), 98 baseTypeName); 99 XmlSchemaType type = schemaCol.getTypeByQName(baseTypeName); 100 101 XmlSchemaSimpleTypeContent content = ((XmlSchemaSimpleType)type).getContent(); 102 assertEquals(new QName("http://www.w3.org/2001/XMLSchema", "integer"), 103 ((XmlSchemaSimpleTypeList)content).getItemTypeName()); 104 105 } 106 107 }