syeshin | befd53e | 2005-07-27 18:16:40 +0000 | [diff] [blame] | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <!DOCTYPE html |
| 3 | PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| 4 | <html> |
| 5 | <head> |
| 6 | <link rel="stylesheet" type="text/css" href="../../com.ibm.help.doc/swg_info_common.css" /> |
| 7 | <title>XML file associations with DTDs and XML schemas</title> |
| 8 | <script language="JavaScript"> |
| 9 | function popup_window( url, id, width, height ) |
| 10 | { |
| 11 | popup = window.open( url, id, 'toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=' + width + ',height=' + height + ',left=,top=' ); |
| 12 | popup.focus(); |
| 13 | } |
| 14 | </script><script language="JavaScript" src="help/liveHelp.js"></script></head> |
| 15 | <body id="cxmlcat"><a name="cxmlcat"><!-- --></a> |
| 16 | |
| 17 | <h1 class="topictitle1">XML file associations with DTDs and XML schemas</h1> |
| 18 | <div><p>There are two different ways to associate XML files with DTDs or |
| 19 | XML schemas.</p><ol><li>Direct association - The XML file contains either the name of a DTD in |
| 20 | its doctype declaration (for example, <!DOCTYPE root-element SYSTEM " <var class="varname">dtdfile.dtd</var>" |
| 21 | >, where <var class="varname">dtdfile.dtd</var> is the name of the DTD file) or it |
| 22 | contains the path of an XML schema in the schemaLocation attribute of the |
| 23 | XML file root element (for example, <xsi:schemaLocation="http://www.ibm.com |
| 24 | <var class="varname">schema.xsd</var>">, where <var class="varname">schema.xsd</var> is |
| 25 | the name of the XML schema.</li> |
| 26 | <li>XML Catalog entry - You can register DTD and XML schema files in |
| 27 | the XML Catalog and associate them with a <var class="varname">Key</var> that represents |
| 28 | them. You can then refer to a DTD or XML schema file <var class="varname">Key</var> from |
| 29 | an XML file instead of referring directly to the DTD or XML schema file. An |
| 30 | XML Catalog entry contains two parts - the Key (which represents the DTD or |
| 31 | XML schema) and a URI (which contains information about the DTD or XML schema |
| 32 | location).</li> |
| 33 | </ol> |
| 34 | <div class="skipspace"><h4 class="sectiontitle">How an association works </h4><b>Associating an XML |
| 35 | file with a DTD </b><div class="p">If an XML file is associated with a DTD, a DOCTYPE |
| 36 | tag such as the following is included in the XML file:<pre><!DOCTYPE root-name PUBLIC "<var class="varname">InvoiceId</var>" "<var class="varname">C:\mydtds\Invoice.dtd</var>"></pre> |
| 37 | </div> |
| 38 | <p><var class="varname">InvoiceId</var> is the public identifier of |
| 39 | the DTD file. It is used to associate the XML file with a DTD file (in this |
| 40 | case, the DTD file is <var class="varname">Invoice.dtd</var>). If the public identifier |
| 41 | InvoiceId corresponds to the <var class="varname">Key</var> of the XML Catalog entry |
| 42 | for Invoice.dtd, then the <var class="varname">URI</var> of the XML Catalog entry |
| 43 | (which contains information about the location of Invoice.dtd) is used to |
| 44 | locate the DTD. Otherwise, the DOCTYPE's system identifier ( <var class="varname">"C:\mydtds\Invoice.dtd"</var>), |
| 45 | which refers directly to the file system location of the DTD, is used to locate |
| 46 | the DTD. </p> |
| 47 | <p> <b>Note</b>: You can also use a system identifier as |
| 48 | a Key in an XML Catalog entry. If you use a system identifier as a Key, a |
| 49 | DOCTYPE tag such as the following is included in an XML file:</p> |
| 50 | <pre><!DOCTYPE Root-name SYSTEM "<var class="varname">MyDTD.dtd</var>"> </pre> |
| 51 | <p>where <var class="varname">MyDTD.dtd</var> is the system identifier that corresponds |
| 52 | to the Key of an XML Catalog entry.</p> |
| 53 | </div> |
| 54 | <div class="skipspace"><b>Associating an XML file with an XML schema</b><p>If an XML file |
| 55 | is associated with an XML schema, one or more schema location attributes are |
| 56 | included in the XML file. The information in the schemaLocation is provided |
| 57 | as a "hint" to the XML processor. Examples of schemaLocation attributes are |
| 58 | shown below: </p> |
| 59 | <div class="p"> <b>Example 1 </b><pre><purchaseOrder xmlns="http://www.ibm.com" |
| 60 | xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd"> |
| 61 | <shipTo country="US"> |
| 62 | ...</pre> |
| 63 | </div> |
| 64 | <div class="p"><b>Example 2 </b><pre><purchaseOrder xmlns="http://www.ibm.com" |
| 65 | xsi:schemaLocation="http://www.ibm.com PO.xsd"> |
| 66 | <shipTo country="US"> |
| 67 | ....</pre> |
| 68 | </div> |
| 69 | <p>In Example 1, the schemaLocation 'hint' ('C:\myschemas\PurchaseOrder.xsd') |
| 70 | refers directly to the file system location or URI of the XML schema. In this |
| 71 | case, the schema file will be located by the XML processor directly.</p> |
| 72 | <p>In |
| 73 | Example 2, the schemaLocation 'hint' ('PO.xsd') refers to an XML Catalog entry. |
| 74 | PO.xsd corresponds to the <var class="varname">Key</var> of the XML Catalog entry |
| 75 | for PurchaseOrder.xsd, and the URI of the XML Catalog entry (which contains |
| 76 | information about the location of PurchaseOrder.xsd) will be used to located |
| 77 | the XML schema.</p> |
| 78 | <p>In both examples, <samp class="codeph">http://www.ibm.com</samp> in |
| 79 | the <samp class="codeph">xsi:schemaLocation</samp> tag is a URI that identifies the namespace |
| 80 | for the XML schema. </p> |
| 81 | <div class="p">You can also use a namespace as a Key for |
| 82 | an XML Catalog entry. If you use a namespace as a Key, a schemaLocation tag |
| 83 | such as the following is included in an XML file:<pre><purchaseOrder xmlns:="www.ibm.com" |
| 84 | xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd "></pre> |
| 85 | </div> |
| 86 | <p>The |
| 87 | schemaLocation attribute points to both the Key and the actual location of |
| 88 | the schema.</p> |
| 89 | <p><b>DTD or XML schema resides on a remote server</b></p> |
| 90 | <p>Several |
| 91 | functions in the XML editor, such as validation and content assist, require |
| 92 | the availability of a DTD or an XML schema. The product documentation provides |
| 93 | usage information for cases when the DTD or XML schema resides on your local |
| 94 | machine. However, in many cases, the DTD or XML schema may reside on a remote |
| 95 | server, for example:</p> |
| 96 | <p><samp class="codeph"><!DOCTYPE Catalog PUBLIC "abc/Catalog" |
| 97 | "http://xyz.abc.org/dtds/catalog.dtd"></samp></p> |
| 98 | <p>Normally, this case |
| 99 | poses no problem, because the DTD or XML schema can be retrieved from the |
| 100 | remote server. However, if you are behind a firewall, and do not have a SOCKSified |
| 101 | system, the workbench currently does not provide a way for you to specify |
| 102 | a socks server for retrieving a DTD or XML schema. If you are unable to SOCKSify |
| 103 | your system, the workaround for this problem is to retrieve a copy of the |
| 104 | DTD or XML schema (using a Web browser, for example) and save that copy on |
| 105 | your local machine. Then, you can either place a local copy in the same project |
| 106 | as your XML file, or use the XML Catalog to associate a public identifier |
| 107 | with the DTD's (local) location.</p> |
| 108 | <p><b>Note</b>: If you have an XML file |
| 109 | associated with an XML schema or DTD that is elsewhere in the network, and |
| 110 | you are working on a machine disconnected from the network, you can follow |
| 111 | the steps described above if you want to use content assist or validate your |
| 112 | XML file. </p> |
| 113 | </div> |
| 114 | <div class="skipspace"><h4 class="sectiontitle">Advantages of XML Catalog entry associations</h4><p>If |
| 115 | you create a direct association between an XML file and an XML schema or DTD |
| 116 | file, any time you change the location of the schema or DTD you have to track |
| 117 | down and update all of the referencing XML files with the new location of |
| 118 | the DTD or schema. If, however, you associate an XML file with an XML schema |
| 119 | or DTD Key, then, when you change the location of the schema or DTD, you only |
| 120 | have to update the XML Catalog entry, instead of each individual XML file. </p> |
| 121 | <p>For |
| 122 | example, you have a DTD called "Building.dtd", which is associated with five |
| 123 | XML files - Office.xml, House.xml, Apartment.xml, Bank.xml, and PostOffice.xml. |
| 124 | You move the DTD file Building.dtd to a new location. If you have a direction |
| 125 | association between Building.dtd and all the XML files, you will have to update |
| 126 | the <DOCTTYPE> declaration in each XML file to reflect the new location |
| 127 | of Building.dtd. If, however, you have an XML Catalog association, and |
| 128 | all the XML files just refer to the Key of Building.dtd, then you only have |
| 129 | to update the URI and all the XML files will point to the new location of |
| 130 | Building.dtd.</p> |
| 131 | </div> |
| 132 | <div class="skipspace"><h4 class="sectiontitle">Updating an entry in the XML Catalog</h4><p>After you have |
| 133 | updated an entry in the XML Catalog, you may need to refresh the XML editor |
| 134 | view so that it uses the new information. To do this, click the <span class="uicontrol">Reload |
| 135 | Dependencies</span> toolbar button <img src="../images/rldgrmr.gif" /> and |
| 136 | the view will be updated using the current XML Catalog settings. You only |
| 137 | need to refresh the XML editor view when you have an XML file open that references |
| 138 | the XML Catalog entry that was updated.</p> |
| 139 | <p>For more information, refer |
| 140 | to the related concepts and tasks below.</p> |
| 141 | <p>(c) Copyright 2001, World Wide |
| 142 | Web Consortium (Massachusetts Institute of Technology, Institut National de |
| 143 | Recherche en Informatique et en Automatique, Keio University).</p> |
| 144 | </div> |
| 145 | </div> |
| 146 | |
| 147 | <div> |
| 148 | <blockquote> |
| 149 | <div class="ulchildlink"><b><a href="../topics/txmlcat.html">Adding an entry to the XML Catalog</a></b><br /> |
| 150 | </div> |
| 151 | <div class="ulchildlink"><b><a href="../topics/tedtgram.html">Updating XML files with changes made to DTDs and schemas</a></b><br /> |
| 152 | If you make changes to a DTD file or XML schema associated with |
| 153 | an XML file (that is currently open), click <span class="uicontrol">XML > Reload Dependencies</span> to |
| 154 | update the XML file with these changes.</div> |
| 155 | </blockquote> |
| 156 | <p><b class="relconceptshd">Related concepts</b><br /> |
| 157 | <a href="../topics/cwxmledt.html" title="The XML editor is a tool for creating and viewing XML files">XML editor</a><br /> |
| 158 | </p> |
| 159 | <p><b class="reltaskshd">Related tasks</b><br /> |
| 160 | <a href="../topics/tedtcnst.html" title="In the Design view, when you edit an XML file that has a set of constraints (that is, a set of rules) defined by a DTD or an XML schema, you can turn the constraints on and off to provide flexibility in the way you edit, but still maintain the validity of the document periodically.">Editing with DTD or XML schema constraints</a><br /> |
| 161 | <a href="../topics/tedtdoc.html" title="The DOCTYPE declaration in an XML file is used at the beginning of it to associate it with a DTD file. You can edit your DOCTYPE declaration to change the DTD file your XML file is associated with.">Editing your DOCTYPE declaration</a><br /> |
| 162 | <a href="../topics/txmlcat.html" title="Adding an entry to the XML Catalog"></a><br /> |
| 163 | <a href="../topics/tedtgram.html" title="If you make changes to a DTD file or XML schema associated with an XML file (that is currently open), click XML > Reload Dependencies to update the XML file with these changes.">Updating XML files with changes made to DTDs and schemas</a><br /> |
| 164 | <a href="../topics/tedtsch.html" title="Your namespace information is used to provide various information about the XML file, such as the XML schema it is associated with. ">Editing your namespace information</a><br /> |
| 165 | <a href="../topics/tedtproc.html" title="A processing instruction is a syntax in XML for passing instructions along to the application using an XML document.">Editing your XML processing instructions</a><br /> |
| 166 | <a href="../topics/txedtdes.html" title="The XML editor has a Design view, which represents the XML file simultaneously as a table and a tree. This helps make navigation and editing easier. Content and attribute values can be edited directly in the table cells, while pop-up menus on the tree elements give alternatives that are valid for that particular element.">Editing in the Design view</a><br /> |
| 167 | <a href="../topics/txedtsrc.html" title="You can use the Source view to view and work with a file's source code directly.">Editing in the Source view</a><br /> |
| 168 | </p> |
| 169 | </div><p> |
| 170 | (C) Copyright IBM Corporation 2000, 2005. All Rights Reserved. |
| 171 | </p> |
| 172 | </body> |
| 173 | </html> |