| <?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> |
| <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 a complex type</h1> |
| <div><p>A complex type allows elements in its content and may carry attributes. |
| You can add as many complex types as you want to an XML schema.</p><div class="skipspace"><p></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 <span class="uicontrol">Add Complex Type</span>.</span></li> |
| <li class="skipspace"><span>In the Properties view, type a new name for the complex type in |
| the <span class="uicontrol">Name</span> field.</span></li> |
| <li class="skipspace"><span>Click the <span class="uicontrol">More</span> button 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="skipspace"><span>Select <span class="uicontrol">restriction</span> or <span class="uicontrol">extension</span> from |
| the <span class="uicontrol">Derived by</span> drop down list.</span></li> |
| <li class="skipspace"><span>Click the <span class="uicontrol">Other</span> 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 <span class="uicontrol">abstract</span> 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 <span class="uicontrol">block</span> 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 <span class="uicontrol">final</span> 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 <span class="uicontrol">mixed</span> 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 <span class="uicontrol">Attributes</span> 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 <span class="uicontrol">Add |
| Attribute</span>.</span> You can specify the following values for |
| an attribute<ul><li><span class="uicontrol">fixed/default</span>. Click the <span class="uicontrol">More</span> button |
| and select the <span class="uicontrol">Fixed</span> or <span class="uicontrol">Default</span> 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.</li> |
| <li><span class="uicontrol">form</span>. 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">name</span>Enter the name of the attribute.</li> |
| <li><span class="uicontrol">type</span>Click the <span class="uicontrol">More</span> button |
| and select the type of the attribute. </li> |
| <li><span class="uicontrol">use</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 <span class="uicontrol">Default</span> 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 <span class="uicontrol">Add |
| Attribute Ref</span></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 <span class="uicontrol">ref</span> 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 <span class="uicontrol">Add Attribute Group Ref</span></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">ref</span> drop down list.</span></li> |
| </ol> |
| </li> |
| <li class="skipspace"><span>An <samp class="codeph">any</samp> element enables attributes to appear |
| in <samp class="codeph">any</samp> elements. To add an <samp class="codeph">any</samp> attribute, |
| right-click in the Attributes page, and click <span class="uicontrol">Add Any Attribute</span>.</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 <span class="uicontrol">processContents</span> 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 <span class="uicontrol">Documentation</span> tab if you want |
| to provide any information about this complext 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><p> |
| (C) Copyright IBM Corporation 2000, 2005. All Rights Reserved. |
| </p> |
| </body> |
| </html> |