| <?xml version="1.0" encoding="UTF-8"?> |
| <!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 rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.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">More</span></b> button |
| <img border="0" src="../images/More.gif" width="22" height="18"> 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">More</span></b> button <span> |
| <img border="0" src="../images/More.gif" width="22" height="18"></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">More</span></b> button <span> |
| <img border="0" src="../images/More.gif" width="22" height="18"></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> |