| <?xml version="1.0" encoding="utf-8"?> |
| <!--Arbortext, Inc., 1988-2005, v.4002--> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html> |
| <head> |
| <!-- /******************************************************************************* |
| * Copyright (c) 2000, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ --> |
| <link href="../../org.eclipse.wst.doc.user/common.css" rel="stylesheet" type="text/css"/> |
| <title>Adding a complex type</title> |
| </head> |
| <body id="taddcmxt"><a name="taddcmxt"><!-- --></a> <h1 class="topictitle1">Adding |
| complex types</h1> <div><p>A complex type allows elements in its content and |
| can carry attributes. Complex types can be used to help determine the appropriate |
| content for any instance documents generated from or associated with your |
| XML schema.</p> <div class="section"><p>You can add as many complex types |
| as you want to an XML schema.</p> <p>The following instructions were written |
| for the Resource perspective, but they will also work in many other perspectives.</p> <p>To |
| add a complex type to an XML schema, follow these steps:</p> </div> <ol> |
| <li class="skipspace"><span>Open your XML schema in the XML schema editor.</span></li> |
| <li class="skipspace"><span>In the Outline view, select your schema.</span></li> |
| <li class="skipspace"><span>In the Graph view, right click in the <b>Types</b> section |
| and click <b> <span class="uicontrol">Add Complex Type</span></b>.</span></li> |
| <li class="skipspace"><span>In the Properties view, type a new name for the |
| complex type in the <b> <span class="uicontrol">Name</span></b> field.</span></li> |
| <li class="skipspace"><span>Click the <b> <span class="uicontrol">Browse</span></b> button |
| <img border="0" height="18" src="../images/Browse.gif" width="22"/> to select |
| a base type for your complex type.</span> You can either set a base type for |
| your complex type, or you add a content model to it (which represents any |
| data that may be contained inside an element), but you cannot do both. For |
| more information about content models, refer to the related tasks.</li> |
| <li class="stepexpand"><span>Select <span class="uicontrol">restriction</span> or <span |
| class="uicontrol">extension</span> from the <span class="uicontrol">Derived |
| by</span> list.</span> This specifies whether your type is derived from its |
| base type by restriction or extension.</li> |
| <li class="skipspace"><span>Click the <b> <span class="uicontrol">Other</span></b> tab.</span> The |
| following optional values can be specified in this page:<ol type="a"> |
| <li class="skipspace"><span>Select the appropriate value in the <b> <span |
| class="uicontrol">abstract</span></b> list.</span> When a complex type is |
| declared abstract, it cannot be used in an instance document. Click <b>true</b> if |
| you want the complex type to be abstract; otherwise, click <b>false</b>.</li> |
| <li class="skipspace"><span>Select the appropriate value in the <b> <span |
| class="uicontrol">block</span></b> list.</span> If you select <b>#all</b>, |
| the complex type may not be replaced by any derivations. If you select <b>extension</b>, |
| the complex type may not be replaced by any type derived from it by extending |
| it. If you select <b>restriction</b>, the complex type may not be replaced |
| by any type derived from it by restricting it.</li> |
| <li class="skipspace"><span> Select the appropriate value in the <b> <span |
| class="uicontrol">final</span></b> list.</span> If you select <b>#all</b>, |
| the complex type may not be derived from at all. If you select <b>extension</b>, |
| the complex type may not be derived from by extension. If you select <b>restriction</b>, |
| the complex type may not be derived from by restriction.</li> |
| <li class="skipspace"><span>Select the appropriate value in the <b> <span |
| class="uicontrol">mixed</span></b> list.</span> If you click <b>true</b>, |
| the complex type can contain mixed content (both character data and other |
| elements). If you click <b>false</b>, the complex type can only contain other |
| elements.</li> |
| </ol> </li> |
| <li class="skipspace"><span>Click the <b> <span class="uicontrol">Attributes</span></b> tab.</span> You |
| can use this page to add attributes, attribute references, attributes group |
| references, and <samp class="codeph">any</samp> attributes to your complex |
| type.</li> |
| <li class="skipspace"><span>An attribute associates an attribute name with |
| a specific type and value. To add an attribute, right-click in the Attributes |
| page, and click <b> <span class="uicontrol">Add Attribute</span></b>.</span> You |
| can specify the following values for an attribute<ul> |
| <li><b><span class="uicontrol">fixed/default</span></b>. Click the <b> <span |
| class="uicontrol">Browse</span></b> button <span> <img border="0" height="18" |
| src="../images/Browse.gif" width="22"/></span> and select the <b> <span class="uicontrol">Fixed</span></b> or <b> <span |
| class="uicontrol">Default</span></b> radio button and specify an appropriate |
| value. If you select <b>Fixed</b>, the attribute has a fixed value, which |
| cannot be changed. If you select <b>Default</b>, the attribute has a default |
| value. When an attribute has a default value, the value of the attribute is |
| whatever value appears as the attribute's value in an instance document.</li> |
| <li><b><span class="uicontrol">form</span></b>. Use this field to indicate |
| if the appearance of this attribute in an instance of the XML schema must |
| be qualified by a namespace.</li> |
| <li><span class="uicontrol"><b>name</b>. </span>Enter the name of the attribute.</li> |
| <li><span class="uicontrol"><b>type</b>. </span>Click the <b> <span class="uicontrol">Browse</span></b> button <span> <img |
| border="0" height="18" src="../images/Browse.gif" width="22"/></span> and |
| select the type of the attribute. </li> |
| <li><span class="uicontrol"><b>use</b>. </span>This field indicates how an |
| attribute may be used in an instance document. If you select <b>optional</b>, |
| the attribute may appear once, but it does not have to. If you select <b>required</b>, |
| the attribute must appear once. If you select <b>prohibited</b>, the attribute |
| must not appear. <b>Note</b>: If you selected the <b> <span class="uicontrol">Default</span></b> radio |
| button, you must select <b>optional</b> in this field, otherwise the default |
| value will not be valid.</li> |
| </ul> </li> |
| <li class="skipspace"><span>An attribute reference provides a reference to |
| a global attribute. To add an attribute reference, right-click in the Attributes |
| page, and click <b> <span class="uicontrol">Add Attribute Ref</span>.</b> </span>A |
| declaration that references a global attribute enables the referenced attribute |
| to appear in the instance document in the context of the referencing declaration. |
| The menu option to add an attribute reference only appears if there are global |
| attributes defined elsewhere in the document.<ol type="a"> |
| <li><span>Select the reference, then select the global attribute you want |
| it to reference from the <b> <span class="uicontrol">ref</span></b> drop down |
| list.</span></li> |
| </ol> </li> |
| <li class="skipspace"><span>An attribute group reference provides a reference |
| to an attribute group. To add an attribute group reference, right-click in |
| the Attributes page, and click <b> <span class="uicontrol">Add Attribute Group |
| Ref. </span></b></span> A declaration that references an attribute group |
| enables the referenced attribute group to appear in the instance document |
| in the context of the referencing declaration. The menu option to add an attribute |
| group reference only appears if there are attribute groups defined elsewhere |
| in the document.<ol type="a"> |
| <li><span>Select the reference, then select the attribute group you want it |
| to reference from the<span class="uicontrol"> <b>ref</b></span> drop down |
| list.</span></li> |
| </ol> </li> |
| <li class="skipspace"><span>An <samp class="codeph">any</samp> element enables |
| element content according to namespaces, and the corresponding <samp class="codeph">any</samp> attribute |
| element enables attributes to appear in elements. To add an <samp class="codeph">any</samp> attribute, |
| right-click in the Attributes page, and click <b> <span class="uicontrol">Add |
| Any Attribute</span></b>.</span> You can specify the following values for |
| an <samp class="codeph">any</samp> attribute:<ul> |
| <li>For a <b>namespace</b> value, you can select <b>##any</b> (this allows |
| any well-formed XML from any namespace), <b>##local </b> (this allows any |
| well-formed XML that is not declared to be in a namespace, <b>##other </b> (this |
| allows any well-formed XML that is not from the target namespace of the type |
| being defined) or <b>##targetNamespace </b> (which is shorthand for the target |
| namespace of the type being defined). </li> |
| <li>For a <b> <span class="uicontrol">processContents</span></b> value, you |
| can select <b>skip</b> (the XML processor will not validate the attribute |
| content at all), <b>lax </b>(the XML processor will validate the attribute |
| content as much as it can), or <b>strict </b> (the XML processor will validate |
| all the attribute content).</li> |
| </ul> </li> |
| <li class="skipspace"><span>Click the <b> <span class="uicontrol">Documentation</span></b> tab |
| if you want to provide any information about this complex type.</span> The <span |
| class="uicontrol">Documentation</span> page is used for human readable material, |
| such as a description, and the <span class="uicontrol">App Info</span> page |
| can be used to provide information for applications.</li> |
| </ol> </div> <div><p><b class="reltaskshd">Related tasks</b><br/> <a href="../topics/taddcmod.html" |
| title="You can add a content model to an element, global element, a complex type, or a group. A content model is the representation of any data that may be contained inside the element, global element, complex type, or group." |
| >Adding a content model</a><br/> </p> </div> </body> |
| </html> |