Sabtu, 11 Februari 2012

XML


5 XML and XSL Tag Support
This chapter describes tags provided with OC4J that you can use for XML data and XSL transformation, and summarizes additional XML functionality in other OC4J tags. These tags are implemented according to the JSP specification.
The chapter consists of the following sections:

Note:
See the Oracle Application Server Containers for J2EE Support for JavaServer Pages Developer's Guide for additional information about XML-related functionality for JSP pages.

Overview of Oracle Tags for XML Support
The following sections provide an overview of tags supplied with OC4J that have XML functionality. This includes tags that can take XML DOM objects as input, generate XML DOM objects as output, transform XML documents according to a specified stylesheet, and parse data from an input stream to an XML DOM object.

Note:
The custom XML tag library provided with OC4J pre-dates the JavaServer Pages Standard Tag Library (JSTL) and has areas of duplicate functionality. For standards compliance, it is now generally advisable to use JSTL instead. See "Support for the JavaServer Pages Standard Tag Library".
Oracle is not desupporting the existing library, however. For features in the custom library that are not yet available in JSTL, where there seems to be general usefulness, Oracle will try to have the features adopted into the JSTL standard as appropriate.

XML Producers and XML Consumers
An XML-related operation can be classified as either of the following, or as both:
XML producer, which outputs an XML object
XML consumer, which takes an XML object as input
Similarly, an XML-related tag can be classified as an XML producer, an XML consumer, or both. XML producers can pass XML objects to XML consumers either explicitly or implicitly; the latter is also known as anonymous passing.
For explicit passing between XML-related tags, there is a toXMLObjName attribute in the producer tag and a fromXMLObjName attribute in the consumer tag. Behind the scenes, the passing is done through the getAttribute() and setAttribute() methods of the standard JSP pageContext object. The following example uses explicit passing:
<sql:dbQuery output="XML" toXMLObjName="foo" ... >
   ...SQL query...
</sql:dbQuery>
...
<ojsp:cacheXMLObj fromXMLObjName="foo" ... />

For implicit passing between XML-related tags, do not use the toXMLObjName and fromXMLObjName attributes. The passing is accomplished through direct interaction between the tag handlers, typically in a situation with a nested tag. The following example uses implicit passing:
<ojsp:cacheXMLObj ... >
   <sql:dbQuery output="XML" >
      ...SQL query...
   </sql:dbQuery>
</ojsp:cacheXMLObj>

Here, the XML produced in the dbQuery tag is passed to the cacheXMLObj tag directly, without being stored to the pageContext object.
For a tag to be able to function as a consumer with implicit passing, the tag handler implements the OC4J ImplicitXMLObjConsumer interface:
interface ImplicitXMLObjConsumer
{
   void setImplicitFromXMLObj();
}
Summary of OC4J Tags with XML Functionality
For the tag libraries supplied with OC4J, Table 5-1 summarizes the tags that can function as XML producers or consumers.
Table 5-1 OC4J Tags with XML Functionality
Tag
Library
Producer / Consumer
Related Attributes
Tag Information
transform / styleSheet
XML
Both
fromXMLObjName toXMLObjName
parsexml
XML
Producer
toXMLObjName
cacheXMLObj
Web Object Cache
Both
fromXMLObjName toXMLObjName
dbQuery
SQL
Producer
toXMLObjName
invoke
Web Services
Producer
toXMLObjName


Notes:
The XML transform and styleSheet tags are equivalent and produce identical results.
For convenience, the cacheXMLObj tag is defined in the XML tag library descriptor file (xml.tld) as well as the Web Object Cache tag library descriptor file (jwcache.tld).

XML Utility Tags
The following sections describe XML utility tags supplied with OC4J:
Note the following requirements for the XML utility tag library:
The XML tag library requires ojsputil.jar, xmlparserv2.jar, and xsu12.jar to be installed and in your classpath. These files are supplied with OC4J. The ojsputil.jar file is located in the "well-known" tag library directory.
The tag library descriptor, xml.tld, must be available to the application, and any JSP page using the library must have an appropriate taglib directive. In an Oracle Application Server installation, the TLD is in ojsputil.jar. The uri value for xml.tld is the following:
http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/xml.tld

You can refer to the Oracle Application Server Containers for J2EE Support for JavaServer Pages Developer's Guide for information about taglib directives, the well-known tag library directory, TLD files, and the meaning of uri values.

Notes:
The prefix "xml:" is used in the tag syntax here. This is by convention but is not required. You can specify any desired prefix in your taglib directive.
See "Tag Syntax Symbology and Notes" for general information about tag syntax conventions in this manual.

XML Utility Tag Descriptions
The following sections describe XML utility tags:

Important:
Tag attributes are request-time attributes, meaning they can take JSP expressions as input, unless otherwise noted.

XML transform and styleSheet Tags for XML/XSL Data Transformation
Many uses of XML and XSL for dynamic JSP pages require an XSL transformation to occur in the server before results are returned to the client. Oracle provides two synonymous tags in the XML library to simplify this process. You can output the result directly to the HTTP client or, alternatively, you can output to a specified XML DOM object. Use either the transform tag or the styleSheet tag, as described and shown in this section. The two tags have identical effects.
Each tag acts as both an XML producer and an XML consumer. They can take as input either of the following:
An XML DOM object
The tag body, containing JSP commands and static text that produce the XML code
The tags can output to either or both of the following, with the specified stylesheet being applied in either case:
An XML DOM object
The output writer to the browser, in which case the specified stylesheet is applied
When you use the tag body for input, the tag applies to what is between the start-tag and end-tag. You can have multiple XSL transformation blocks within a page, with each block bounded by its own transform or styleSheet tag, specifying its own href pointer to the appropriate style sheet.
Syntax
<xml:transform href="xslRef"
             [ fromXMLObjName = "objectname" ]
             [ toXMLObjName = "objectname" ]
             [ toWriter = "true" | "false" ] >

   [...body...]

</xml:transform >

or:
<xml:styleSheet href="xslRef"
             [ fromXMLObjName = "objectname" ]
             [ toXMLObjName = "objectname" ]
             [ toWriter = "true" | "false" ] >

   [...body...]

</xml:styleSheet >
Attributes
href (required): Specify the XSL stylesheet to use for the XML data transformation. This is required whether you are outputting to an XML object (where you can have transformation without formatting) or to the browser.
Note the following regarding the href attribute:
It can refer to either a static XSL stylesheet or a dynamically generated one. For example, it can refer to a JSP page or servlet that generates the stylesheet.
It can be a fully qualified URL (http://host:port/path), an application-relative JSP reference (starting with "/"), or a page-relative JSP reference (not starting with "/"). Refer to the Oracle Application Server Containers for J2EE Support for JavaServer Pages Developer's Guide for information about application-relative and page-relative paths.
Its value can be a static Java string constant literal, or it can be dynamically specified through a standard JSP request-time expression.
fromXMLObjName: Use this to specify an input XML DOM object if input is from a DOM object instead of from the tag body. If there is both a tag body and a fromXMLObjName specification, fromXMLObjName takes precedence.
toXMLObjName: Use this to specify the name of an output XML DOM object if output is to a DOM object, instead of or in addition to going to the JSP writer object for output to the HTTP client. This is not required if there is an implicit XML consumer, such as a tag within which the transform or styleSheet tag is nested.
toWriter: This is "true" or "false" to indicate whether output goes to the JSP writer object for output to the HTTP client. This can be instead of or in addition to output to a DOM object. The default is "true", for backward compatibility. (Prior to Oracle9iAS Release 2, this was the only output choice; there was no toXMLObjName attribute.)
XML parsexml Tag to Convert from Input Stream
The XML tag library supplies an XML producer utility tag, parsexml, that converts from an input stream to an XML DOM object. This tag can take input from a specified resource or from the tag body.
Syntax
<xml:parsexml
             [ resource = "xmlresource" ]
             [ toXMLObjName = "objectname" ]
             [ validateResource = "dtd_path" ]
             [ root = "dtd_root_element" ] >

   [...body...]

</xml:parsexml >
Attributes
resource: Use this to specify an XML resource if input is from a resource instead of from the tag body. For example:
resource="/dir1/hello.xml"

If there is both a tag body and a specified resource, the resource takes precedence.
toXMLObjName: Specify the name of the XML DOM object where the output will go. This is not required if there is an implicit XML consumer, such as a tag within which the parsexml tag is nested.
validateResource: For XML validation, you can specify the path to the appropriate DTD. Alternatively, the DTD can be embedded in the XML resource. This is not a request-time attribute.
root: If validating, specify the root element in the DTD for validation. This is not a request-time attribute. If you specify validateResource without specifying root, the default root is the top-level of the DTD.
XML Utility Tag Examples
The following sections provide examples that use XML utility tags:
Example Using the transform Tag
This section provides a sample XSL stylesheet and a sample JSP page that uses the transform tag to filter its output through the stylesheet. This is a simplistic example, with the XML in the page being static. A more realistic example might use the JSP page to dynamically generate all or part of the XML before performing the transformation.
Sample Stylesheet: hello.xsl
<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="page">
   <html>
    <head>
     <title>
      <xsl:value-of select="title"/>
     </title>
    </head>
    <body bgcolor="#ffffff">
     <xsl:apply-templates/>
    </body>
   </html>
  </xsl:template>

  <xsl:template match="title">
   <h1 align="center">
    <xsl:apply-templates/>
   </h1>
  </xsl:template>

  <xsl:template match="paragraph">
   <p align="center">
    <i>
     <xsl:apply-templates/>
    </i>
   </p>
  </xsl:template>

</xsl:stylesheet>
Sample JSP Page: hello.jsp
<%@ page session = "false" %>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/xml.tld"
           prefix="xml" %>

<xml:transform href="style/hello.xsl" >

<page>
 <title>Hello</title>
 <content>
  <paragraph>This is my first XML/XSL file!</paragraph>
 </content>
</page>

</xml:transform>

This example results in the following output:
Example Using the transform and dbQuery Tags
This example returns a result set from a dbQuery tag, using a transform tag to filter the query results through the XSL style sheet rowset.xsl (code below). It uses a dbOpen tag to open a connection, with the connection string being obtained either from the request object or through the useDataSource.jsp page (code below). Data passing from the dbOpen tag to the transform tag is done implicitly. For related information, see "SQL dbQuery Tag" and "SQL dbOpen Tag".
JSP Page
<%@ page import="oracle.sql.*, oracle.jdbc.driver.*, oracle.jdbc.*, java.sql.*" %>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/xml.tld"
           prefix="xml" %>
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/sqltaglib.tld"
           prefix="sql" %>

<%
   String dataSrcStr=request.getParameter("dataSrcStr");
   if (dataSrcStr==null) {
     dataSrcStr=(String)session.getValue("dataSrcStr");
   } else {
     session.putValue("dataSrcStr",dataSrcStr);
   }
   if (dataSrcStr==null) { %>
<jsp:forward page="../../sql/useDataSource.jsp" />
<%
   }

%>
<h3>Transform DBQuery Tag Example</h3>
<xml:transform href="style/rowset.xsl" >
    <sql:dbOpen connId="conn1" dataSource="<%= dataSrcStr %>" />
    <sql:dbQuery connId="conn1" output="xml" queryId="myquery" >
       select ENAME, EMPNO from EMP order by ename
    </sql:dbQuery>
    <sql:dbCloseQuery queryId="myquery" />
    <sql:dbClose connId="conn1" />
</xml:transform>


Note:
For the dbOpen tag in this example, assume that the data source specifies the user name and password as well as the URL.

rowset.xsl
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="ROWSET">
 <html><body>
 <h1>A Simple XML/XSL Transformation</h1>
 <table border="2">
<xsl:for-each select="ROW">
  <tr>
    <td><xsl:value-of select="@num"/></td> 
    <td><xsl:value-of select="ENAME"/></td>
    <td><xsl:value-of select="EMPNO"/></td>
  </tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
useDataSource.jsp
<body bgcolor="#FFFFFF">
<font size=+0>
<B>Please enter a suitable JDBC connection string, before you try the above demo</B>
<pre>
     To use a data source that you have set up in data-sources.xml, enter the
     data source string below. Once you have set the data source string it
     will remain in effect until the session times out.
</pre>
<%
   String dataSrcStr;
   dataSrcStr=request.getParameter("dataSrcStr");
   if (dataSrcStr==null) {
     dataSrcStr=(String)session.getValue("dataSrcStr");
   }
   if (dataSrcStr==null) {
     dataSrcStr="jdbc/OracleCoreDS";  // default data source string
   }

   session.putValue("dataSrcStr",dataSrcStr);
%>
<FORM METHOD=get ACTION="<%= request.getParameter("nextaction") %>" >
<INPUT TYPE="text" NAME="dataSrcStr" SIZE=40 value="<%=dataSrcStr%>" >
<INPUT TYPE="submit" VALUE="Change Data Source String" >
</FORM>
</font>
Examples Using the transform and parsexml Tags
This section provides two examples that take output from a parsexml tag and filter it through a transform tag, using the XSL stylesheet email.xsl. In each case, data is collected by the parsexml tag handler from a specified resource XML file, then passed explicitly from the parsexml tag to the transform tag through the toxml1 XML object.
The first example uses the XML resource email.xml and the DTD email.dtd. No root attribute is specified, so validation is from the top-level element, <email>.
The second example uses the XML resource emailWithDtd.xml, which has the DTD embedded in the file. The root attribute explicitly specifies that validation is from the element <email>.
The files email.xml, email.dtd, emailWithDtd.xml, and email.xsl are also listed below.
Example 1 for transform and parsexml
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/xml.tld"
           prefix="xml" %>
<h3>XML Parsing Tag Email Example</h3>
<xml:transform fromXMLObjName="toxml1" href="style/email.xsl">
   <xml:parsexml resource="style/email.xml" validateResource="style/email.dtd"
                 toXMLObjName="toxml1">
   </xml:parsexml>
</xml:transform>
Example 2 for transform and parsexml
<%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/xml.tld"
           prefix="xml" %>
<h3>XML Parsing Tag Email Example</h3>
<xml:transform fromXMLObjName="toxml1" href="style/email.xsl">
   <xml:parsexml resource="style/emailWithDtd.xml" root="email"
                 toXMLObjName="toxml1">
   </xml:parsexml>
</xml:transform>
email.xml
<email>
<recipient>Manager</recipient>
<copyto>jsp_dev</copyto>
<subject>XML Bug fixed</subject>
<bugno>BUG 1109876!</bugno>
<body>for reuse tag and checked in the latest version!</body>
<sender>Developer</sender>
</email>
email.dtd
<!ELEMENT email (recipient,copyto,subject,bugno,body,sender)>
<!ELEMENT recipient (#PCDATA)>
<!ELEMENT copyto (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT bugno (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ELEMENT sender (#PCDATA)>
emailWithDtd.xml
<!DOCTYPE email [
<!ELEMENT email (recipient,copyto,subject,bugno,body,sender)>
<!ELEMENT recipient (#PCDATA)>
<!ELEMENT copyto (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT bugno (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ELEMENT sender (#PCDATA)>]>
<email>
<recipient>Manager</recipient>
<copyto>jsp_dev</copyto>
<subject>XML Bug fixed</subject>
<bugno>BUG 1109876!</bugno>
<body>for reuse tag and checked in the latest version!</body>
<sender>Developer</sender>
</email>
email.xsl
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="email">
 <html><body>
  To: <xsl:value-of select="recipient"/>
  CC: <xsl:value-of select="copyto"/>
  Subject:   <xsl:value-of select="subject"/> ...  
  <xsl:value-of select="body"/> !! 
  Thanks  <xsl:value-of select="sender"/>
</body></html>
</xsl:template>
</xsl:stylesheet>


XML
XML kependekan dari eXtensible Markup Language
Teknologi XML adalah teknologi keturunan dari SGML (Standard Generalized Markup Language) yg dikembangkan pada tahun 1980-an.
XML adalah suatu bahasa Markup, yaitu bahasa yang berisikan kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti.
Contoh yang mirip : bahasa HTML
XML adalah language untuk mengidentifikasi dan menandai data terstruktur.
Keuntungan XML
Keunggulan dan keuntungan dari XML adalah:
—Memisahkan data dan presentasi.
Data disimpan dalam XML sedangkan untuk presentasi (tampilan) dibuat dengan menggunakan XSLT
—Pencarian data cepat karena XML merupakan data dalam format yang terstruktur.
Hal ini dapat dilakukan dengan menggunakan XPath dan XQuery berdasarkan suatu elemen tertentu.
—Bersifat plain text dan platform independent.
—Terstruktur dan standard

Perbedaan XML dan HTML
HTML memiliki tag yang telah didefinisikan (Standar dan baku)
Tag-tag HTML berfungsi untuk memformat tampilan (menitik-beratkan pada unsur presentasi)
• Tag-tag telah didefinisikan
• bagaimana menampilkan informasi
contoh :
—Dalam XML, dapat dibuat tag-tag sendiri sesuai dengan data yang ingin ditampilkan.
—Tag-tag XML merupakan tag untuk menkontrol data dan tidak memperhatikan tampilan  (menitik-beratkan pada unsur representasi / penyajian dan penyimpanan data)
• Dapat membuat tag-tag sendiri
• menandai informasi secara terstruktur
contoh:
Aturan XML
—Dokumen XML digunakan untuk mendeskripsikan dokumen itu sendiri dengan sintaks yang sederhana.
—Contoh:
<?xml version=”1.0″ encoding=”ISO-8859-1″? standalone=“yes”> 1? standalone yes >
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don’t forget me this weekend!</body>
</note>
Tag <xml> : medefinisikan versi xml, encoding yang digunakan dan status  xml.
—Tag <note> adalah elemen root dalam dokumen.
—Tag <to>, <from>, <heading>, dan <body> adalah child elements dari elemen <note>.
—Pada XML, semua tag xml harus memiliki tag penutup
—Pada HTML beberapa elemen tidak harus berpasangan.
Contoh berikut ini diperbolehkan dalam penulisan HTML:
<p>paragraph pertama
<p>paragraph kedua
—Hal demikian tidak berlaku pada XML. tag penutup harus ditulis  untuk setiap tag yang kita buat,
<p>paragraph pertama</p>
<p>paragraph kedua</p>
—Setiap membuat dokumen XML diawali  dengan heading standard XML.
—Formatnya adalah sebagai berikut:
—Tag XML adalah case sensitive (membedakan antara huruf besar dan kecil).
—Perhatikan contoh berikut :
<buku>
<jdl>AASE</Jdl> <judul>AASE</Judul>
<penGarang>Antonius</pengarang>
<BUKU>
—Semua tag XML harus tersarang dengan benar dan tidak terbalik-balik.
—Contoh:
<b><i>This text is bold and italic – wrong</b></i>
<b><i>This text is bold and italic – right</i></b>
—Dalam XML karakter spasi akan dibaca sebagai karakter spasi.
—Dalam HTML jika ada lebih dari satu karakter  spasi, karakter spasi tersebut dihilangkan sehingga menjadi 1 spasi saja .Contoh:
—“Hello <spasi> <spasi> my name is Tove” akan menjadi “Hello my name is Tove”.
—Namun dalam XML karakter spasi tetap dibaca sebagai karakter spasi.
XML Documents
—XML Documents mengandung :
—- Elements
- —Attributes
- —Comments
- —Entities
- —Processing instructions Processing instructions
—- Character data (CData)
—-  XML text and whitespace XML text and whitespace
- —DTD
Node dalam XML
—Sebuah dokumen XML terdiri dari bagian bagian yang disebut dengan node.
—Root node: yaitu node yang melingkupi keseluruhan dokumen. Dalam satu dokumen XML hanya ada satu root  node. Node-node yang lainnya berada di dalam root node.
—Element node: yaitu bagian dari dokumen XML yang ditandai dengan tag pembuka dan tag penutup, atau bisa juga sebuah tag tunggal elemen kosong seperti : <anggota nama=”anton” />.
—Attribute node: berupa elemen tambahan dari elemen utama.
—Text node: adalah text yang merupakan isi dari sebuah elemen, ditulis diantara tag pembuka dan tag penutup.
—Comment node: adalah baris yang tidak dieksekusi oleh parser.
—Processing Instruction node: adalah perintah pengolahan dalam dokumen XML. Node ini ditandai dengan karakter <? Dan  diakhiri dengan ?>.
—Tapi perlu diingat bahwa header standard XML
<?xml version=”1.0” encoding=”iso-8859-1”?> bukanlah processing instruction node.
Namespace XML
—Contoh:
—Bila ada dokumen yang mendiskripsikan tentang kebutuhan material pembuatan gardu jaga dari “bambu”:
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>  <panjang>2</panjang>
</bambu>
—Sedangkan jika terdapat dokumen yang mendiskripsikan “bambu” sebagai merk produk:
<bambu>
<jumlah>246</jumlah>  jj
<hargasatuan>200</hargasatuan>
</bambu>
—Untuk mengatasi hal ini, Namespace menyediakan metode dengan menggunakan prefiks yang berbeda untuk dokumen pertama:
<a:bambu>
<a:jenis>Jawa</a:jenis>
<a:panjang>2</a:panjang>
</a:bambu>
—Sedangkan untuk dokumen kedua menjadi seperti berikut:
<b:bambu>
<b:jumlah>246</b:jumlah>
<b:hargasatuan>200</b:hargasatuan>
<b:/bambu>
Elemen XML
—Merupakan inti dari XML
—Menggunakan tag pembuka dan penutup
—Bisa juga empty tag
—Bersifat hirarkis
—Nama elemen hanya mengandung huruf, nama, dan karakter lain.
—Nama elemen tidak boleh diawali dengan angka  maupun karakter punctuation.
—Nama elemen tidak boleh diawali dengan karakter “xml” atau “XML” atau “Xml”.
—Nama elemen tidak boleh mengandung spasi.
—Semua dokumen XML harus memiliki elemen root.  Elemen root adalah elemen teratas/tertinggi yang harus memiliki tag  penutup.
—Contoh:
<orangtua>
<anak>
<namaanak>…..</namaanak>
</anak>
</orangtua>
—Dalam contoh di atas elemen <orangtua> adalah elemen root.
—Elemen <anak> adalah elemen child dari <orangtua>
Contoh :
—Misalkan terdapat data buku:
My First XML
+Introduction to XML
- What is HTML
- What is XML
+ XML Syntax
- Elements must have a closing tag
- Elements must be properly nested
<book>
<title>My First XML</title>
<prod id=”33-657″ media=”paper”></prod>
<chapter>Introduction to XML
<para>What is HTML</para>
<para>What is XML</para>
</chapter>
<chapter>XML Syntax
<para>Elements must have a closing tag</para>
<para>Elements must be properly nested</para>
</chapter>
</book>
—element content: dalam contoh di atas, <book> memiliki element content  karena mengandung elemen lain.
—mixed content: dalam contoh diatas, <chapter> memiliki mixed content karena berisi teks dan elemen lain.
—simple content: dalam contoh diatas, <para> memiliki simple content atau text content sebab mengandung hanya teks saja.
—empty content: dalam <prod> memiliki empty content karena tidak membawa satu informasipun.
—Elemen <book> adalah elemen root.
—Elemen <title>, <prod>, dan <chapter> adalah  elemen child dari <book>.
—Elemen <title>, <prod>, dan <chapter> adalah kembar (atau memiliki relasi yang disebut sister elements) sebab mereka memiliki parent yang sama,  yaitu <book>
Atribut XML
—Elemen XML dapat memiliki atribut seperti pada tag HTML
—Atribut biasanya menyediakan informasi ekstra dari elemen (metadata)
—Atribut adalah bagian dari elemen
—Bersifat unlimited, tapi tidak boleh dobel
—Letaknya boleh tidak terurut
—Contoh: File type tidak relevan dengan data, tetapi penting untuk software yang ingin memanipulasi elemen tersebut   memanipulasi elemen tersebut.
<file type=”gif”>computer.gif</file>
—Nilai atribut harus diapit dalam tanda petik ganda (double quote) atau petik tunggal (single quote).
—Contoh atribute:
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<note date=‘12/11/2002’> //
<to>Tove</to>
</note>
Contoh atribute:
<book>
<title>My First XML</title> y/
<prod id=”33-657″ media=”paper”></prod>
<chapter>Introduction to XML
<para>What is HTML</para> <para>What is HTML</para>
<para>What is XML</para>
</chapter>
<chapter>XML Syntax
<para>Elements must have a closing tag</para>
<para>Elements must be properly nested</para>
</chapter>
</book>
Hanya elemen <prod> yang memiliki atribut.
Atribut bernama “id” memiliki nilai “33-657″.
Atribut bernama “media” memiliki nilai “paper”.
Komentar
Komentar adalah kalimat/baris yang tidakdieksekusi oleh compiler, browser atau parser.
Penulisan komentar di XML menggunakan tanda <!–komentar–>
Dalam XML karakter ‘<’ dan ‘>’ adalah illegal
Contoh  yang legal
<syarat>jika jumlah < 1000 maka</syarat
Entity with references
Pengantar XML

 Apakah XML Itu ?
XML kependekan dari eXtensible Markup Language, dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML.
Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘</ ‘diakhiri ‘>’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal <form name=”isidata”>). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai kehendak kita. Untuk lebih jelasnya lihat contah dibawah:
<pesan>
<dari>MIS Manager</dari>
<buat>HRD Manager</buat>
<buat>Bagian rekrut</buat>
<buat>Computer Suport team</buat>
<subyek>Permohonan Tenaga kerja baru</subyek>
<isi>Mohon diberikan tenaga kerja baru untuk mengisi lowongan di Departemen MIS</isi>
</pesan>
pada contoh diatas <pesan>, <dari> <buat>,dan <isi> bukanlah tag standard yang telah di tetapkan dalam XML. Tag-tag itu kita buat sendiri sesuai keinginan kita. Sampai di sini XML tidak melakukan apapun. Yang ada hanyalah informasi yang di kemas dengan tag-tag XML. Kita harus membuat software lagi untuk untuk mengirim, menerima atau menampilkan informasi di dalamnya.
1 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Gambar 1.1 Tampilan Dokumen XML pada Browser
Kenapa Harus Menggunakan XML?
XML untuk saat ini bukan merupakan pengganti HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Kalau HTML digunakan untuk menampilkan informasi dan berfokus pada bagaimana informasi terlihat, XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standard layaknya heading, paragraph, table dan lain sebagainya. Sebagai contoh apa bila kita ingin menyimpan dan menyajikan informasi notasi musik pada lagu “Indonesia raya”, kita bisa menyimpannya dengan xml seperti contoh dibawah ini.
<lagu judul=”Indonesia raya” nadadasar=”G” Birama=”4/4”>
<bar nomor=”1”>
<nada not=”B” ketukan=”1/2”/>
<nada not=”C” ketukan=”1/2”/>
<nada not=”D” ketukan=”1”/>
<nada not=”B” ketukan=”2”/>
...
</bar>
<bar nomor=”2”>
...
</bar>
</lagu>
Kemudian dengan bantuan software lain misalnya MIDI generator kita bisa mendengarkan musiknya atau kita juga bisa membuat software sendiri yang menampilkan informasi ini dalam bentuk not balok.
2 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
Sama dengan HTML, File XML berbentuk teks sehingga bila diperlukan kita bisa membacanya tanpa memerlukan bantuan software khusus. Hal ini memudahkan pengembang aplikasi yang menggunakan XML untuk mendebug programnya. XML lebih fleksible dibanding HTML dalam hal kemampuannya menyimpan informasi dan data. Pada XML kita bisa menyimpan data baik dalam atribut maupun sebagai isi elemen yang diletakkan diantara tag pembuka dan tag penutup.
Kelebihan lain yang dimiliki XML adalah bahwa informasi bisa di pertukarkan dari satu system ke system lain yang berbeda platform. Misalnya dari Windows ke Unix, atau dari PC ke Machintosh bahkan dari internet ke handphone dengan teknologi WAP.

Apakah XSLT Itu?
XSLT adalah kependekan dari eXtensible StyleSheet Language:Transformation, adalah bagian dari XSL yang dikembangkan sebelumnya. XSL adalah Stylesheet yang khusus dikembangkan sebagai komplemen XML, untuk merubah informasi pada XML ke dalam bentuk lain agar bisa ditampilkan di layar, dicetak di kertas atau didengarkan telinga. Pada dasarnya proses ini di bagi menjadi dua bagian proses yakni pertama Transformasi Struktural yang meliputi pengumpulan, pengelompokan dan pengurutan data maupun penyusunan ulang, penambahan dan penghapusan tag dan atribut, dan yang kedua adalah proses merubah format menjadi pixel dilayar, nohtah tinta di kertas atau nada di speaker. Proses yang pertama itulah yang kemudian disebut XSLT, sedangkan yang kedua biasa disebut XSLFO (eXtensible Stylesheet Language:Formatting Object).
Hasil Keluaran XSLT bisa berupa HTML, Text file atau XML dengan format yang baru. Sebenarnya untuk menampilkan dokumen XML agar lebih menarik dilihat di browser bisa dilakukan oleh Cascade StyleSheet. CSS yang sering digunakan untuk memformat HTML bisa juga dipakai untuk XML. Akan tetapi CSS tidak mampu melakukan tugas tugas yang rumit seperti memformat angka desimal, menjumlah, menghitung rata-rata, menampilkan gambar, dan lain-lain. Dan untuk melakukan tugas-tugas itulah kita memerlukan XSLT

XSLT Processor
XSLT Processor atau yang biasa disebut Parser adalah software bantu yang tugasnya menerapkan perintah-perintah dalam XSLT pada dokumen sumber XML, dan menghasilkan dokumen keluaran baik berupa HTML, Text file ataupun XML.
XSLT Processor yang digunakan pada pembahasan-pembahasan dan contoh-contoh dalam buku ini adalah MSXML3 buatan Micosoft. Bila browser kita adalah Internet Explorer versi 5.5 ke bawah, secara default menggunakan MSXML atau MSXML2 sebagai Processor. Sebagian besar contoh dalam buku ini tidak bekerja dengan MSXML dan MSXML2. Untuk mendapatkan MSXML3 anda bisa download secara gratis dari websitenya Microsoft. Anda perlu men-download dua paket, yaitu MSXML itu sendiri beserta SDK-nya dan program XMLinst.exe. Yang disebutkan terakhir adalah utility untuk mengganti default XSL Processor pada internet Explorer dengan MSXML3. Setelah anda mendownloadnya, lakukan hal dibawah ini.
Buka Command prompt
Ketik xmlinst /u lalu tekan enter – perintah ini digunakan untuk melepaskan default XSL Processor yang digunakan sebelumnya.
• •
3 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Ketik regsvr32 msxml3.dll lalu tekan enter – Perintah untuk meregister file dllKetik xmlinst lalu tekan enter – menggunakan MSXML versi terbaru sebagai default XSL Processor pada Internet Explorer

Untuk lebih jelasnya anda bisa membacanya pada dokumentasi MSXML3 yang disertakan saat anda mendownloadnya.
Versi terakhir dari MSXML yang dikeluarkan Microsoft saat buku ini ditulis adalah versi 4. Pada MSXML4 ini, XSL Processor tidak terinstall secara default pada Internet Explorer menggantikan versi sebelumnya, tetapi bekerja paralel dengan MSXML versi sebelumnya. Diperlukan script khusus pada file HTML untuk memanggilnya. Bila anda hendak menggunakannya sebagai XSLT Processor di komputer anda, baca baik-baik Microsoft MSXML4 Parser SDK yang disertakan pada saat anda mendownloadnya.
Selain dari Microsoft, anda juga bisa menggunakan parser dari tempat lain misalnya Saxon yang dikembangkan oleh Michael Kay dapat anda peroleh secara gratis dari site http://users.iclway.co.uk/mhkay/saxon/instant.html. Satu lagi parser yang bisa digunakan adalah xt yang bisa anda peroleh di http://www.jclark.com/xml/xt.html. Cara mempergunakan kedua parser tersebut bisa anda baca di website masing-masing. Tidak menutup kemungkinan anda juga mendapatkan parser lain yang banyak bertebaran di internet. Sekali lagi, baca baik-baik manual user yang disertakan setiap parser yang akan anda gunakan.

Contoh Sederhana
Untuk memahami bagaimana XML dan XSLT bekerja, perhatikan contoh berikut ini:
<?xml version=”1.0” encoding=”iso-8859-1”?>
<berita>Saya sedang belajar XML</berita>
Simpanlah document diatas dengan nama belajar.xml
XSLT yang diperlukan adalah sebagai berikut
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match ='/'>
<html>
<head>
<title>XML Saya yang Pertama</title>
</head>
<body>
<p><xsl:value-of select="berita"/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet> •
4 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
simpanlah dokumen XSLT ini dengan nama belajar.xsl. Bila anda menggunakan MSXML3 sebagai parser, anda harus menambahkan satu baris heading standard sehingga dokumen XML Anda akan menjadi seperti berikut:
<?xml version=”1.0” encoding=”iso-8859-1”?>
<?xml-stylesheet type=”text/xsl” href=”belajar.xsl”
<berita>Saya sedang belajar XML</berita>
Setelah itu anda bisa langsung menjalankannya di browser anda. Anda akan melihat tulisan “Saya sedang belajar XML” di jendela browser anda dan tulisan “XML Saya yang Pertama” sebagai title halaman web anda.





Gambar 1.2 Tampilan Dokumen XML yang sudah diformat dengan XSLT
Sedangkan untuk parser lain anda perlu jalankan parser tersebut sesuai petunjuk menjalankannya.
Hasil yang anda dapatkan sama dengan apabila anda menulis HTML seperti dibawah:
<html>
<head>
<title>XML Saya yang Pertama</title>
</head>
<body><p>Saya sedang belajar XML</p></body>
</html>
5 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
Bila anda tidak melihat apapun di jendela browser anda, berarti Internet Explorer yang anda gunakan belum menggunakan MSXML3 sebagai default parser. Install MSXML3 seperti yang saya jelaskan sebelumnya.
Marilah kita bahas baris perbaris syntax XSLT diatas.
<?xml version="1.0" encoding="iso-8859-1"?>
Baris pertama adalah heading standard pada XML. Versi yang digunakan dan satu-satunya versi yang ada saat buku ini ditulis adalah versi 1.0. encoding iso-8859-1 adalah nama resmi dari character encoding yang biasa disebut ANSI. iso-8859-1 banyak digunakan di Eropa dan Amerika. Bila anda menggunakan text editor yang mendukung penggunaan character encoding yang lainnya, anda bisa menggunakannya juga. Anda akan mendapatkan pembahasan yang lebih detil pada bab berikutnya.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
syntax diatas adalah heading standard untuk XLST. Atribut xmlns:xsl maksudnya adalah mendeklarasikan namespace XML bahwa awalan xsl akan digunakan untuk elemen yang didefinisikan pada W3C XSLT Specification. Tentang Namespace ini akan dibahas pada bab lain.
Selanjutnya,
<xsl:template match ='/'>
tag diatas memberitahukan aturan yang dipicu ketika bagian tertentu dari dokumen sumber diproses. Dalam hal ini atribut match=’/’ menunjukkan aturan dipicu dari root dokumen.
<html>
<head>
<title>XML Saya yang Pertama</title>
</head>
<body>
<p><xsl:value-of select="berita"/></p>
</body>
</html>
Ini adalah aturan yang dimaksud. Yaitu bagaimana output akan dihasilkan. Dan selanjutnya dua baris terakhir adalah tag penutup untuk dua tag pembuka pertama. Perlu diingat baris pertama bukan tag pembuka tetapi adalah heading standard XML, jadi tidak perlu dibuat tag penutupnya.

Bagian-Bagian dari Dokumen XML
Sebuah dokumen XML terdiri dari bagian bagian yang disebut dengan node. Node-node itu adalah:

Root node yaitu node yang melingkupi keseluruhan dokumen. Dalam satu dokumen XML hanya ada satu root node. Node-node yang lainnya berada di dalam root node.

Element node yaitu bagian dari dokumen XML yang ditandai dengan tag pembuka dan tag penutup, atau bisa juga sebuah tag tunggal elemen kosong seperti <anggota nama=”budi”/> . Root node biasa juga disebut root element

Attribute note termasuk nama dan nilai atribut ditulis pada tag awal sebuah elemen atau pada tag tunggal.
• • •
6 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Text node, adalah text yang merupakan isi dari sebuah elemen, ditulis diantara tag pembuka dan tag penutup
Comment node adalah baris yang tidak dieksekusi oleh parser
Processing Instruction node, adalah perintah pengolahan dalam dokumen XML. Node ini ditandai awali dengan karakter <? Dan diakhiri dengan ?>. Tapi perlu diingat bahwa header standard XML <?xml version=”1.0” encoding=”iso-8859-1”?> bukanlah processing instruction node. Header standard bukanlah bagian dari hirarki pohon dokumen XML.
NameSpace Node, node ini mewakili deklarasi namespace
• • • •
Processing Instruction Standard Header
<?xml version=”1.0” encoding=”iso-8859-1”?>
<?xml-stylesheet
type="text/xsl"
href="belajar.xsl"
?>
<!-Dokumen ini menjelaskan tentang isi buku-->
<Buku
Judul=”Manajemen Data dan Informasi dengan XML/XSLT”
Penulis=”Moh Junaedi”>
<pengantar/>
<Bab No=”1”>Berkenalan dengan XML/XSLT</Bab>
<Bab No=”2”>Lebih dekat dengan XML</Bab>
<Bab No=”3”>Elemen-elemen XSLT</Bab>
.
.
.
</Buku>
Attribute Element kosong
Rootnode Comment

Sintaks XML
Dibandingkan dengan HTML, XML lebih cerewet. Kalau kita menulis sebuah dokumen HTML, beberapa kesalahan penulisan masih ditolerir. Misalnya kita menempatkan tag bersilangan seperti <p><b>Huruf Tebal</p></b> meskipun tidak dianjurkan, HTML masih bisa bekerja dan
7 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
menampilkan hasil seperti yang kita inginkan. Tidak demikian dengan XML. Lebih jelasnya kita akan bahas di bawah bagaimana membuat dokumen XML yang baik.
Heading standard untuk Document XML
Biasakanlah setiap membuat dokumen XML diawali dengan heading standard XML. Formatnya adalah sebagai berikut:
<?xml version=”1.0” encoding=”iso-8859-1”?>
Dokumen XML harus memiliki Root tag
Sebuah dokumen XML yang baik harus memiliki root tag. Yaitu tag yang melingkupi keseluruhan dari dokumen. Tag-tag yang lain, disebut child tag, berada didalam root membentuk hirarki seperti gambar 2.1
Contoh:
<root>
<child>
<subchild></subchild>
</child>
</root>
Root ElementChild Element 1Child Element 2Child Element 3Child Element 4Sub ChildElementSub ChildElement

Tag pada XML harus lengkap berpasangan
Pada HTML beberapa elemen tidak harus berpasangan. Contoh berikut ini diperbolehkan dalam penulisan HTML.
<p>paragraph pertama
<p>paragarap kedua
yang demikian tidak berlaku pada XML. Kita harus menulis pula tag penutup untuk setiap tag yang kita buat. Penulisannya harus seperti ini
<p>paragraph pertama</p>
<p>paragarap kedua</p>
Tag tunggal hanya diperbolehkan untuk elemen kosong. Contoh penulisannya sebagai berikut:
<anggota nama=”budi”/>
XML membedakan huruf besar dengan huruf kecil
8 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
Pada XML, <tanggal> berbeda dengan <Tanggal>. Tag pembuka dan tag penutup harus sama susunan huruf besar dan kecilnya.
<contoh>ini penulisan yang salah</Contoh>
<contoh>ini baru betul</contoh>
Penyarangan tag harus benar.
Penulisan tag pada XML harus mengikuti aturan Last In First Out (LIFO). seperti yang kita bahas terdahulu, pada XML kita tidak bisa membuat tag yang saling bersilang seperti dibawahini
<p><b>Huruf Tebal</p></b> tapi harus disusun seperti ini
<p><b>Huruf tebal</b></p>
bila dipaksakan juga, browser akan menampilkan pesan error seperti gambar dibawah:

Gambar 2.2 Pesan Kesalahan yang ditampilkan browser
XML mempertahankan spasi seperti apa adanya
Berbeda dengan HTML, XML menampilkan spasi persis bagaimana data ditulis. Lebih jelasnya perhatikan contoh berikut ini:
Pada HTML kalimat
Kami pergi bersama
akan ditampilkan sebagai:
Kami pergi bersama
Sedangkan pada XML akan ditampilkan sama persis dengan kalimat asalnya.
Nilai atribut harus diletakkan diantara tanda petik
Seperti HTML, XML memiliki atribut. Nilai atribut harus diletakkan diantara dua tanda petik. Tidak masalah apakah tanda petik tunggal atau tanda petik ganda. Contoh dibawah ini dua-duanya benar
<pesan dari=”lusy”> atau
<pesan dari=’lusy’>
Penamaan tag dan atribut
9 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Nama tag bisa terdiri dari huruf, angka dan underscore(“_”). Karakter awal nama tag harus berupa huruf atau underscore (“_”), tidak diawali dengan kata xml atau XML, (misal:<xmlstring>), dan tidak mengandung spasi. Aturan penamaan atribut sama dengan aturan penamaan tag.

Menyisipkan komentar
Pada bahasa pemrograman atau scripting kita mengenal adanya komentar (comment). Komentar adalah kalimat/baris yang tidak dieksekusi oleh compiler, browser atau parser. Untuk menyisipkan komentar pada dokumen XML caranya adalah sebagai berikut:
<!—Baris ini tidak di eksekusi oleh parser -->
Menggunakan Karakter Illegal pada XML
Sama seperti pada HTML, anda tidak bisa menggunakan karakter seperti kurung siku (< atau >), petik tunggal (‘), dan petik ganda (“) .
Contoh dibawah ini akan menghasilkan error kalau di eksekusi oleh browser.
<syarat>jika jumlah < 1000 maka</syarat>
Untuk menghindarinya, kita harus menggantikannya dengan entity reference seperti di bawah ini:
<syarat>jika jumlah &lt; 1000 maka</syarat>
Selengkapnya perhatikan tabel dibawah ini:
Entity references
Character
Character Name
&lt;
<
Less Than
&gt;
>
Greater then
&amp;
&
Ampersand
&apos;
Apostrophe
&quot;
Quotation mark

Perhatikan bahwa entity refence selalu diawali oleh & dan diakhiri ;
Karakter yang benar-benar illegal pada XML sebenarnya hanyalah < dan &. Yang lain bisa digunakan, akan tetapi lebih bijak kalo kita menghindarinya untuk menghindari kebingungan pada saat kita mendebugnya.
Kita bisa membuat sendiri entity reference untuk hal-hal lainnya. Pembahasan selengkapnya bisa anda baca pada bagian lain bab ini yang membahas Document Type Definition (DTD).
Namespace XML
Dari pembahasan terdahulu kita mengetahui bahwa tag-tag pada XML tidak didefinisikan secara baku tetapi kita buat sendiri sesuai keinginan kita. Karena itu akan sering terjadi konflik pada dua dokumen yang menggunakan nama tag yang sama tetapi mewakili dua hal yang berbeda. Contoh: bila ada dokumen yang mendiskripsikan tentang kebutuhan material pembuatan gardu jaga dari bambu
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>
</bambu>
dengan dokumen yang mendiskripsikan “bambu” sebagai merek produk.
10 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
<bambu>
<jumlah>246</jumlah>
<hargasatuan>200</hargasatuan>
</bambu>
untuk mengatasi hal ini, Namespace menyediakan metode dengan menggunakan awalan yang berbeda
<a:bambu>
<a:jenis>Jawa</a:jenis>
<a:panjang>2</a:panjang>
</a:bambu>
dokumen kedua menjadi seperti berikut
<b:bambu>
<b:jumlah>246</b:jumlah>
<b:hargasatuan>200</b:hargasatuan>
<b:/bambu>
Dengan cara demikian konflik penamaan tag tidak terjadi lagi. Aturan penggunaan namespace adalah sebagai berikut:
<a:bambu xmlns:a=”http:/www.somewhere.com/gardu”>
a adalah prefix yang dipakai, sedangkan atribut namespace di tambahkan pada tag. Syntax untuk atribut namespace adalah sebagai berikut:
xmlns:a=”namespace”
pada contoh diatas namespace-nya menggunakan alamat internet. W3C namespace spesification menyatakan bahwa namespace haruslah merupakan Uniform Resource Identifier (URI). Perlu di perhatikan bahwa alamat internet tersebut tidak digunakan untuk mendapatkan informasi, tapi hanya untuk memberikan nama yang unik bagi namespace. Tetapi seringkali perusahaan menggunakan namespace yang menunjuk pada webpage yang berisi informasi tentang namespace yang digunakan. Contoh yang disajikan pada Bab 1 menunjukkan penggunakan namespace xsl.
Text Encoding pada XML
Pada bab 1 kita telah menyinggung sepintas tentang atribut encoding pada deklarasi XML. Contoh yang diberikan menggunakan encoding iso-8859-1 yaitu nama resmi dari text encoding yang oleh Microsoft disebut sebagai ANSI. Atribut encoding ini digunakan untuk memberitahukan pada XML Parser, text encoding apa yang digunakan.
Misalnya kita ingin menggunakan karakter asing seperti æøå êèé. Untuk menampilkannya dengan benar pada browser, kita harus menyimpan file XML kita dengan format unicode. Sayangnya notepad pada windows 95/98 tidak mendukung format unicode. Untuk itu kita harus menambahkan atribut encoding pada deklarasi XML kita. Kita bisa menggunakan encoding windows-1252 atau iso-8859-1. Kita tidak bisa menggunakan UTF-8 dan UTF-16 bila kita simpan file kita dengan notepad pada Windows 95/98.
11 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

 
Gambar 2.3 Karakter asing yang ditampilkan dengan benar
Notepad pada Windows 2000 bisa menyimpan dokumen dengan format unicode. Semua jenis encoding yang saya sebutkan diatas bisa digunakan. Tanpa menyertakan atribut encoding secara eksplisit pun dokumen yang disimpan dengan format unicode bisa menampilkan karakter asing dengan benar bila di buka dengan Internet Explorer 5.0 tapi bila dibuka dengan Netscape atribut encoding mutlak harus disertakan.


Gambar 2.3 Pesan kesalahan karena encoding tidak mendukung karakter asing
12 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
Sampai disini pengetahuan anda tentang XML sudah cukup untuk membuat sebuah dokumen xml yang baik (Well-formed Document) tetapi belum cukup untuk membuat dokumen XML yang valid (Valid Document). Karena untuk membuat document XML yang valid anda juga harus mengenal apa yang disebut Document Type Definition (DTD).
Document Type Definition (DTD)
Sesuai namanya DTD berfungsi untuk mendefinisikan tipe documen XML. Pada saat mempelajari salah satu bahasa pemrograman atau scripting anda diperkenalkan dengan deklarasi variable, deklarasi fungsi dan deklarasi tipe data. Serupa dengan itu, DTD mendefinisikan struktur dokumen XML dengan daftar element yang digunakan.
Contoh dibawah ini akan memperjelas pengertian DTD
<?xml version ='1.0' encoding='utf-8'?>
<!DOCTYPE organisasi [
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
<!ENTITY org "Forum Komunikasi Remaja Masjid se-Jabotabek">
]>
<organisasi nama = “&org;”>
<anggota>
<nama>Budi Hermanto</nama>
<alamat>Kebayoran</alamat>
<kelamin>laki-laki</kelamin>
<jabatan>ketua</jabatan>
</anggota>
</organisasi>
Contoh diatas adalah DTD yang menjadi satu dalam satu dokumen dengan XML. Kita bisa memisahkan DTD pada file tersendiri, terpisah dari dokumen XML-nya. Caranya, perhatikan contoh berikut:
<?xml version ='1.0' encoding='utf-8'?>
<!DOCTYPE organisasi SYSTEM “organisasi.dtd”>
<organisasi nama = “&org;”>
<anggota>
<nama>Budi Hermanto</nama>
<alamat>Kebayoran</alamat>
<kelamin>laki-laki</kelamin>
<jabatan>ketua</jabatan>
</anggota>
</organisasi>
Lalu anda membuat file baru dengan nama “organisasi.dtd” yang berisi deklarasi DTD seperti contoh berikut
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
13 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
<!ENTITY org "Forum Komunikasi Remaja Masjid se-Jabotabek">
DTD memungkinkan format yang unik untuk setiap file xml. DTD akan sangat berguna bila kita membuat aplikasi dalam Visual Basic, ASP atau bahasa pemrograman lain yang mendukung XML, yaitu untuk memastikan bahwa data yang diterima aplikasi itu adalah data yang valid. Atau bermanfaat juga digunakan bila satu organisasi menyepakati penggunaan satu DTD untuk tukar menukar data dan informasi.
Unsur-unsur yang dideklarasikan dalam DTD adalah semua unsur yang membentuk suatu dokumen XML yaitu
Element, satu blok data yang diawali tag pembuka dan tag penutup.
Attribute, informasi pendukung element yang disertakan pada tag pembuka
Entity, karakter pengganti untuk sekumpulan informasi yang didefinisikan
• • •
Bagaimana mendeklarasikan masing-masing unsur diatas, kita akan bahas satu persatu:
Element
Bila sebuah element mengandung beberapa child element, maka kita perlu mendeklarasikan child element apa saja yang dipunyai element tersebut. Pada contoh diatas kita melihat deklarasi element
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
Maksudnya adalah element bernama organisasi memiliki satu child element bernama anggota. Lalu element bernama anggota itu sendiri mempunyai empat child element yang bernama nama, alamat, kelamin dan jabatan.
Setelah itu kita perlu medeklarasikan juga type dari element-element diatas.
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
contoh diatas adalah cara untuk mendeklarasikan type elemen, dimana element nama, alamat, kelamin dan jabatan semuanya bertipe (#PCDATA)
Attribute
Agar dokumen XML kita valid, kita juga perlu mendefinisikan semua attribut yang akan kita gunakan dalam dokumen kita. Untuk mendefinisikannya kita akan menggunakan Attribute list declaration. Caranya seperti berikut:
<!ATTLIST namaelemen spesifikasiattribut>
namaelemen adalah nama elemen dimana attribute itu digunakan. Sedangkan spesifikasiattribute adalah serangkaian informasi tentang attribute itu. Unsur yang membentuknya antara lain nama attribut, type attribute, nilai awal (default value), dan sifat attribute”
perhatikan contoh dibawah:
<!ATTLIST ORGANISASI Nama CDATA #FIXED “HMTE”>
14 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
maksud dari contoh diatas adalah elemen ORGANISASI memiliki Attribute Nama yang bertype CDATA. Sifat attribute dalam hal ini adalah #FIXED, yaitu nilai dari attribute nama harus seperti yang dideklarasikan (“HMTE” adalah nilai default yang diberikan bila kita tidak menyebutkannya). Sifat-sifat attribute selengkapnya adalah:
#FIXED, bila attribute kita deklarasikan dengan ini, kita bisa mencantumkan atau menghilangkan attribute pada element bersangkutan. Bila kita menghilangkannya, secara otomatis parser akan mencantumkan attribute dengan nilai sesuai dengan nilai awal yang diberikan.
#REQUIRED, ini menandakan bahwa attribut yang bersangkutan tidak bisa dihilangkan. Pendeklarasiannya tidak membutuhkan nilai awal. Bila anda paksakan, browser akan menampilkan pesan error.
#IMPLIED, bila kita menggunakannya berarti kita bisa membuang atau mencantumkan attribute. Bila kita tidak mencantumkannya, prosesor tidak akan memberikan nilai default.
• • •
Entity
Dengan menggunakan entity XML kita bisa menggantikan kalimat yang panjang atau satu blok elemen yang sering kita gunakan dengan sebuah pengenal singkat. Misalnya kita ingin menggantikan kalimat “Manajemen Data dan Informasi dengan XML/XSL” dengan entity &judul;.(kita telah menyinggung pada pembahasan terdahulu bahwa entity diawali dengan & dan diakhiri dengan ;).
Sekali entity didefinisikan di dalam DTD, kita bisa menggunakannya dimana saja pada seluruh dokumen XML.
<?xml version=”1.0” encoding=”iso-8859-1”>
<!DOCTYPE organisasi [
<!ENTITY judul "Manajemen data dan informasi dengan XML/XSLT">
]>
<resensi>
<buku judul=”&judul;”>
<ulasan>Buku yang berjudul &judul; ini ditulis oleh Moh Junaedi..</ulasan>
</buku>
</resensi>
Bila dijalankan, pada browser akan tampil seperti gambar dibawah:
15 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 16

Gambar 2.4 Tampilan Dokumen XML dengan entity

Nama tag bisa terdiri dari huruf, angka dan underscore(“_”). Karakter awal nama tag harus berupa huruf atau underscore (“_”), tidak diawali dengan kata xml atau XML, (misal:<xmlstring>), dan tidak mengandung spasi. Aturan penamaan atribut sama dengan aturan penamaan tag.

Menyisipkan komentar
Pada bahasa pemrograman atau scripting kita mengenal adanya komentar (comment). Komentar adalah kalimat/baris yang tidak dieksekusi oleh compiler, browser atau parser. Untuk menyisipkan komentar pada dokumen XML caranya adalah sebagai berikut:
<!—Baris ini tidak di eksekusi oleh parser -->
Menggunakan Karakter Illegal pada XML
Sama seperti pada HTML, anda tidak bisa menggunakan karakter seperti kurung siku (< atau >), petik tunggal (‘), dan petik ganda (“) .
Contoh dibawah ini akan menghasilkan error kalau di eksekusi oleh browser.
<syarat>jika jumlah < 1000 maka</syarat>
Untuk menghindarinya, kita harus menggantikannya dengan entity reference seperti di bawah ini:
<syarat>jika jumlah &lt; 1000 maka</syarat>
Selengkapnya perhatikan tabel dibawah ini:
Entity references
Character
Character Name
&lt;
<
Less Than
&gt;
>
Greater then
&amp;
&
Ampersand
&apos;
Apostrophe
&quot;
Quotation mark

Perhatikan bahwa entity refence selalu diawali oleh & dan diakhiri ;
Karakter yang benar-benar illegal pada XML sebenarnya hanyalah < dan &. Yang lain bisa digunakan, akan tetapi lebih bijak kalo kita menghindarinya untuk menghindari kebingungan pada saat kita mendebugnya.
Kita bisa membuat sendiri entity reference untuk hal-hal lainnya. Pembahasan selengkapnya bisa anda baca pada bagian lain bab ini yang membahas Document Type Definition (DTD).
Namespace XML
Dari pembahasan terdahulu kita mengetahui bahwa tag-tag pada XML tidak didefinisikan secara baku tetapi kita buat sendiri sesuai keinginan kita. Karena itu akan sering terjadi konflik pada dua dokumen yang menggunakan nama tag yang sama tetapi mewakili dua hal yang berbeda. Contoh: bila ada dokumen yang mendiskripsikan tentang kebutuhan material pembuatan gardu jaga dari bambu
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>
</bambu>
dengan dokumen yang mendiskripsikan “bambu” sebagai merek produk.
10 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
<bambu>
<jumlah>246</jumlah>
<hargasatuan>200</hargasatuan>
</bambu>
untuk mengatasi hal ini, Namespace menyediakan metode dengan menggunakan awalan yang berbeda
<a:bambu>
<a:jenis>Jawa</a:jenis>
<a:panjang>2</a:panjang>
</a:bambu>
dokumen kedua menjadi seperti berikut
<b:bambu>
<b:jumlah>246</b:jumlah>
<b:hargasatuan>200</b:hargasatuan>
<b:/bambu>
Dengan cara demikian konflik penamaan tag tidak terjadi lagi. Aturan penggunaan namespace adalah sebagai berikut:
<a:bambu xmlns:a=”http:/www.somewhere.com/gardu”>
a adalah prefix yang dipakai, sedangkan atribut namespace di tambahkan pada tag. Syntax untuk atribut namespace adalah sebagai berikut:
xmlns:a=”namespace”
pada contoh diatas namespace-nya menggunakan alamat internet. W3C namespace spesification menyatakan bahwa namespace haruslah merupakan Uniform Resource Identifier (URI). Perlu di perhatikan bahwa alamat internet tersebut tidak digunakan untuk mendapatkan informasi, tapi hanya untuk memberikan nama yang unik bagi namespace. Tetapi seringkali perusahaan menggunakan namespace yang menunjuk pada webpage yang berisi informasi tentang namespace yang digunakan. Contoh yang disajikan pada Bab 1 menunjukkan penggunakan namespace xsl.
Text Encoding pada XML
Pada bab 1 kita telah menyinggung sepintas tentang atribut encoding pada deklarasi XML. Contoh yang diberikan menggunakan encoding iso-8859-1 yaitu nama resmi dari text encoding yang oleh Microsoft disebut sebagai ANSI. Atribut encoding ini digunakan untuk memberitahukan pada XML Parser, text encoding apa yang digunakan.
Misalnya kita ingin menggunakan karakter asing seperti æøå êèé. Untuk menampilkannya dengan benar pada browser, kita harus menyimpan file XML kita dengan format unicode. Sayangnya notepad pada windows 95/98 tidak mendukung format unicode. Untuk itu kita harus menambahkan atribut encoding pada deklarasi XML kita. Kita bisa menggunakan encoding windows-1252 atau iso-8859-1. Kita tidak bisa menggunakan UTF-8 dan UTF-16 bila kita simpan file kita dengan notepad pada Windows 95/98.
11 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

 
Gambar 2.3 Karakter asing yang ditampilkan dengan benar
Notepad pada Windows 2000 bisa menyimpan dokumen dengan format unicode. Semua jenis encoding yang saya sebutkan diatas bisa digunakan. Tanpa menyertakan atribut encoding secara eksplisit pun dokumen yang disimpan dengan format unicode bisa menampilkan karakter asing dengan benar bila di buka dengan Internet Explorer 5.0 tapi bila dibuka dengan Netscape atribut encoding mutlak harus disertakan.


Gambar 2.3 Pesan kesalahan karena encoding tidak mendukung karakter asing
12 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
Sampai disini pengetahuan anda tentang XML sudah cukup untuk membuat sebuah dokumen xml yang baik (Well-formed Document) tetapi belum cukup untuk membuat dokumen XML yang valid (Valid Document). Karena untuk membuat document XML yang valid anda juga harus mengenal apa yang disebut Document Type Definition (DTD).
Document Type Definition (DTD)
Sesuai namanya DTD berfungsi untuk mendefinisikan tipe documen XML. Pada saat mempelajari salah satu bahasa pemrograman atau scripting anda diperkenalkan dengan deklarasi variable, deklarasi fungsi dan deklarasi tipe data. Serupa dengan itu, DTD mendefinisikan struktur dokumen XML dengan daftar element yang digunakan.
Contoh dibawah ini akan memperjelas pengertian DTD
<?xml version ='1.0' encoding='utf-8'?>
<!DOCTYPE organisasi [
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
<!ENTITY org "Forum Komunikasi Remaja Masjid se-Jabotabek">
]>
<organisasi nama = “&org;”>
<anggota>
<nama>Budi Hermanto</nama>
<alamat>Kebayoran</alamat>
<kelamin>laki-laki</kelamin>
<jabatan>ketua</jabatan>
</anggota>
</organisasi>
Contoh diatas adalah DTD yang menjadi satu dalam satu dokumen dengan XML. Kita bisa memisahkan DTD pada file tersendiri, terpisah dari dokumen XML-nya. Caranya, perhatikan contoh berikut:
<?xml version ='1.0' encoding='utf-8'?>
<!DOCTYPE organisasi SYSTEM “organisasi.dtd”>
<organisasi nama = “&org;”>
<anggota>
<nama>Budi Hermanto</nama>
<alamat>Kebayoran</alamat>
<kelamin>laki-laki</kelamin>
<jabatan>ketua</jabatan>
</anggota>
</organisasi>
Lalu anda membuat file baru dengan nama “organisasi.dtd” yang berisi deklarasi DTD seperti contoh berikut
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
13 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

<!ENTITY org "Forum Komunikasi Remaja Masjid se-Jabotabek">
DTD memungkinkan format yang unik untuk setiap file xml. DTD akan sangat berguna bila kita membuat aplikasi dalam Visual Basic, ASP atau bahasa pemrograman lain yang mendukung XML, yaitu untuk memastikan bahwa data yang diterima aplikasi itu adalah data yang valid. Atau bermanfaat juga digunakan bila satu organisasi menyepakati penggunaan satu DTD untuk tukar menukar data dan informasi.
Unsur-unsur yang dideklarasikan dalam DTD adalah semua unsur yang membentuk suatu dokumen XML yaitu
Element, satu blok data yang diawali tag pembuka dan tag penutup.
Attribute, informasi pendukung element yang disertakan pada tag pembuka
Entity, karakter pengganti untuk sekumpulan informasi yang didefinisikan
• • •
Bagaimana mendeklarasikan masing-masing unsur diatas, kita akan bahas satu persatu:
Element
Bila sebuah element mengandung beberapa child element, maka kita perlu mendeklarasikan child element apa saja yang dipunyai element tersebut. Pada contoh diatas kita melihat deklarasi element
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
Maksudnya adalah element bernama organisasi memiliki satu child element bernama anggota. Lalu element bernama anggota itu sendiri mempunyai empat child element yang bernama nama, alamat, kelamin dan jabatan.
Setelah itu kita perlu medeklarasikan juga type dari element-element diatas.
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
contoh diatas adalah cara untuk mendeklarasikan type elemen, dimana element nama, alamat, kelamin dan jabatan semuanya bertipe (#PCDATA)
Attribute
Agar dokumen XML kita valid, kita juga perlu mendefinisikan semua attribut yang akan kita gunakan dalam dokumen kita. Untuk mendefinisikannya kita akan menggunakan Attribute list declaration. Caranya seperti berikut:
<!ATTLIST namaelemen spesifikasiattribut>
namaelemen adalah nama elemen dimana attribute itu digunakan. Sedangkan spesifikasiattribute adalah serangkaian informasi tentang attribute itu. Unsur yang membentuknya antara lain nama attribut, type attribute, nilai awal (default value), dan sifat attribute”
perhatikan contoh dibawah:
<!ATTLIST ORGANISASI Nama CDATA #FIXED “HMTE”>
14 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
maksud dari contoh diatas adalah elemen ORGANISASI memiliki Attribute Nama yang bertype CDATA. Sifat attribute dalam hal ini adalah #FIXED, yaitu nilai dari attribute nama harus seperti yang dideklarasikan (“HMTE” adalah nilai default yang diberikan bila kita tidak menyebutkannya). Sifat-sifat attribute selengkapnya adalah:
#FIXED, bila attribute kita deklarasikan dengan ini, kita bisa mencantumkan atau menghilangkan attribute pada element bersangkutan. Bila kita menghilangkannya, secara otomatis parser akan mencantumkan attribute dengan nilai sesuai dengan nilai awal yang diberikan.
#REQUIRED, ini menandakan bahwa attribut yang bersangkutan tidak bisa dihilangkan. Pendeklarasiannya tidak membutuhkan nilai awal. Bila anda paksakan, browser akan menampilkan pesan error.
#IMPLIED, bila kita menggunakannya berarti kita bisa membuang atau mencantumkan attribute. Bila kita tidak mencantumkannya, prosesor tidak akan memberikan nilai default.
• • •
Entity
Dengan menggunakan entity XML kita bisa menggantikan kalimat yang panjang atau satu blok elemen yang sering kita gunakan dengan sebuah pengenal singkat. Misalnya kita ingin menggantikan kalimat “Manajemen Data dan Informasi dengan XML/XSL” dengan entity &judul;.(kita telah menyinggung pada pembahasan terdahulu bahwa entity diawali dengan & dan diakhiri dengan ;).
Sekali entity didefinisikan di dalam DTD, kita bisa menggunakannya dimana saja pada seluruh dokumen XML.
<?xml version=”1.0” encoding=”iso-8859-1”>
<!DOCTYPE organisasi [
<!ENTITY judul "Manajemen data dan informasi dengan XML/XSLT">
]>
<resensi>
<buku judul=”&judul;”>
<ulasan>Buku yang berjudul &judul; ini ditulis oleh Moh Junaedi..</ulasan>
</buku>
</resensi>
Bila dijalankan, pada browser akan tampil seperti gambar dibawah:
15 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 16

Gambar 2.4 Tampilan Dokumen XML dengan ent
<!ENTITY org "Forum Komunikasi Remaja Masjid se-Jabotabek">
DTD memungkinkan format yang unik untuk setiap file xml. DTD akan sangat berguna bila kita membuat aplikasi dalam Visual Basic, ASP atau bahasa pemrograman lain yang mendukung XML, yaitu untuk memastikan bahwa data yang diterima aplikasi itu adalah data yang valid. Atau bermanfaat juga digunakan bila satu organisasi menyepakati penggunaan satu DTD untuk tukar menukar data dan informasi.
Unsur-unsur yang dideklarasikan dalam DTD adalah semua unsur yang membentuk suatu dokumen XML yaitu
Element, satu blok data yang diawali tag pembuka dan tag penutup.
Attribute, informasi pendukung element yang disertakan pada tag pembuka
Entity, karakter pengganti untuk sekumpulan informasi yang didefinisikan
• • •
Bagaimana mendeklarasikan masing-masing unsur diatas, kita akan bahas satu persatu:
Element
Bila sebuah element mengandung beberapa child element, maka kita perlu mendeklarasikan child element apa saja yang dipunyai element tersebut. Pada contoh diatas kita melihat deklarasi element
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
Maksudnya adalah element bernama organisasi memiliki satu child element bernama anggota. Lalu element bernama anggota itu sendiri mempunyai empat child element yang bernama nama, alamat, kelamin dan jabatan.
Setelah itu kita perlu medeklarasikan juga type dari element-element diatas.
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
contoh diatas adalah cara untuk mendeklarasikan type elemen, dimana element nama, alamat, kelamin dan jabatan semuanya bertipe (#PCDATA)
Attribute
Agar dokumen XML kita valid, kita juga perlu mendefinisikan semua attribut yang akan kita gunakan dalam dokumen kita. Untuk mendefinisikannya kita akan menggunakan Attribute list declaration. Caranya seperti berikut:
<!ATTLIST namaelemen spesifikasiattribut>
namaelemen adalah nama elemen dimana attribute itu digunakan. Sedangkan spesifikasiattribute adalah serangkaian informasi tentang attribute itu. Unsur yang membentuknya antara lain nama attribut, type attribute, nilai awal (default value), dan sifat attribute”
perhatikan contoh dibawah:
<!ATTLIST ORGANISASI Nama CDATA #FIXED “HMTE”>
14 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
maksud dari contoh diatas adalah elemen ORGANISASI memiliki Attribute Nama yang bertype CDATA. Sifat attribute dalam hal ini adalah #FIXED, yaitu nilai dari attribute nama harus seperti yang dideklarasikan (“HMTE” adalah nilai default yang diberikan bila kita tidak menyebutkannya). Sifat-sifat attribute selengkapnya adalah:
#FIXED, bila attribute kita deklarasikan dengan ini, kita bisa mencantumkan atau menghilangkan attribute pada element bersangkutan. Bila kita menghilangkannya, secara otomatis parser akan mencantumkan attribute dengan nilai sesuai dengan nilai awal yang diberikan.
#REQUIRED, ini menandakan bahwa attribut yang bersangkutan tidak bisa dihilangkan. Pendeklarasiannya tidak membutuhkan nilai awal. Bila anda paksakan, browser akan menampilkan pesan error.
#IMPLIED, bila kita menggunakannya berarti kita bisa membuang atau mencantumkan attribute. Bila kita tidak mencantumkannya, prosesor tidak akan memberikan nilai default.
• • •
Entity
Dengan menggunakan entity XML kita bisa menggantikan kalimat yang panjang atau satu blok elemen yang sering kita gunakan dengan sebuah pengenal singkat. Misalnya kita ingin menggantikan kalimat “Manajemen Data dan Informasi dengan XML/XSL” dengan entity &judul;.(kita telah menyinggung pada pembahasan terdahulu bahwa entity diawali dengan & dan diakhiri dengan ;).
Sekali entity didefinisikan di dalam DTD, kita bisa menggunakannya dimana saja pada seluruh dokumen XML.
<?xml version=”1.0” encoding=”iso-8859-1”>
<!DOCTYPE organisasi [
<!ENTITY judul "Manajemen data dan informasi dengan XML/XSLT">
]>
<resensi>
<buku judul=”&judul;”>
<ulasan>Buku yang berjudul &judul; ini ditulis oleh Moh Junaedi..</ulasan>
</buku>
</resensi>
Bila dijalankan, pada browser akan tampil seperti gambar dibawah:
15 Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 16

Gambar 2.4 Tampilan Dokumen XML dengan entity


            ­­­­­­

Tidak ada komentar:

Posting Komentar