[an error occurred while processing this directive]
ÇáãÄáÝ Floris Lambrechts <floris(at)linuxfocus.org>
äÈÐÉ Úä ÇáßÇÊÈ:
ÃäÇ ãÍÑÑ åæáäÏí Ýí ãÌáÉ áíäßÓ-ÝæßÓ ãäÐ ÓäæÇÊ æ ÃÏÑÓ ÇáåäÏÓÉ ÇáßåÑÈÇÆíÉ Ýí ãÚåÏ áæÝÇä Ýí ÈáÌíßÇ¡ ÃÞÖí æÞÊí ãÚ áíäßÓ æ PHP æ XML æ áíäßÓ-ÝæßÓ æ ÇáãØÇáÚÉ.
ÊÑÌãå Åáì ÇáÚÑÈíÉ:
Hakim Amrouche <amroche_hakim(at)yahoo.com>
ÇáÝåÑÓ:
|
ÇÚÑÝ Úä XML
äÈÐÉ ãÎÊÕÑÉ:
åÐÇ ãÏÎá Åáì XML ÍíË ÓäáÊÞí ÈÇáÞØÉ ÇáÇÝÊÑÇÖíÉ eddy æ ÞæÇÚÏ XML æ ÈÚÖ DTD áÇ ÊÞáÞ ÓÊÚÑÝåÇ ÈÚÏ Þáíá ;-)
Introduction
Ýí ÕíÝ 2001 ÇáÊÞì ÈÚÖ ãÍÑÑí ãÌáÊäÇ Ýí ÈæÑÏæ LSM¡ Ìá ÇáãÍÇÏËÇÊ ÏÇÑÊ Úáì XML¡ ãÖÊ ÓÇÚÇÊ ØæíáÉ ããÊÚÉ Ýí ÔÑÍå¡ æ ãÇåíÊå æ ãÇ íÞÏÑ Ãä íÚãáå æ ßíÝ íÓÊÚãá¿ æ åÐÇ ÇáãÞÇá íÌíÈ Úä Ðáß.ÃÔßÑ Egon Willighagen æ Jaime Villate áÃäåãÇ ÚáãÇäí XML æ ßá ãÇ Ýí ÇáãÞÇá ÇÓÊÞíÊå ãä ãÞÇá Jaime ( ÇäÙÑ ÇáãÑÇÌÚ).
What is XML
ÃæáÇ ÞæÇÚÏ XML ÞÑíÈÉ ãä HTML æ åæ áÛÉ ÊÃÔíÑ ÃÎÑì ãËá HTML æ SGML¡ áßä áåÇ ãÒÇíÇ ÃÎÑì.Xml áå ãÒÇíÇ ããÇ íÌÚáå ÝÚÇáÇ Ýí ÊäÓíÞ ÇáãÚáæãÇÊ æ æÕÝ ãÚÙã ÇáÃÔíÇÁ ÇáãÑßÈÉ¡ ßÐáß ãä ÇáÓåá Úáì ÇáäÇÓ ÞÑÇÁÊåÇ¡ æ ÃíÖÇ íÓåá ÕíÇÛÉ ÇáÈÑÇãÌ¡ ßíÝ Ðáß¿ ÝáäÊÞÕì.Eddy, the meta cat
XML áÛÉ ÊÃÔíÑ mark up ¡ ÇáäÕæÕ ÇáãßÊæÈÉ Ýí áÛÉ ÇáÊÃÔíÑ ÝíåÇ ÔíÆÇä¡ ÈíÇäÇÊ æ ãÚÇáã ( metadata)
Eddy, the meta cat
ÇáÈíÇäÇÊ åí ãÇ ÊÚÑÝ¡ ÃãÇ ÇáãÚÇáã Ýåí ÈíÇäÇÊ ÎÇÕÉ ÊÒíÏ ãÚäì ÇáÈíÇäÇÊ Ýí ÍÏ ÐÇÊåÇ¡ ãËáÇ ÇáÌãáÉ
'My cat is called Eddy'.
ÇáÅäÓÇä íÏÑß Ãä
ÇÓã ÍíæÇä
'cat'
æ Ãä
'Eddy'
åæ ÇÓãåÇ
áßä ÇáÍÇÓæÈ áä íÏÑß Ðáß¡ áÐ ÃÖÝäÇ ÇáãÚÇáã áÊÈíÇä ãÚäì ÇáÈíÇäÇÊ.
<sentence>
My <animal>cat</animal> is called <name>Eddy</name>.
</sentence>
ÇáÂä íãßä ááÈÑäÇãÌ Ãä íÏÑß Ãä cat ÍíæÇä æ Ãä eddy ÇÓãå
¡ ÛÐÇ ÃÑÏäÇ Ãä äÌÚá ßá ÇáÃÓãÇÁ ÊÈÏæ ÒÑÞÇÁ æ ÇáÍíæÇäÇÊ ÊÈÏæ ÍãÑÇÁ ÝÜ XML íÌÚá åÐÇ ÓåáÇ ÌÏÇ ( ááãÊÚÉ ÝÞØ)
ÝäÍÕá Úáì
My cat is called Eddy.
ÇáÂä íãßääÇ äÙÑíÇ Ãä äÖÚ ÇáÊäÓíÞ ( Çááæä ãËáÇ ) Ýí ãáÝ ãÇ äÓãíå
stylesheet.
æ åßÐÇ äßæä ÞÏ ÝÕáäÇ Èíä ãÚáæãÇÊ ÇáÊäÓíÞ æ ÇáãÍÊæì æ åÐÇ ãÇ íÓãíå ÇáãÕããæä
ãäåÌíÉ Ýí ÊÕãíã ÇáãæÇÞÚ
.
Åä ÅÖÇÝÉ ÇáãÚÇáã ÌíÏ áßä åÐÇ Úãá áÛÉ ÇáÊÃÔíÑ ÝãÇ ÈÇá XML ÅÐä¿
ÞæÇÚÏ ÇáÔÑØÉ
ÃæáÇ ÝÅä á XML ÕíÇÛÉ ÕÇÑãÉ¡ ÅÐ áÇÈÏ áßá ãÚáã
<tag> Ãä
íäÊåí ÈãÚáã ÂÎÑ
</tag>
[ ãä ÇáÛÈÇÁ ßÊÇÈÉ
<tag></tag>
Ïæä Ãí ÔíÁ ÈíäåãÇ
Ýíãßäß ßÊÇÈÉ
<tag />
] ÝÞØ æ ÊÞÊÕÏ ÏÞÇÆÞ ãä ÍíÇÊß
ÞÇÚÏÉ ÃÎÑì Ãäå íÌÈ Ãä áÇ ÊÎáØ ãÇ Èíä ÇáãÚÇáã¡ Ãí Úáíß ÅÞÝÇá ÇáãÚáã ÞÈá ÛáÞ ÇáãÚáã ÇáãæÇáí. áÐÇ ÝÇáãËÇá ÇáÂÊí áíÓ ÕÇáÍÇ
<B> Bold text <I> Bold and italic text </B> italic text </I>
Úáíß Ãä ÊÛáÞ ÇáãÚáã
The syntax rules say that you should close the </I> ÞÈá ÛáÞ ÇáãÚáã ÇáÂÎÑ</B>
ÇÍÑÕ ÃíÖÇ Ãä ÊßÊÈ ßá ÚäÇÕÑ XML Öãä ãÚÇáã ( ãÇ ÚÏÇ ãÚáãíä ÇËäíä ÝÞØ)
áåÐÇ ÇáÓÈÈ Ýí ÇáãËÇá ÇáÓÇÈÞ ßÊÈäÇ ÇáãÚÇáã
<sentence> Íæá ÇáÌãáÉ.
ÇáÊí ÈÏæäåÇ ÈÚÖ ÇáßáãÇÊ ÓÊÎÑÌ Úä ÇáãÚÇáã.
æ ÈãÇ Ãä XML ÞæÇÚÏå ÕÇÑãÉ íÓåá Úáì ÇáÈÑÇãÌ ÞÑÇÁÉ ÇáÈíÇäÇÊ¡ æ ÊÕÈÍ äÕæÕ XML æÇÖÍÉ ÇáÔßá ÓåáÉ ÇáßÊÇÈÉ æ ÇáÞÑÇÁÉ ááäÇÓ
.
ÔÑØÉ ÇáÕíÇÛÉ Ýí ãæÒíááÇ ÃËäÇÁ ÇáÚãá ...
ÇäÊÈå Ãä åÐå ÇáÝÑÖíÇÊ ÊÈÞì äÙÑíÉ Ýí ÈÚÖ ÇáÃÍíÇä¡ æ ÛíÑ ÚãáíÉ¡ ÅÐ ãÚÙã ãÚÇáÌÇÊ XML parsersÇáÍÇáíÉ
áíÓÊ ÓÑíÚÉ æ ÊÔÛá ÍíÒÇ ßÈíÑÇ
ÍÊì íÈÏæ Ãä áÇ íãßä áÈÑäÇãÌ Ãä íÞÑà XML
ÈÇáäÓÈÉ
ááÈÑÇãÌ ÇáÊí ÊÊÚÇãá ßËíÑÇ ãÚ ÇáãÓÊäÏÇÊ Ãæ ÊÚÇáÌ ãÓÊäÏÇÊ ßÈíÑÉ ÌÏÇ¡ ÝÅä XML áíÓ ÇáÎíÇÑ ÇáÃãËá¡ áßä áÇ íÚäí åÐÇ Ãäå áÇ íÓÊÚãá áåÐÇ.
ãËÇá ÌíÏ áåÐÇ Ãäß íãßä Ãä ÊÕæÛ ÞÇÚÏÉ ÈíÇäÇÊ ÈÓåæáÉ ( ÌÑÈ Ðáß ÈÜ HTML(
åÐÇ ÈÇáÖÈØ ãÇ ÞÇã Èå ÇáãÍÑÑ ÇáåæáäÏíEgon Willighagen áãÌáÊäÇ
( ÇäÙÑ ãÞÇáå Ýí ÇáãÑÇÌÚ)
ÃãÇ ÕÑÇãÉ ÕíÇÛÉ XML ÝÊÏÈÑ ÃãÑß áÊÌÚáåÇ Ýí ÕÇáÍß ÈÃä ÊÓÊÚãá
ÇáãÏÞÞÇÊ ÇáÅãáÇÆíÉ
æ ÇÌÚá ÔÑØÉ ÇáÕíÇÛÉ ÊÚíäß¡ æ ÇÚãá ÈÜDTD.
DTD
Ýí ÇáãËÇá ÇáÓÇÈÞ
'Eddy the meta-cat'
ÇÈÊßÑäÇ
ãÚÇáã XML ÎÇÕÉ ÈäÇ
Úãá ÌíÏ ÈíÏ Ãä Ðæí ÇáÒí ÇáÃÒÑÞ íæÏæä ãÚÑÝÉ ãÇ ÊÚãáå áãÇÐÇ æ ßíÝ¡ áÇ ÈÃÓ ÓäÔÑÍ åÐÇ ÈæÇÓØÉ DTD
.
DTD
íÓãÍ áß ÈÎáÞ ãÚÇáã ÌÏíÏÉ¡ Ãí áÛÉ ÌÏíÏÉ¡
DTD Ãí Document Type Definition ÊÚÑíÝ äæÚ ÇáãÓÊäÏÇÊ
ãáÝ Ýíå æÕÝ áÛÉ ãä XML
ßá ÎÕÇÆÕåÇ (attribute(
æ ßá ÊæÝíÞÇÊåÇ.
DTD
ÊÕÝ ãÇ íãßä Úãáå Ýí áÛÊß ãä XML¡ æ ãÇ áÇ íãßäß Úãáå.
ÅÐä ÊÍÏËäÇ Úä áÛÉ XML æ ÇáÂä äÊÍÏË Úä DTD ÎÇÕÉ.
ÃÚãá ÇáÔÑØÉ
ÃÍíÇäÇ íÌÈÑß DTD Úáì ÝÚá ãÇ Ýí ÃãÇßä ãÚíäÉ¡ ãËáÇ íÌÈÑß Úáì ÅÖÇÝÉ ãÚáã ÚäæÇä ÇáãÓÊäÏ¡ æ áÏíß ÈÚÖ ÇáÈÑÇãÌ ÇáÊí ÊÝÚá Ðáß ÊáÞÇÆíÇ.
ÈåÐÇ ÈÚÖ ÃÌÒÇÁ ÇáãÓÊäÏ ÊÃÎÐ ÈÚÖ ÇáÚäÇÕÑ ÊáÞÇÆíÇ¡ áÃä ÇáÞæÇÚÏ ÇáÕÇÑã ãÚÑæÝÉ ÌíÏÇ¡ æ ÈÅãßÇä DTD ãÓÇÚÏÊß
Úáì ßÊÇÈÉ ÇáäÕæÕ Åä ÃÎØÃÊ¡ ÛÐÇ ãÇ äÓíÊ ãÚáãÇ ÝÅä ÇáÔÑØÉ ÓÊÎÈÑß ÈåÐÇ Ýí ÇáäåÇíÉ.
ÇáãÒÌ
ãä ãíÒÇÊ XML ÞÏÑÊåÇ Úáì ÇÓÊÚãÇá ÚÏÉ DTD ãÑÉ æÇÍÏÉ¡ åÐÇ íÚäí Ãäå ÈÇáÅãßÇä ÇÓÊÚãÇá ÚÏÉ ÃäæÇÚ ãä ÇáÈíÇäÇÊ Ýí äÕ æÇÍÏ.
åÐÇ ÇáãÒÌ íÊã ÈæÇÓØÉ ÝÖÇÁ ÇáÃÓãÇÁ namespace¡ ÝÈÅÖÇÝÉ
Docbook DTD Ýí ãÓÊäÏ .xml (áÜ ÓÇÈÞÉ'dbk' ÝÓ åÐÇ ÇáãËÇá ).
ÝÅä ßá ãÚÇáã
Docbook
ÊÕÈÍ ÌÇåÒÉ ááÇÓÊÚãÇá Ýí ÇáãÓÊäÏ
( áäÞá Ãäå íæÌÏ ãÚáã
docbook <just_a_tag>):
<dbk:just_a_tag> ÈÚÖ ÇáßáãÇÊ </dbk:just_a_tag>
ÈÇÓÊÚãÇá äÙÇã ÝÖÇÁÇÊ ÇáÃÓãÇÁ¡ ÈÅãßÇäß ÇÓÊÚãÇá Ãí ãÚáã æ Ãí ÎÇÕíÉ áÃí XML DTD
ããÇ íÝÓÍ ÃãÇãß ÇáÅãßÇäÇÊ ßãÇ ÓÊÑì Ýí ÇáÝÞÑÉ ÇáãæÇáíÉ
...
DTD ÇáãÊæÝÑÉ
åÐå ÈÚÖåÇ:
- Docbook-XML
Docbook áÛÉ áßÊÇÈÉ ãÓÊäÏÇÊ ãåíßáÉ ãËá ÇáßÊÈ æ ÇáãÞÇáÇÊ ÊÓÊÚãá ÃíÖÇ Ýí ÃÚãÇá ÃÎÑì
. Docbook ÇáÂä åí SGML DTD (SGML åí áÛÉ ÊÃÔíÑ ÞíÇÓíÉ),
áßä ÊæÌÏ äÓÎÉ ÔÇÆÚÉ ãäåÇ Úáì XML
.
- MathML
MathML ( áÛÉ ÊÃÔíÑ ÑíÇÖíÉ Mathematical Markup Language
)ÊÓÊÚãá áæÕÝ
ÇáÚÈÇÑÇÊ ÇáÑíÇÖíÉ
æ ÇáãÚÇÏáÇÊ.
æ åí ÃÏÇÉ ØíÚÉ ÑÇÆÚÉ ááÑíÇÖíÇÊííä
ÃãÇ ÇáßíãíÇÆíæä Ýáåã áÛÊåã ÇáÎÇÕÉ
CML, Ãæ Chemical Markup Language.
ÅÚáã Ãä Mozilla 1.0 íÏÚã MathML ÊáÞÇÆíÇ.
- RDF
RDF ÅØÇÑ æÕÝ ÇáãæÇÑÏ Resource Description Framework.
áÊÑãíÒ æ ÅÚÇÏÉ ÇÓÊÚãÇá ÇáãÚÇáã Ýí ÇáæÇÞÚ ÊÓÊÚãá ÚÇÏÉ ãä ØÑÝ ÕÝÍÇÊ ÇáæíÈ æ ÇáãæÇÞÚ¡ áÃÌá ÊÈÇÏá ÇáÃÎÈÇÑ Èíäåã Íæá ÇáÃÎÈÇÑ ÇáÊí íäÔÑæäåÇ¡ ãËá ÇáãæÞÚ
ÇáåæáäÏí
linuxdot.nl.linux.org
íÓÊÚãá ãáÝÇÊ
RDF ÇáÎÇÕÉ ÈÇáãæÇÞÚ ÇáÃÎÑì áÚÑÖ ÇáÃÎÈÇÑ
ÃÔåÑ ãæÇÞÚ ÇáÃÎÈÇÑ .
(ãËá Slashdot)
ÊÞÏã ãáÝÇÊ
RDF áÊÖÚåÇ Ýí ÕÝÍÊß ÝÊÍÕá Úáì ÃáÎÈÇÑ .
- SOAP
SOAP ÊÚäí for Simple Object Access Protocol ãÑÓæã ÈáæÛ ÇáÃÔíÇÁ ÇáÈÓíØÉ
.
áÛÉ ãÓÊÚãáÉ
ááÇÊÕÇá Èíä ÇáÈÑÇãÌ process ( ÊÈÇÏá ÇáÈíÇäÇÊ æ ÇÓÊÏÚÇÁ ÇáÊÏÇÈíÑ Úãä ÈÚÏ)
(exchange data and perform remote
procedure calls)
ÈæÇÓØÊå ÊÊæÇÕá ÇáÈÑÇãÌ
ÝíãÇ ÈíäåÇ ãä ÎáÇá ãÑÇÓã ãËá HTTP ãËáÇ.
ÃÚÊÞÏ Ãä ÚÇØÝ áå ãÇ íÞæá ( ÇäÙÑ ÇáãÑÇÌÚ)
- SVG
Scalable Vector Graphics ÇáÑÓæã ÇáÎØíÉ ÇáÞÇÈáÉ ááÊãÏÏ .
íÚÊÈÑ ÇáËáÇËí PNG, JPEG2000 æSVG ãÓÊÞÈá ÇáÕæÑ Úáì ÇáæíÈ
. PNG ÓÊÚæÖ GIF
(ÕæÑ äÞØíÉ ãÖÛæØÉ ÈÃÞá ÖíÇÚ ÈÔÝÇÝíÉ), æJPEG2000 ÞÏ ÊÎáÝ
.jpg ( ÕæÑ äÞØíÉ ãÖÛæØÉ ÖÛØÇ ãÖ龯 ÏÑÌÉ ÇáÖíÇÚ).
SVG
áíÓÊ ÕæÑÉ äÞØíÉ Èá ÊãËá ÇáÕæÑ Ýí ÃÔßÇá åäÏÓíÉ ( ÎØæØ¡ ÏæÇÆÑ)
æ ÝíåÇ æÙÇÆÝ ãËá ÇáÍÑßíÉ æ ÇáÊÎØíØ ããÇ íÞÇÑäåÇ ÈÜ
Macromedia Flash.
íãßäß ÇÓÊÚãÇáJavaScript
Ýí ãáÝÇÊ
.svg
æ ßÊÇÈÉ ÒãÑ .svg code. íÇááãÑæäÉ !
áßä svg
ãÇ ÒÇáÊ ÌÏíÏÉ .
Ýí ÇáæÞÊ ÇáÍÇáí ÊæÌÏ ãÊÕÝÍÇÊ äæÚíÉ ÑÝíÚÉ
ãä ÃÌá
SVG
ãÊæÝÑÉ ãä ADOBE ÎÇÕÉ ÈæäÏæÒ
æ ÇáãÇßäÊæÔ
¡ ßãÇ Ãä ãæÒíááÇ
íÚãá Úáì ÅäÔÇÁ ãÊÕÝÍ svg
(
áíÓ ãÊæÝÑÇ ÍÊì ÇáÂä)
ãä ÃÌá ÇÓÊÚãÇáå Úáíß ÈÊÍãíá äÓÎÉ ÎÇÕÉ ãä
ÇáãÊÕÝÍ
ãáÇÍÙÉ :ãáÝÇÊ .svg ÞÏ Êßæä ßÈíÑÉ ÌÏÇ áÐÇ ÛÇáÈÇ ãÇ ÊÖÛØ åÐå ÇáãáÝÇÊ ÈÎæÇÑÒãíÉ gzip
- XHTML
XHTML åæ ÇÔÊÞÇÞ XML ãä HTML ÇáÅÕÏÇÑ4.01.
æ ÈÓÈÈ ÕÑÇãÉ ÞæÇÚÏ XML ÝáÇ íãßä Úãá ÈÚÖ ãÇ íãßä ÈÜHTML Ãí Ãä ÕÝÍÉ XHTML áíÓÊ ÕÇáÍÉ ÈÇáÖÑæÑÉ áHTML
.
ÈÑäÇãÌ íãßäå ÊÍæíá
HTML Åáì XML.
- ÃÎÑì
ÈÚÖ ÃäæÇÚ ÇáãáÝÇÊ ÇáÌÏíÏÉ
ÊÓÊÚãá
XML,
ãÚ ÖÛØåÇ ÈÜ.gz Ãæ .zip .
ãËáÇ ÕíÇÛÉ ãáÝÇÊ KOffice åí
XML DTD. åÐÇ ãÝíÏ ÌÏÇ
áÃäåÇ ÊÊíÍ ááãÓÊÚãáíä
ÅÏÑÇÌ ÊØÈíÞÇÊ ÃÎÑì
Ýí äÝÓ ÇáãÓÊäÏ
ãËá ÅÏÑÇÌ KChart spreadsheet Ýí
KWord document .
ÑæÇÈØ
The W3C, or World Wide Web Consortium
ãÚáæãÇÊ Úä XML, MathML, CML, RDF, SVG, SOAP, XHTML, namespaces...
www.w3.org
ÈÚÖ ÇáãÞÇáÇÊ áÜ Jaime Villate (ÊÍÊÇÌ ÇáÊÑÌãÉ)
Introduction to XML(in Spanish)
How to generate HTML with XML(in Spanish)
LSM-slides
ÈÑäÇãÌ HTML tidy
www.w3.org/People/Raggett/tidy
Docbook
www.docbook.org
ãÔÑæÚ Mozilla.org áÕæÑ SVG
www.mozilla.org/projects/svg
ãÞÇáÇÊ áíäßÓ ÝæßÓ ÇáãÊÚáÞÉ:
Using XML and XSLT to build LinuxFocus.org(/Nederlands)
Making PDF documents with DocBook
ÊÚÞíÈß Úáì åÐÇ ÇáãÞÇá
áßá ãÞÇá ÕÝÍÉ ÎÇÕÉ ÈÇáÊÚÞíÈÇÊ¡ ÃÑÓá ÊÚÞíÈÇ Ãæ ÇØáÚ Úáì ÊÚÞíÈÇÊ ÇáÂÎÑíä.
2002-04-16, generated by lfparser version 2.27