« October 2007 | صفحه اصلی | December 2007 »
ايجاد محتواي دايناميك XML با ليستي از Item هاNovember 28, 2007 12:52 PM
در ادامه مطلب قبلي باز هم به توليد XML با محتواي دايناميك مي پردازيم. اين بار محتواي فايل XML را توسط ليست آيتم هايي كه در يك Java bean تعريف شده، ايجاد مي كنيم. براي اين كار دو كلاس به نام هاي Item و Inventory ايجاد مي نماييم.
محتواي فايل Item.java چنين است:
محتواي فايل Item.java چنين است:
package beans;
public class Item implements java.io.Serializable {
private String name;
private float price;
public Item(String name , float price) {
this.name = name;
this.price = price;
}
public String getName() {return name;}
public float getPrice() {return price;}
}
public class Item implements java.io.Serializable {
private String name;
private float price;
public Item(String name , float price) {
this.name = name;
this.price = price;
}
public String getName() {return name;}
public float getPrice() {return price;}
}
محتواي فايل Inventory.java چنين است:
package beans;
import java.util.Iterator;
import java.util.Vector;
public class Inventory implements java.io.Serializable {
private Vector items = new Vector();
public Inventory() {
items.addElement(new Item("LCD",(float)200000.0));
items.addElement(new Item("Laptop",(float)1000000.0));
}
public Iterator getItems() {
return items.iterator();
}
}
import java.util.Iterator;
import java.util.Vector;
public class Inventory implements java.io.Serializable {
private Vector items = new Vector();
public Inventory() {
items.addElement(new Item("LCD",(float)200000.0));
items.addElement(new Item("Laptop",(float)1000000.0));
}
public Iterator getItems() {
return items.iterator();
}
}
توجه كنيد كه در اينجا محتويات ليست items از كلاس Inventory بصورت ثابت مقداردهي شده اند. اين ليست مي تواند از روي يك منبع داده قابل تغيير مقداردهي شود.
سرانجام مشخصات فايل inventory.jsp بدين صورت است:
سرانجام مشخصات فايل inventory.jsp بدين صورت است:
<%@page contentType="text/xml"%>
<%@page pageEncoding="UTF-8"%>
<%@ page import="beans.Inventory,beans.Item" %>
<jsp:useBean id="inventory" class="beans.Inventory" scope="page" />
<%
java.util.Iterator it = inventory.getItems();
Item item = null;
%>
<?xml version="1.0" encoding="UTF-8"?>
<inventory>
<% while (it.hasNext()) {
item = (Item)it.next(); %>
<item>
<name><%= item.getName() %></name>
<price><%= item.getPrice() %></price>
</item>
<% } %>
</inventory>
<%@page pageEncoding="UTF-8"%>
<%@ page import="beans.Inventory,beans.Item" %>
<jsp:useBean id="inventory" class="beans.Inventory" scope="page" />
<%
java.util.Iterator it = inventory.getItems();
Item item = null;
%>
<?xml version="1.0" encoding="UTF-8"?>
<inventory>
<% while (it.hasNext()) {
item = (Item)it.next(); %>
<item>
<name><%= item.getName() %></name>
<price><%= item.getPrice() %></price>
</item>
<% } %>
</inventory>
با اجراي اين فايل jsp روي Browser خود يك ساختار XML را مشاهده خواهيد نمود كه محتويات آن، ليست همه آيتم هاي تعريف شده در كلاس Inventory است.
منبع : فصل 11 كتاب Advanced JavaServer Pages
منبع : فصل 11 كتاب Advanced JavaServer Pages
mahyar_ev | 12:52 PM | Comment(s)(0)
ساخت XML با محتوای داینامیک توسط jspساختار استاندارد و شناخته شده تر يک فايل jsp مشابه يک فايل html است که در ميان تگ هاي آن مي توان تگ هاي jsp را نيز به کار برد. مثال:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP Page in HTML format</title>
</head>
<body>
<% out.println("This is a jsp in html format."); %>
</body>
</html>
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP Page in HTML format</title>
</head>
<body>
<% out.println("This is a jsp in html format."); %>
</body>
</html>
اما يک فايل jsp مي تواند فرمت XML نيز داشته باشد. به اين ترتيب مي توان خروجي XML دايناميک توليد نمود. مثال:
<%@page contentType="text/xml"%>
<%@page pageEncoding="UTF-8"%>
<?xml version="1.0" encoding="UTF-8"?>
<documnet>
<date>
<%= new java.util.Date() %>
</date>
</documnet>
<%@page pageEncoding="UTF-8"%>
<?xml version="1.0" encoding="UTF-8"?>
<documnet>
<date>
<%= new java.util.Date() %>
</date>
</documnet>
نکته 1: توجه کنيد که در هر دو حالت پسوند فايل بايد jsp باشد.
نکته 2: به تفاوت مقدار contentType در دو مثال دقت کنيد.
نکته 3: خروجي مثال اول در Browser صفحه اي است که تنها عبارت "JSP Page in HTML format" در آن نوشته شده. اما خروجي دوم به فرمت XML است که مقدار عنصر date آن تاريخ جاري سيستم است.
نکته 2: به تفاوت مقدار contentType در دو مثال دقت کنيد.
نکته 3: خروجي مثال اول در Browser صفحه اي است که تنها عبارت "JSP Page in HTML format" در آن نوشته شده. اما خروجي دوم به فرمت XML است که مقدار عنصر date آن تاريخ جاري سيستم است.
mahyar_ev | 10:01 AM | Comment(s)(0)
نمايش XML در HTMLNovember 19, 2007 01:21 PM
چندي پيش در كامنت هاي مطلبي مربوط به XML دوست عزيزم سوالي مطرح نمود كه آن زمان من از روي ناداني جوابي دادم كه گرچه غلط نبود، اما جواب سوال او هم نبود. سوال اين بود كه "چطور مي توان يك فايل XML را در صفحه html نشان داد". باز حين وب گردي هايم به مثالي برخوردم كه گمان مي كنم جواب سوال اين دوست عزيزم باشد.
فرض كنيد محتويات فايل Products.xml چنين باشد:
فرض كنيد محتويات فايل Products.xml چنين باشد:
<?xml version="1.0"?>
<Products>
<Item>
<Name>Coffee Cup Warmer</Name>
<Number>0001</Number>
<Description>See Name</Description>
<Price>15.00</Price>
</Item>
<Item>
<Name>T-Shirt with Wacky NorEaster Logo Large</Name>
<Number>0004</Number>
<Description>See Name</Description>
<Price>21.00</Price>
</Item>
<Item>
<Name>Computer For Linux</Name>
<Number>0009</Number>
<Description>With Linux Installed</Description>
<Price>250.00</Price>
</Item>
<Item>
<Name>Flat LCD Display 14"</Name>
<Number>0010</Number>
<Description>Recommended for #0009</Description>
<Price>387.00</Price>
</Item>
</Products>
<Products>
<Item>
<Name>Coffee Cup Warmer</Name>
<Number>0001</Number>
<Description>See Name</Description>
<Price>15.00</Price>
</Item>
<Item>
<Name>T-Shirt with Wacky NorEaster Logo Large</Name>
<Number>0004</Number>
<Description>See Name</Description>
<Price>21.00</Price>
</Item>
<Item>
<Name>Computer For Linux</Name>
<Number>0009</Number>
<Description>With Linux Installed</Description>
<Price>250.00</Price>
</Item>
<Item>
<Name>Flat LCD Display 14"</Name>
<Number>0010</Number>
<Description>Recommended for #0009</Description>
<Price>387.00</Price>
</Item>
</Products>
با دستورات html زير مي توان محتويات اين فايل XML را بصورت جدولي نمايش داد:
<HTML>
<HEAD>
<TITLE>Show XML In Your HTML </TITLE>
</HEAD>
<BODY>
<XML ID="MyProducts" SRC="Products.xml"></XML>
<TABLE ID="ProdTable" DATASRC="#MyProducts" BORDER="1">
<THEAD>
<TH>
Item Name/Description
</TH>
<TH>
Item Number
</TH>
<TH>
Price
</TH>
</THEAD>
<TR>
<TD>
<B><Span DATAFLD="Name"></SPAN></B><BR>
<SPAN DATAFLD="Description"></SPAN>
</TD>
<TD>
<SPAN DATAFLD="Number"></SPAN>
</TD>
<TD>
<SPAN DATAFLD="Price"></SPAN>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
<HEAD>
<TITLE>Show XML In Your HTML </TITLE>
</HEAD>
<BODY>
<XML ID="MyProducts" SRC="Products.xml"></XML>
<TABLE ID="ProdTable" DATASRC="#MyProducts" BORDER="1">
<THEAD>
<TH>
Item Name/Description
</TH>
<TH>
Item Number
</TH>
<TH>
Price
</TH>
</THEAD>
<TR>
<TD>
<B><Span DATAFLD="Name"></SPAN></B><BR>
<SPAN DATAFLD="Description"></SPAN>
</TD>
<TD>
<SPAN DATAFLD="Number"></SPAN>
</TD>
<TD>
<SPAN DATAFLD="Price"></SPAN>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
mahyar_ev | 01:21 PM | Comment(s)(2)
نامگذاري Javaقبلا جايي خوانده بودم كه نام java از حرف اول نام سه نفر از افراد اصلي كه روي آن كار كرده اند، گرفته شده. همينطور اينكه انتخاب فنجان قهوه بعنوان نماد آن از اين جهت است كه اين نام گذاري در يك كافي شاپ انجام شده. اما در وب گردي هايم در سايت sun به روايت ديگري در اين باره برخوردم. با توجه به اينكه اين مطلب در سايت sun گفته شده، قطعا روايت دوم صحيح است. ترجمه روايت اين است:
نام Java در يكي از چندين جلسه brainstorming برگزار شده توسط تيم نرم افزاري جاوا انتخاب گرديد. هدف ما رسيدن به نامي بود كه نمايانگر ذات اين تكنولوژي و پويايي، سرعت، سرزندگي و ساير ويژگي هاي اين زبان باشد. Java از ميان پيشنهادهاي بسيار ارائه شده، انتخاب گرديد. Java يك سرنام (acronym) نيست. بلكه اشاره اي است به نوشيدني داغ و خوشبويي كه برنامه نويسان بسيار دوست دارند آن را بنوشند.
پ.ن. يكي از معاني Java در اصطلاح عاميانه، قهوه است.
نام Java در يكي از چندين جلسه brainstorming برگزار شده توسط تيم نرم افزاري جاوا انتخاب گرديد. هدف ما رسيدن به نامي بود كه نمايانگر ذات اين تكنولوژي و پويايي، سرعت، سرزندگي و ساير ويژگي هاي اين زبان باشد. Java از ميان پيشنهادهاي بسيار ارائه شده، انتخاب گرديد. Java يك سرنام (acronym) نيست. بلكه اشاره اي است به نوشيدني داغ و خوشبويي كه برنامه نويسان بسيار دوست دارند آن را بنوشند.
پ.ن. يكي از معاني Java در اصطلاح عاميانه، قهوه است.
mahyar_ev | 11:21 AM | Comment(s)(0)
يك كد javascript كوچكNovember 14, 2007 11:51 AM
براي مطالبي كه در اين وبلاگ مي نويسم ترجيح مي دهم كه خودم فرمت html اش را درست كنم، تا اينكه اين كار را به engine خود اديتور بسپارم. با توجه به اينكه مطالبم اغلب تركيب بخش هاي rigt to left و left to right است،هميشه بعد از آماده سازي مطالب وقت زيادي از من براي اين كار و فرمت بندي html گرفته مي شود. سخت ترين قسمت كار اين وبلاگ برايم همين است.
براي رهايي از اين كابوس يك javascript كوچك نوشته ام كه كارم را خيلي راحت مي كند و بخش زيادي از كار را اتوماتيك انجام مي دهد. source اش را اينجا مي گذارم. شايد به درد كس ديگري هم خورد. بنا به سليقه خود مي توانيد آن را customize كنيد.
براي رهايي از اين كابوس يك javascript كوچك نوشته ام كه كارم را خيلي راحت مي كند و بخش زيادي از كار را اتوماتيك انجام مي دهد. source اش را اينجا مي گذارم. شايد به درد كس ديگري هم خورد. بنا به سليقه خود مي توانيد آن را customize كنيد.
mahyar_ev | 11:51 AM | Comment(s)(1)
ادامه مروري بر DTDNovember 4, 2007 03:42 PM
Element ها در DTD
سينتكس Elements
در DTD با سينتكس زير element ها تعريف مي شوند:
سينتكس Elements
در DTD با سينتكس زير element ها تعريف مي شوند:
<!ELEMENT element-name category>
يا
<!ELEMENT element-name (element-content)>
يا
<!ELEMENT element-name (element-content)>
Empty Elements
در اين نوع Element ها category برابر EMPTY مقداردهي مي شود:
در اين نوع Element ها category برابر EMPTY مقداردهي مي شود:
<!ELEMENT element-name EMPTY>
مثال:
<!ELEMENT br EMPTY>
مثال:
<!ELEMENT br EMPTY>
در XML با توجه به اين DTD تعريف br بايد چنين باشد:
<br />
Element هاي با Parsed Character Data
<!ELEMENT element-name (#PCDATA)>
Element هاي با هر محتوا
مي توانند هر تركيبي از داده هاي قابل پارس را بپذيرند:
مي توانند هر تركيبي از داده هاي قابل پارس را بپذيرند:
<!ELEMENT element-name ANY>
Element هاي داراي فرزند
<!ELEMENT element-name (child1)>
يا
<!ELEMENT element-name (child1,child2,…)>
مثال:
<!ELEMENT note (to,from,heading,body)>
يا
<!ELEMENT element-name (child1,child2,…)>
مثال:
<!ELEMENT note (to,from,heading,body)>
فرزندان به همان ترتيبي كه در تعريف آمده اند بايد در سند XML ظاهر شوند.
فرزندان خود مي توانند داراي فرزند باشند.
تعداد element هاي ممكن
در مثال هاي ذكر شده تا به حال تنها مي توان يك عدد از element را در XML قرار داد.
اگر بخواهيم كه تعداد تكرار يك element را مشخص نماييم از اين فرمت ها استفاده مي نماييم:
+ براي يك يا چند ،مثل
فرزندان خود مي توانند داراي فرزند باشند.
تعداد element هاي ممكن
در مثال هاي ذكر شده تا به حال تنها مي توان يك عدد از element را در XML قرار داد.
اگر بخواهيم كه تعداد تكرار يك element را مشخص نماييم از اين فرمت ها استفاده مي نماييم:
+ براي يك يا چند ،مثل
<!ELEMENT element-name (child-name+)>
* براي صفر يا چند ، مثل
<!ELEMENT element-name (child-name*)>
? براي صفر يا يك ، مثل
<!ELEMENT element-name (child-name?)>
محتواي دو حالتي
تعريف زير اشاره دارد به اينكه note element داراي يك to، يك from و يك header است، به علاوه يكي از عناصر message يا body (يا message يا body)
تعريف زير اشاره دارد به اينكه note element داراي يك to، يك from و يك header است، به علاوه يكي از عناصر message يا body (يا message يا body)
<!ELEMENT note (to,from,header,(message|body))>
محتواي تركيبي
تعريف زير اشاره دارد به اينكه note element داراي صفر يا چند تكرار از Parsed Character data، to، from، header يا message است.
تعريف زير اشاره دارد به اينكه note element داراي صفر يا چند تكرار از Parsed Character data، to، from، header يا message است.
<!ELEMENT note (#PCDATA|to|from|header|message)*>
Attribute ها در DTD
در DTD تعريف attribute ها با عبارت ATTLIST انجام مي شود. سينتكس آن بدين شكل است:
در DTD تعريف attribute ها با عبارت ATTLIST انجام مي شود. سينتكس آن بدين شكل است:
<!ATTLIST element-name attribute-name attribute-type default-value>
مثل
<!ATTLIST payment type CDATA "check">
مثل
<!ATTLIST payment type CDATA "check">
كه در XML بدين شكل بايد پياده شود:
<payment type="check" />
لازم به ذكر است كه لازم نيست در سند XML حتما مقدار attribute را مساوي با defalt-value قرار دهيم. بلكه هر مقدار معتبري مطابق با type مشخص شده مي تواند باشد. ولي اگر مقداري به آن نسبت داده نشده باشد، مقدار آن برابر با default-value مي گردد.
به جاي default-value و نه همراه با آن، از سه عبارت REQUIRED# و IMPLIED# و FIXED value# هم مي توانيد استفاده كنيد. در ادامه اين سه مورد معرفي مي شوند.
REQUIRED#
عبارت #REQUIRED مشخص مي كند كه attribute وجودش در عنصر مربوطه الزامي است. مثل
به جاي default-value و نه همراه با آن، از سه عبارت REQUIRED# و IMPLIED# و FIXED value# هم مي توانيد استفاده كنيد. در ادامه اين سه مورد معرفي مي شوند.
REQUIRED#
عبارت #REQUIRED مشخص مي كند كه attribute وجودش در عنصر مربوطه الزامي است. مثل
<!ATTLIST person number CDATA #REQUIRED>
از REQUIRED# وقتي استفاده نماييد كه مقداري بعنوان مقدار پيش فرض نداريد، اما در عين حال مي خواهيد كه حتما اين attribute وجود داشته باشد.
IMPLIED#
از IMPLIED# وقتي استفاده كنيد كه مقداري بعنوان default نداريد و همچنين الزامي هم در وجود اين attribute وجود ندارد. مثال:
IMPLIED#
از IMPLIED# وقتي استفاده كنيد كه مقداري بعنوان default نداريد و همچنين الزامي هم در وجود اين attribute وجود ندارد. مثال:
<!ATTLIST contact fax CDATA #IMPLIED>
FIXED value#
از اين عبارت وقتي استفاده كنيد كه مي خواهيد attribute يك مقدار مشخص داشته باشد و نويسنده XML نتواند چيز ديگري به جاي آن بنويسد. اگر نويسنده چيز ديگري بنويسد، پارسر XML خطا برميگرداند. مثال:
از اين عبارت وقتي استفاده كنيد كه مي خواهيد attribute يك مقدار مشخص داشته باشد و نويسنده XML نتواند چيز ديگري به جاي آن بنويسد. اگر نويسنده چيز ديگري بنويسد، پارسر XML خطا برميگرداند. مثال:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Attribute هاي داراي مقداير Enumerated
وقتي كه attribute مقادير مشخصي را مي تواند بپذيرد، اين مقادير در قسمت attribute-type تعريف مي شوند. مثال:
وقتي كه attribute مقادير مشخصي را مي تواند بپذيرد، اين مقادير در قسمت attribute-type تعريف مي شوند. مثال:
<!ATTLIST payment type (check|cash) "cash">
لازم به ذكر است كه attribute-type علاوه بر CDATAو enumerated عبارات ديگري را نيز مي تواند بپذيرد. از جمله ID، IDREF، IDREFS، NMTOKEN، NMTOKENS، ENTITY، ENTITIES، NOTATION و xml. براي آشنايي بيشتر با اين موارد به ساير منابع موجود در ارتباط با DTD از جمله مرجع اين نوشته رجوع نماييد:
ENTITY ها در DTD
Entity ها متغيرهايي هستند كه بعنوان shortcut براي برخي متون يا كاراكترهاي ديگر به كار مي روند. Entity به دو صورت internal و external قابل تعريف است.
تعريف Entity بصورت internal
سينتكس:
ENTITY ها در DTD
Entity ها متغيرهايي هستند كه بعنوان shortcut براي برخي متون يا كاراكترهاي ديگر به كار مي روند. Entity به دو صورت internal و external قابل تعريف است.
تعريف Entity بصورت internal
سينتكس:
<!ENTITY entity-name "entity-value">
مثال:
<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">
مثال:
<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">
و نحوه استفاده آنها در XML بدين صورت است:
<author>&writer;©right;</author>
توجه كنيد كه قبل از نام entity كاراكتر "&" و بعد از آن ";" مي آيد.
تعريف Entity بصورت external
سينتكس:
تعريف Entity بصورت external
سينتكس:
<!ENTITY entity-name SYSTEM "filename/URL">
مثال:
<!ENTITY writer SYSTEM "http://www.w3schools.com/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.w3schools.com/entities.dtd">
مثال:
<!ENTITY writer SYSTEM "http://www.w3schools.com/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.w3schools.com/entities.dtd">
نحوه استفاده از external entity مانند internal است.
mahyar_ev | 03:42 PM | Comment(s)(0)
مروري بر DTDNovember 3, 2007 02:26 PM
ادامه مروري بر XML را با DTD پي مي گيريم.
DTD وسيله اي براي تعريف بلاك هاي معتبر در سند XML است.
يك DTD مي تواند داخل خود سند XML تعريف شود يا بصورت external از آن باشد.
Internal DTD Declaration:
در اين حالت در قسمت DOCTYPE با سينتكس زير تعريف مي شود:
DTD وسيله اي براي تعريف بلاك هاي معتبر در سند XML است.
يك DTD مي تواند داخل خود سند XML تعريف شود يا بصورت external از آن باشد.
Internal DTD Declaration:
در اين حالت در قسمت DOCTYPE با سينتكس زير تعريف مي شود:
<!DOCTYPE root-element [element-declarations]>
مثال:
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>you</to>
<from>me</from>
<heading>Reminder</heading>
<body>Don't forget</body>
</note>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>you</to>
<from>me</from>
<heading>Reminder</heading>
<body>Don't forget</body>
</note>
در اين مثال DOCTYPE note مشخص مي كند كه عنصر root سند note است.
External DTD Declaration:
در قسمت DOCTYPE با سينتكس زير تعريف مي شود:
External DTD Declaration:
در قسمت DOCTYPE با سينتكس زير تعريف مي شود:
<!DOCTYPE root-element SYSTEM "filename">
مثال بالا را به صورت external مي بينيم:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>you</to>
<from>me</from>
<heading>Reminder</heading>
<body>Don't forget</body>
</note>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>you</to>
<from>me</from>
<heading>Reminder</heading>
<body>Don't forget</body>
</note>
و محتواي فايل note.dtd بدين صورت است:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
دلايل استفاده از DTD
* هر DTD فرمت فايل XML مربوط به خود را توصيف مي كند.
* افراد و گروه هاي مختلف مي توانند فرمت DTD را بصورت استاندارد براي تبادلات در نظر بگيرند و فايل هاي XML خود را بر اساس آن توليد نمايند.
* application ها نيز مي توانند براي اعتبارسنجي فايل XML از DTD ها استفاده كنند.
از ديدگاه DTD هر سند XML يا HTML از اجزاي زير تشكيل شده است:
* Elements
* Attributes
* Entities
* PCDATA
* CDATA
در ادامه هر كدام تشريح مي گردند:
Elements
Element ها بلاك هاي اصلي اسناد XML يا HTML هستند. موارد زير مثال هايي از element ها هستند:
* هر DTD فرمت فايل XML مربوط به خود را توصيف مي كند.
* افراد و گروه هاي مختلف مي توانند فرمت DTD را بصورت استاندارد براي تبادلات در نظر بگيرند و فايل هاي XML خود را بر اساس آن توليد نمايند.
* application ها نيز مي توانند براي اعتبارسنجي فايل XML از DTD ها استفاده كنند.
از ديدگاه DTD هر سند XML يا HTML از اجزاي زير تشكيل شده است:
* Elements
* Attributes
* Entities
* PCDATA
* CDATA
در ادامه هر كدام تشريح مي گردند:
Elements
Element ها بلاك هاي اصلي اسناد XML يا HTML هستند. موارد زير مثال هايي از element ها هستند:
<body>some text</body>
<message>some text</message>
<message>some text</message>
Attributes
عبارتند از توضيحات اضافي درباره element ها. در مثال زير img همان element است و src يك attribute آن. از آنجا كه خود element محتوايش empty است با "/" بسته مي شود.
عبارتند از توضيحات اضافي درباره element ها. در مثال زير img همان element است و src يك attribute آن. از آنجا كه خود element محتوايش empty است با "/" بسته مي شود.
<img src="computer.gif" />
Entities
برخي كاراكترها معني خاصي در XML دارند مثل < كه علامت شروع تگ XML است. مشابه آن در HTML عبارت ";nbsp&" است كه به "no-breaking-space" اشاره دارد. ليست آنها در XML بدين شرح است:
برخي كاراكترها معني خاصي در XML دارند مثل < كه علامت شروع تگ XML است. مشابه آن در HTML عبارت ";nbsp&" است كه به "no-breaking-space" اشاره دارد. ليست آنها در XML بدين شرح است:
< <
> >
& &
" "
' '
> >
& &
" "
' '
PCDATA
PCDATAمخفف Parsed Character Data متني است كه توسط Parser قابل parse است.
CDATA
CDATA مخفف Character Data متني است كه توسط parser، parse نمي شود.
PCDATAمخفف Parsed Character Data متني است كه توسط Parser قابل parse است.
CDATA
CDATA مخفف Character Data متني است كه توسط parser، parse نمي شود.