KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ws > jaxme > xs > xml > XsTComplexType


1 /*
2  * Copyright 2003, 2004 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15
16  */

17 package org.apache.ws.jaxme.xs.xml;
18
19
20 /** <p>Interface of a complex type, to be shared
21  * by {@link org.apache.ws.jaxme.xs.xml.XsTLocalComplexType} and
22  * {@link XsTComplexType}.
23  * Follows this specification:
24  * <pre>
25  * &lt;xs:complexType name="complexType" abstract="true"&gt;
26  * &lt;xs:complexContent&gt;
27  * &lt;xs:extension base="xs:annotated"&gt;
28  * &lt;xs:group ref="xs:complexTypeModel"/&gt;
29  * &lt;xs:attribute name="name" type="xs:NCName"&gt;
30  * &lt;xs:annotation&gt;
31  * &lt;xs:documentation&gt;
32  * Will be restricted to required or forbidden
33  * &lt;/xs:documentation&gt;
34  * &lt;/xs:annotation&gt;
35  * &lt;/xs:attribute&gt;
36  * &lt;xs:attribute name="mixed" type="xs:boolean" use="optional" default="false"&gt;
37  * &lt;xs:annotation&gt;
38  * &lt;xs:documentation&gt;
39  * Not allowed if simpleContent child is chosen.
40  * May be overriden by setting on complexContent child.
41  * &lt;/xs:documentation&gt;
42  * &lt;/xs:annotation&gt;
43  * &lt;/xs:attribute&gt;
44  * &lt;xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/&gt;
45  * &lt;xs:attribute name="final" type="xs:derivationSet"/&gt;
46  * &lt;xs:attribute name="block" type="xs:derivationSet"/&gt;
47  * &lt;/xs:extension&gt;
48  * &lt;/xs:complexContent&gt;
49  * &lt;/xs:complexType&gt;
50  *
51  * &lt;xs:group name="complexTypeModel"&gt;
52  * &lt;xs:choice&gt;
53  * &lt;xs:element ref="xs:simpleContent"/&gt;
54  * &lt;xs:element ref="xs:complexContent"/&gt;
55  * &lt;xs:sequence&gt;
56  * &lt;xs:annotation&gt;
57  * &lt;xs:documentation&gt;
58  * This branch is short for &amp;lt;complexContent&amp;gt;
59  * &amp;lt;restriction base="xs:anyType"&amp;gt;
60  * ...
61  * &amp;lt;/restriction&amp;gt;
62  * &amp;lt;/complexContent&amp;gt;
63  * &lt;/xs:documentation&gt;
64  * &lt;/xs:annotation&gt;
65  * &lt;xs:group ref="xs:typeDefParticle" minOccurs="0"/&gt;
66  * &lt;xs:group ref="xs:attrDecls"/&gt;
67  * &lt;/xs:sequence&gt;
68  * &lt;/xs:choice&gt;
69  * &lt;/xs:group&gt;
70  *
71  * &lt;xs:group name="typeDefParticle"&gt;
72  * &lt;xs:annotation&gt;
73  * &lt;xs:documentation&gt;
74  * 'complexType' uses this
75  * &lt;/xs:documentation&gt;
76  * &lt;/xs:annotation&gt;
77  * &lt;xs:choice&gt;
78  * &lt;xs:element name="group" type="xs:groupRef"/&gt;
79  * &lt;xs:element ref="xs:all"/&gt;
80  * &lt;xs:element ref="xs:choice"/&gt;
81  * &lt;xs:element ref="xs:sequence"/&gt;
82  * &lt;/xs:choice&gt;
83  * &lt;/xs:group&gt;
84  * </pre></p>
85  *
86  * @author <a HREF="mailto:joe@ispsoft.de">Jochen Wiedmann</a>
87  */

88 public interface XsTComplexType extends XsTAnnotated, XsGTypeDefParticle, XsGAttrDecls, XsRedefinable {
89   public void setMixed(boolean pMixed);
90   public boolean isMixed();
91
92   public void setAbstract(boolean pAbstract);
93   public boolean isAbstract();
94
95   public XsESimpleContent createSimpleContent();
96
97   public XsESimpleContent getSimpleContent();
98
99   public XsEComplexContent createComplexContent();
100
101   public XsEComplexContent getComplexContent();
102
103   public void setName(XsNCName pName);
104
105   public XsNCName getName();
106 }
107
Popular Tags