001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.commons.betwixt.schema;
019
020 import java.beans.IntrospectionException;
021
022 import org.apache.commons.betwixt.ElementDescriptor;
023
024 /**
025 * @author <a href='http://commons.apache.org/'>Apache Commons Team</a>
026 * @version $Revision: 561314 $
027 */
028 public class ElementReference extends GlobalElement {
029
030 protected String maxOccurs = "1";
031
032 protected int minOccurs = 0;
033
034 public ElementReference(String string, GlobalComplexType complexType) {
035
036 super(string, complexType);
037 }
038
039 public ElementReference(String name, String type) {
040 super(name, type);
041 }
042
043 public ElementReference(TranscriptionConfiguration configuration, ElementDescriptor elementDescriptor, Schema schema) throws IntrospectionException {
044 setName(elementDescriptor.getLocalName());
045 if (elementDescriptor.isHollow()) {
046 setComplexType( schema.addGlobalComplexType( configuration, elementDescriptor ));
047 if (elementDescriptor.isCollective()) {
048 maxOccurs = "unbounded";
049 }
050 } else {
051
052 setType("xsd:string");
053 }
054 }
055
056 public int getMinOccurs() {
057 return minOccurs;
058 }
059
060 public void setMinOccurs(int minOccurs) {
061 this.minOccurs = minOccurs;
062 }
063
064 public String getMaxOccurs() {
065 return maxOccurs;
066 }
067
068 public void setMaxOccurs(String maxOccurs) {
069 this.maxOccurs = maxOccurs;
070 }
071
072 }