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.
|
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.
|
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();
}
For the tag libraries
supplied with OC4J, Table
5-1 summarizes the tags that can function as XML producers or
consumers.
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 ). |
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.
|
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.
|
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.
<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
>
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.)
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.
<xml:parsexml
[ resource = "xmlresource" ]
[ toXMLObjName = "objectname" ]
[ validateResource = "dtd_path" ]
[ root = "dtd_root_element"
] >
[...body...]
</xml:parsexml >
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.
The following sections
provide examples that use XML utility tags:
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.
<?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>
<%@ 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:
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".
<%@ 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. |
<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>
<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>
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.
<%@ 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>
<%@ 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>
<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>
<!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)>
<!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>
<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>
<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:
Contoh berikut ini diperbolehkan dalam penulisan HTML:
<p>paragraph
pertama
<p>paragraph kedua
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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 dll¥Ketik 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 < 1000 maka</syarat>
Selengkapnya perhatikan
tabel dibawah ini:
Entity
references
|
Character
|
Character
Name
|
<
|
<
|
Less Than
|
>
|
>
|
Greater
then
|
&
|
&
|
Ampersand
|
'
|
‘
|
Apostrophe
|
"
|
“
|
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 < 1000 maka</syarat>
Selengkapnya perhatikan
tabel dibawah ini:
Entity
references
|
Character
|
Character
Name
|
<
|
<
|
Less Than
|
>
|
>
|
Greater
then
|
&
|
&
|
Ampersand
|
'
|
‘
|
Apostrophe
|
"
|
“
|
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