XML تقریبا تل غلط کارول کیږي

XML تقریبا تل غلط کارول کیږي
د XML ژبه په 1996 کې اختراع شوه. ډیر ژر دا څرګند شوی و چې د دې غوښتنلیک امکانات لا دمخه غلط پوهیدل پیل شوي و ، او د هغه اهدافو لپاره چې دوی یې د تطبیق هڅه کوله ، دا غوره انتخاب نه و.

دا هیڅ مبالغه نده چې ووایاست چې د XML سکیمونو لوی اکثریت چې ما لیدلی د XML نامناسب یا غلط استعمال و. برسېره پردې، د XML کارولو دا بنسټیز غلط فهم وښوده چې د XML ټول څه دي.

XML د مارک اپ ژبه ده. دا د معلوماتو بڼه نه ده. ډیری XML سکیمونو په ښکاره ډول دا توپیر له پامه غورځولی، XML د ډیټا فارمیټ سره ګډوډ کوي، کوم چې په پایله کې د XML غوره کولو کې غلطۍ پایله کوي ځکه چې دا د ډیټا بڼه ده چې واقعا ورته اړتیا ده.

پرته له دې چې ډیر تفصیل ته لاړ شي، XML د جوړښت او میټاډاټا سره د متن بلاکونو تشریح کولو لپاره غوره دی. که ستاسو اصلي هدف د متن د بلاک سره کار نه وي، د XML غوره کول امکان نلري چې توجیه شي.

د دې لید څخه، د XML سکیما څومره ښه جوړ شوی د چک کولو لپاره یوه ساده لار شتون لري. راځئ چې د مثال په توګه په مطلوب سکیما کې یو سند واخلو او له هغې څخه ټول ټګونه او ځانګړتیاوې لرې کړو. که هغه څه چې پاتې دي معنی نلري (یا که چیرې یو خالي کرښه پاتې وي)، نو یا ستاسو سکیما په سمه توګه نه ده جوړه شوې یا تاسو باید په ساده ډول XML نه کارولی.

لاندې به زه د غلط جوړ شوي سرکیټونو ځینې خورا عام مثالونه وړاندې کړم.

<roоt>
  <item name="name" value="John" />
  <item name="city" value="London" />
</roоt>

دلته موږ په XML کې د ساده کلیدي ارزښت قاموس څرګندولو لپاره د بې اساسه او عجیب (که څه هم خورا عام) هڅه یوه بیلګه ګورو. که تاسو ټول ټګونه او ځانګړتیاوې لرې کړئ، نو تاسو به د خالي قطار سره پاتې شئ. په لازمي ډول، دا سند دی، پرته له دې چې دا څومره بې معنی وي، د خالي کرښې سیمانټیک تشریح.

<root name="John" city="London" />

د دې لپاره چې مسله نوره هم خرابه کړي، موږ دلته یوازې د خالي تار سیمانټیک تشریح نه لرو د قاموس څرګندولو د غیر معمولي لارې په توګه - دا ځل "لغت" په مستقیم ډول د اصلي عنصر د ځانګړتیاو په توګه کوډ شوی. دا په یو عنصر کې د ځانګړتیاو نومونو ورکړل شوی سیټ غیر تعریف شوی او متحرک کوي. سربیره پردې ، دا ښیې چې ټول لیکوال واقعیا غوښتل څرګند کړي یو ساده کلیدي ارزښت ترکیب و ، مګر پرځای یې هغه د XML پلي کولو لپاره خورا عجیب پریکړه وکړه ، د یو واحد خالي عنصر کارول په ساده ډول د ځانګړتیا نحو کارولو لپاره د مخکینۍ په توګه کارول. او زه ډیری وختونه دا ډول سکیمونو سره مخ کیږم.

<roоt>
  <item key="name">John</item>
  <item key="city">London</item>
</roоt>

دا یو څه ښه دی، مګر اوس د ځینو دلیلونو لپاره کلیدونه میټاډاټا دي او ارزښتونه ندي. په لغتونو کې خورا عجیب نظر. که تاسو ټول ټګونه او ځانګړتیاوې لرې کړئ، نیمایي معلومات به ورک شي.

په XML کې د سم لغت بیان به داسې ښکاري:

<roоt>
  <item>
    <key>Name</key>
    <value>John</value>
  </item>
  <item>
    <key>City</key>
    <value>London</value>
  </item>
</roоt>

مګر که خلکو عجیب پریکړه کړې وي چې د ډیټا فارمیټ په توګه XML وکاروي او بیا یې د قاموس تنظیم کولو لپاره وکاروي ، نو دوی باید پوه شي چې هغه څه چې دوی یې کوي نامناسب او مناسب ندي. دا د ډیزاینرانو لپاره هم معمول دی چې په غلطۍ سره د دوی غوښتنلیکونو رامینځته کولو لپاره XML غوره کړي. مګر حتی ډیری وختونه، دوی د پورته تشریح شوي فورمو څخه په یو ډول د XML کارولو سره مسایل خرابوي، دا حقیقت له پامه غورځوي چې XML په ساده ډول د دې لپاره مناسب ندي.

بدترین XML سکیما؟ په لاره کې، د جایزې لپاره ترټولو بد XML سکیما چې ما کله هم لیدلې ده، د پولی کام IP ټیلیفوني تلیفونونو لپاره د اتوماتیک چمتو کولو ترتیب کولو فایل فارمیټ ترلاسه کوي. دا ډول فایلونه د TFTP له لارې د XML غوښتنې فایلونو ډاونلوډ ته اړتیا لري، کوم چې ... په عموم کې، دلته د ورته فایل څخه اقتباس دی:

<softkey
        softkey.feature.directories="0"
        softkey.feature.buddies="0"
        softkey.feature.forward="0"
        softkey.feature.meetnow="0"
        softkey.feature.redial="1"
        softkey.feature.search="1"

        softkey.1.enable="1"
        softkey.1.use.idle="1"
        softkey.1.label="Foo"
        softkey.1.insert="1"
        softkey.1.action="..."

        softkey.2.enable="1"
        softkey.2.use.idle="1"
        softkey.2.label="Bar"
        softkey.2.insert="2"
        softkey.2.action="..." />

دا د چا بد ټوکه نه ده. او دا زما اختراع نه ده:

  • عناصر په ساده ډول د ځانګړتیاوو د ضمیمه کولو لپاره د مخکینۍ په توګه کارول کیږي، کوم چې پخپله درجه بندي نومونه لري.
  • که تاسو غواړئ د یو ځانګړي ډول ریکارډ ډیری مثالونو ته ارزښتونه وټاکئ، نو تاسو باید د دې کولو لپاره د ځانګړتیاو نومونه وکاروئ. کوم چې شاخصونه لري.
  • برسېره پردې، د ځانګړتیاوو سره پیل کیږي softkey.، باید په عناصرو کې کیښودل شي <softkey/>د ځانګړنو سره پیل کیږي feature.، باید په عناصرو کې کیښودل شي <feature/> او داسې نور، سره له دې چې دا په بشپړه توګه غیر ضروري او په لومړي نظر کې بې معنی ښکاري.
  • او په نهایت کې ، که تاسو تمه لرئ چې د ځانګړتیا نوم لومړۍ برخه به تل د عنصر نوم په څیر وي - داسې هیڅ نه! د مثال په توګه، صفات up. باید سره وصل شي <userpreferences/>. عناصرو ته د منسوب نومونو ضمیمه کولو ترتیب په خپل سر دی، تقریبا په بشپړه توګه.

اسناد او معلومات. هر یو په یو وخت کې ، یو څوک د XML او JSON پرتله کولو هڅه کولو سره په بشپړ ډول عجیب څه کوي — او پدې توګه دا ښیې چې دوی هم نه پوهیږي. XML د سند مارک اپ ژبه ده. JSON د جوړښت شوي ډاټا بڼه ده، نو د یو بل سره پرتله کول د نرم سره ګرم پرتله کولو هڅه کوي.

تر منځ د توپیر مفهوم اسناد او معلومات. د XML د انلاګ په توګه، موږ کولی شو په مشروط ډول د ماشین لوستلو وړ سند واخلو. که څه هم دا د ماشین لوستلو وړ وي ، دا په استعاري ډول اسنادو ته راجع کوي ، او له دې لید څخه واقعیا د پی ډی ایف سندونو سره پرتله کیږي ، کوم چې ډیری وختونه د ماشین لوستلو وړ ندي.

د مثال په توګه، په XML کې د عناصرو ترتیب مهم دی. مګر په JSON کې، د شیانو دننه د کلیدي ارزښت جوړو ترتیب بې معنی او نه تعریف شوی دی. که تاسو غواړئ د کلیدي ارزښت جوړو غیر منظم قاموس ترلاسه کړئ، اصلي ترتیب چې عناصر په دې فایل کې ښکاري مهمه نده. مګر تاسو کولی شئ د دې ډاټا څخه ډیری مختلف ډولونه جوړ کړئ. د سندونوځکه چې په سند کې یو ځانګړی ترتیب شتون لري. په استعاري توګه، دا په کاغذ کې د سند سره ورته دی، که څه هم دا فزیکي ابعاد نلري، د چاپ یا پی ډی ایف فایل برعکس.

زما د مناسب XML قاموس نمایندګۍ مثال په لغت کې د عناصرو ترتیب ښیې ، لکه څنګه چې د JSON نمایش سره مخالفت کوي. زه نشم کولی دا امر له پامه غورځولی: دا خطیتوب د سند ماډل او XML ب formatه کې موجود دی. ځینې ​​​​ممکن د دې XML سند تشریح کولو پرمهال امر له پامه غورځول غوره کړي ، مګر پدې اړه بحث کولو کې هیڅ معنی نشته ځکه چې مسله پخپله د ب formatې د بحث له ساحې بهر ده. سربیره پردې ، که تاسو په براوزر کې د کاسکیډینګ سټایل شیټ سره ضمیمه کولو سره سند د لید وړ کړئ ، نو تاسو به وګورئ چې د لغت عناصر په یو ځانګړي ترتیب کې څرګندیږي او په بل هیڅ کې نه.

په بل عبارت، یو قاموس (د جوړښت شوي ډیټا یوه ټوټه) کې بدلیدلی شي n مختلف ممکنه اسناد (په XML، PDF، کاغذ، او نور کې)، چیرته n - په لغت کې د عناصرو د ممکنه ترکیبونو شمیر، او موږ لا تر اوسه نور احتمالي تغیرات په پام کې نه دي نیولي.

په هرصورت، دا دا هم تعقیبوي چې که تاسو غواړئ یوازې ډاټا انتقال کړئ، نو د دې لپاره د ماشین لوستلو وړ سند کارول به اغیزمن نه وي. دا یو ماډل کاروي، کوم چې پدې حالت کې خورا ډیر دی؛ دا به یوازې په لاره کې راشي. سربیره پردې ، د سرچینې ډیټا ایستلو لپاره ، تاسو اړتیا لرئ یو برنامه ولیکئ. د یو څه لپاره د XML کارولو کې هیڅ شی شتون نلري چې په یو وخت کې به د سند په توګه فارمیټ نه وي (وایاست ، د CSS یا XSLT کارول ، یا دواړه) ، ځکه چې دا د دې کولو اصلي (که نه یوازې) دلیل دی. د سند ماډل ته.

سربیره پردې، ځکه چې XML د شمیرو مفهوم نلري (یا د بولین څرګندونې، یا د نورو معلوماتو ډولونه)، ټول شمیرې چې په دې بڼه کې ښودل شوي یوازې اضافي متن ګڼل کیږي. د معلوماتو استخراج لپاره، سکیما او د اړونده معلوماتو سره د هغې اړیکه باید معلومه شي. تاسو باید پوه شئ چې کله، د شرایطو پراساس، یو ځانګړی متن عنصر د شمیرې استازیتوب کوي او باید په شمیره بدل شي، او داسې نور.

په دې توګه، د XML اسنادو څخه د معلوماتو استخراج پروسه د سکین شوي اسنادو پیژندلو پروسې څخه دومره توپیر نلري، د بیلګې په توګه، میزونه د شمیرو ډیری پاڼو پاڼې جوړوي. هو، دا ممکنه ده چې دا په اصولو کې ترسره شي، مګر دا ترټولو غوره لاره نه ده، پرته له دې چې د وروستي ریزورټ په توګه، کله چې هیڅ بل اختیار شتون نلري. یو معقول حل دا دی چې په ساده ډول د اصلي ډیټا ډیجیټل کاپي ومومئ کوم چې د سند ماډل کې ځای په ځای شوي ندي چې ډاټا د دې ځانګړي متن نمایش سره ترکیب کوي.

دې وویل، دا ما ته حیران نه کوي چې XML په سوداګرۍ کې مشهور دی. د دې دلیل دقیقا دا دی چې د سند بڼه (په کاغذ باندې) د پوهیدو وړ او سوداګرۍ ته پیژندل کیږي، او دوی غواړي د پیژندل شوي او پوهیدو وړ ماډل کارولو ته دوام ورکړي. د ورته دلیل لپاره، سوداګرۍ هم ډیری وختونه د ماشین لوستلو وړ فارمیټونو پرځای د PDF سندونه کاروي - ځکه چې دوی لاهم د ځانګړي فزیکي اندازې سره د چاپ شوي پاڼې مفهوم سره تړلي دي. دا حتی په هغو اسنادو باندې تطبیق کیږي چې امکان نلري چې هیڅکله چاپ شي (د مثال په توګه، د راجستر اسنادو 8000 پاڼې PDF). له دې نظره، په سوداګرۍ کې د XML کارول په اصل کې د سکومومورفیزم څرګندونه ده. خلک د محدودې اندازې د چاپ شوي پاڼې په استعاره مفکوره پوهیږي، او دوی پوهیږي چې څنګه د چاپ شوي اسنادو پراساس د سوداګرۍ پروسې رامینځته کړي. که دا ستاسو لارښود وي، د فزیکي اندازې محدودیتونو پرته اسناد چې د ماشین لوستلو وړ دي - د XML اسناد - د نوښت استازیتوب کوي پداسې حال کې چې د پیژندل شوي او راحته سند همکار وي. دا دوی د معلوماتو وړاندې کولو غلط او ډیر سکیومورفیک طریقې پاتې کیدو مخه نه نیسي.

تر نن نیټې پورې، یوازې د XML سکیمونه چې زه یې پوهیږم چې زه کولی شم په ریښتیا سره د فارمیټ یو باوري کارونې ته ووایم XHTML او DocBook.

سرچینه: www.habr.com

Add a comment