ኤክስኤምኤል ሁልጊዜ ማለት ይቻላል አላግባብ ጥቅም ላይ ይውላል

ኤክስኤምኤል ሁልጊዜ ማለት ይቻላል አላግባብ ጥቅም ላይ ይውላል
የኤክስኤምኤል ቋንቋ በ1996 ተፈጠረ። ብዙም ሳይቆይ የመተግበሪያው እድሎች በተሳሳተ መንገድ መረዳት ከጀመሩ እና እሱን ለማስማማት ለሚሞክሩት ዓላማዎች ፣ ምርጥ ምርጫ አልነበረም።

ካየኋቸው የኤክስኤምኤል ንድፎች መካከል አብዛኞቹ ተገቢ ያልሆኑ ወይም የተሳሳቱ የኤክስኤምኤል አጠቃቀሞች ናቸው ብል ማጋነን አይሆንም። በተጨማሪም፣ ይህ የኤክስኤምኤል አጠቃቀም ኤክስኤምኤል ስለ ምን እንደሆነ መሠረታዊ አለመግባባት አሳይቷል።

ኤክስኤምኤል ምልክት ማድረጊያ ቋንቋ ነው። ይህ የውሂብ ቅርጸት አይደለም. አብዛኛዎቹ የኤክስኤምኤል መርሃግብሮች ይህንን ልዩነት በግልፅ ችላ ብለዋል ፣ኤክስኤምኤልን ከመረጃ ቅርጸት ጋር ያደናቅፋሉ ፣ይህም በመጨረሻ ኤክስኤምኤልን በመምረጥ ላይ ስህተት ያስከትላል ምክንያቱም በእውነቱ የሚያስፈልገው የመረጃ ቅርጸት ነው።

ብዙ ዝርዝር ውስጥ ሳንገባ፣ኤክስኤምኤል የጽሑፍ ብሎኮችን በመዋቅር እና በሜታዳታ ለማብራራት በጣም ተስማሚ ነው። ዋናው ግብህ ከጽሑፍ ብሎክ ጋር መሥራት ካልሆነ፣ ኤክስኤምኤልን መምረጥ ትክክል ሊሆን አይችልም።

ከዚህ አንጻር የኤክስኤምኤል ንድፍ ምን ያህል እንደተሰራ ለመፈተሽ ቀላል መንገድ አለ። በታሰበው ንድፍ ውስጥ እንደ አንድ ሰነድ እንደ ምሳሌ እንውሰድ እና ሁሉንም መለያዎች እና ባህሪያትን እናስወግድ። የተረፈው ነገር ትርጉም ከሌለው (ወይንም የቀረው ባዶ መስመር ካለ) ወይ የእርስዎ እቅድ በትክክል አልተገነባም ወይም በቀላሉ ኤክስኤምኤልን መጠቀም አልነበረበትም።

ትክክል ባልሆኑ የተገነቡ ወረዳዎች በጣም የተለመዱ ምሳሌዎችን ከዚህ በታች እሰጣለሁ።

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

እዚህ ላይ በኤክስኤምኤል ውስጥ ቀላል የቁልፍ እሴት መዝገበ ቃላትን ለመግለጽ መሠረተ ቢስ እና እንግዳ (በጣም የተለመደ ቢሆንም) ምሳሌ እንመለከታለን። ሁሉንም መለያዎች እና ባህሪዎች ካስወገዱ ባዶ ረድፍ ይተዋሉ። በመሠረቱ፣ ይህ ሰነድ ምንም ያህል የማይረባ ቢመስልም፣ የባዶ መስመር የትርጉም ማብራሪያ ነው።

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

ይባስ ብሎ፣ እኛ እዚህ ባዶ ሕብረቁምፊ ላይ የትርጓሜ ማብራሪያ ብቻ አይደለም መዝገበ ቃላትን እንደ ትርፋማነት የሚገልፅበት - በዚህ ጊዜ “መዝገበ-ቃላቱ” በቀጥታ የሥሩ አካል መለያዎች ተብሎ ተቀምጧል። ይህ በአንድ አካል ላይ የተሰጠውን የባህሪ ስም ስብስብ ያልተገለፀ እና ተለዋዋጭ ያደርገዋል። ከዚህም በላይ ደራሲው በእውነት ለመግለጽ የፈለጉት ቀላል የቁልፍ እሴት አገባብ ብቻ መሆኑን ይልቁንስ ኤክስኤምኤልን ተግባራዊ ለማድረግ ፍጹም እንግዳ ውሳኔ ማድረጉን አንድ ባዶ ኤለመንት በቀላሉ እንደ ቅድመ ቅጥያ የባህሪ አገባብ ለመጠቀም አስገድዶታል። እና እንደዚህ አይነት እቅዶች ብዙ ጊዜ ያጋጥሙኛል.

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

ይህ የተሻለ ነገር ነው፣ አሁን ግን በሆነ ምክንያት ቁልፎቹ ሜታዳታ ናቸው እና እሴቶቹ አይደሉም። በመዝገበ-ቃላት ላይ በጣም እንግዳ እይታ። ሁሉንም መለያዎች እና ባህሪያት ካስወገዱ ግማሹ መረጃው ይጠፋል.

በኤክስኤምኤል ውስጥ ያለው ትክክለኛ የመዝገበ-ቃላት አገላለጽ ይህን ይመስላል።

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

ነገር ግን ሰዎች ኤክስኤምኤልን እንደ ዳታ ፎርማት ለመጠቀም እና ከዚያም መዝገበ ቃላትን ለማደራጀት ከተጠቀሙበት እንግዳ ውሳኔ ከወሰዱ፣ እያደረጉት ያለው ነገር አግባብ ያልሆነ እና ምቹ አለመሆኑን መረዳት አለባቸው። ንድፍ አውጪዎች መተግበሪያዎቻቸውን ለመፍጠር ኤክስኤምኤልን በስህተት መምረጥም የተለመደ ነው። ነገር ግን ብዙ ጊዜ፣ ኤክስኤምኤል በቀላሉ ለዚህ የማይመች መሆኑን በመዘንጋት ከላይ ከተገለጹት ቅጾች በአንዱ ኤክስኤምኤልን ያለ ትርጉም በመጠቀም ጉዳዩን ያባብሳሉ።

በጣም መጥፎው የኤክስኤምኤል እቅድ? በነገራችን ላይ ሽልማቱ ለ እስካሁን ካየኋቸው የከፋ የኤክስኤምኤል እቅድ፣ ለፖሊኮም አይፒ ቴሌፎኒ ስልኮች አውቶማቲክ አቅርቦት ውቅር ፋይል ቅርጸት ያገኛል። እንደነዚህ ያሉ ፋይሎች የኤክስኤምኤል ጥያቄ ፋይሎችን በTFTP ማውረድ ያስፈልጋቸዋል፣ ይህም... በአጠቃላይ፣ ከእንደዚህ አይነት ፋይል የተቀነጨበ ይህ ነው፡-

<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 ን ለማነፃፀር በመሞከር ሙሉ ለሙሉ እንግዳ ነገር ያደርጋል—እናም እነሱም እንዳልተረዱ ያሳያል። ኤክስኤምኤል የሰነድ ምልክት ማድረጊያ ቋንቋ ነው። JSON የተዋቀረ የመረጃ ፎርማት ነው፣ስለዚህ እነሱን እርስ በርስ ማነጻጸር ሙቀትን ከለስላሳ ጋር ለማነጻጸር እንደመሞከር ነው።

መካከል ያለው ልዩነት ጽንሰ-ሐሳብ ሰነዶች እና መረጃዎች. እንደ XML አናሎግ፣ በማሽን የሚነበብ ሰነድ በሁኔታዊ ሁኔታ መውሰድ እንችላለን። ምንም እንኳን በማሽን ሊነበብ የሚችል እንዲሆን የታሰበ ቢሆንም, በምሳሌያዊ አነጋገር ሰነዶችን የሚያመለክት ነው, እና ከዚህ አንጻር ሲታይ በእውነቱ ከፒዲኤፍ ሰነዶች ጋር ይወዳደራል, ብዙውን ጊዜ ማሽን ሊነበብ የማይችል ነው.

ለምሳሌ፣ በኤክስኤምኤል ውስጥ የንጥረ ነገሮች ቅደም ተከተል አስፈላጊ ነው። ነገር ግን በJSON ውስጥ፣ በእቃዎች ውስጥ ያሉ የቁልፍ-እሴት ጥንዶች ቅደም ተከተል ትርጉም የለሽ እና ያልተገለጸ ነው። የቁልፍ-እሴት ጥንዶች ያልታዘዙ መዝገበ ቃላት ማግኘት ከፈለጉ፣ በዚያ ፋይል ውስጥ ያሉት ንጥረ ነገሮች የሚታዩበት ትክክለኛ ቅደም ተከተል ለውጥ የለውም። ነገር ግን ከዚህ ውሂብ ብዙ የተለያዩ አይነት መረጃዎችን መፍጠር ይችላሉ። የሰነዶች, ምክንያቱም በሰነዱ ውስጥ የተወሰነ ቅደም ተከተል አለ. በዘይቤ፣ በወረቀት ላይ ካለ ሰነድ ጋር ይመሳሰላል፣ ምንም እንኳን ከህትመት ወይም ከፒዲኤፍ ፋይል በተቃራኒ አካላዊ ልኬቶች ባይኖረውም።

ትክክለኛው የኤክስኤምኤል መዝገበ ቃላት ውክልና ምሳሌ ከJSON ውክልና በተቃራኒ በመዝገበ-ቃላቱ ውስጥ ያሉትን ንጥረ ነገሮች ቅደም ተከተል ያሳያል። ይህን ትዕዛዝ ችላ ማለት አልችልም፡ ይህ መስመር በሰነድ ሞዴል እና በኤክስኤምኤል ቅርጸት ውስጥ ያለ ነው። አንዳንዶች ይህን የኤክስኤምኤል ሰነድ ሲተረጉሙ ትዕዛዙን ችላ ለማለት ሊመርጡ ይችላሉ፣ ነገር ግን ጉዳዩ ከቅርጸቱ ውይይት ወሰን በላይ ስለሆነ ስለዚህ ጉዳይ መጨቃጨቅ ምንም ፋይዳ የለውም። ከዚህም በላይ ሰነዱን በአሳሹ ውስጥ እንዲታይ ካደረጉት የካስካዲንግ ስታይል ሉህ ከእሱ ጋር በማያያዝ የመዝገበ-ቃላቱ ክፍሎች በተወሰነ ቅደም ተከተል እና በሌላ ውስጥ እንደሚታዩ ያያሉ።

በሌላ አነጋገር መዝገበ ቃላት (የተዋቀረ ውሂብ) ወደ ሊቀየር ይችላል። n የተለያዩ ሊሆኑ የሚችሉ ሰነዶች (በኤክስኤምኤል ፣ ፒዲኤፍ ፣ ወረቀት ፣ ወዘተ) ፣ የት n - በመዝገበ-ቃላቱ ውስጥ ሊሆኑ የሚችሉ የንጥረ ነገሮች ጥምረት ብዛት ፣ እና ሌሎች ሊሆኑ የሚችሉ ተለዋዋጮችን ገና ግምት ውስጥ አላስገባንም።

ነገር ግን፣ መረጃን ብቻ ማስተላለፍ ከፈለጉ፣ ለዚህም በማሽን ሊነበብ የሚችል ሰነድ መጠቀም ውጤታማ አይሆንም። ሞዴል ይጠቀማል, በዚህ ሁኔታ ውስጥ ከመጠን በላይ ነው, መንገዱን ብቻ ያመጣል. በተጨማሪም, የምንጭ መረጃን ለማውጣት, ፕሮግራም መጻፍ ያስፈልግዎታል. በሆነ ጊዜ እንደ ሰነድ ላልቀረፀው ነገር ኤክስኤምኤልን መጠቀም ምንም ፋይዳ የለውም (ይበል፣ CSS ወይም XSLT በመጠቀም፣ ወይም ሁለቱንም)፣ ለዚህም ዋናው ምክንያት (ብቻ ካልሆነ) ነው። ወደ ሰነዱ ሞዴል.

በተጨማሪም ኤክስኤምኤል የቁጥሮች (ወይም የቦሊያን መግለጫዎች ወይም ሌሎች የውሂብ ዓይነቶች) ጽንሰ-ሀሳብ ስለሌለው በዚህ ቅርጸት የተወከሉት ሁሉም ቁጥሮች እንደ ተጨማሪ ጽሑፍ ይቆጠራሉ። መረጃን ለማውጣት ንድፉ እና ከተገለፀው ተዛማጅ ውሂብ ጋር ያለው ግንኙነት መታወቅ አለበት። እንዲሁም በዐውደ-ጽሑፉ ላይ በመመስረት አንድ የተወሰነ የጽሑፍ አካል ቁጥርን ሲወክል እና ወደ ቁጥር መለወጥ እንዳለበት ወዘተ ማወቅ ያስፈልግዎታል።

ስለዚህ መረጃን ከኤክስኤምኤል ሰነዶች የማውጣት ሂደት የተቃኙ ሰነዶችን ለምሳሌ ብዙ የቁጥር መረጃዎችን ገፆች ካዘጋጁት ሰንጠረዦች እውቅና ከመስጠት ሂደት የተለየ አይደለም። አዎ ፣ ይህንን በመርህ ደረጃ ማድረግ ይቻላል ፣ ግን ይህ በጣም ጥሩው መንገድ አይደለም ፣ እንደ የመጨረሻ አማራጭ ካልሆነ በስተቀር ሌሎች አማራጮች ከሌሉ ። ምክንያታዊ መፍትሄ በሰነድ ሞዴል ውስጥ ያልተካተተ የዋናውን ውሂብ ዲጂታል ቅጂ በቀላሉ ማግኘት ሲሆን ይህም መረጃውን ከተለየ የጽሑፍ ውክልና ጋር አጣምሮ።

ይህ ሲባል፣ ኤክስኤምኤል በንግድ ስራ ታዋቂ መሆኑ ምንም አያስደንቀኝም። ይህ የሆነበት ምክንያት በትክክል የሰነዱ ቅርፀት (በወረቀት ላይ) ሊረዳ የሚችል እና ለንግድ ስራ የታወቀ ነው, እና የሚታወቅ እና ሊረዳ የሚችል ሞዴል መጠቀሙን መቀጠል ይፈልጋሉ. በተመሳሳዩ ምክንያት ንግዶች ብዙውን ጊዜ በማሽን ሊነበቡ ከሚችሉ ቅርጸቶች ይልቅ የፒዲኤፍ ሰነዶችን ይጠቀማሉ - ምክንያቱም አሁንም የተወሰነ የአካል መጠን ካለው የታተመ ገጽ ጽንሰ-ሀሳብ ጋር የተሳሰሩ ናቸው። ይሄ በጭራሽ ሊታተሙ በማይችሉ ሰነዶች (ለምሳሌ ባለ 8000 ገጽ ፒዲኤፍ የመመዝገቢያ ሰነዶች) ላይም ይሠራል። ከዚህ አንፃር የኤክስኤምኤልን በንግድ ስራ መጠቀም በመሠረቱ የስኬዎሞርፊዝም መገለጫ ነው። ሰዎች የተወሰነ መጠን ያለው የታተመ ገጽ ዘይቤያዊ ሀሳብን ይገነዘባሉ እና በታተሙ ሰነዶች ላይ በመመስረት የንግድ ሥራ ሂደቶችን እንዴት መፍጠር እንደሚችሉ ይገነዘባሉ። ያ የእርስዎ መመሪያ ከሆነ፣ በማሽን ሊነበቡ የሚችሉ የአካል መጠን ገደቦች የሌሉ ሰነዶች -ኤክስኤምኤል ሰነዶች - የሚታወቁ እና ምቹ የሰነድ ተጓዳኝ ሆነው ፈጠራን ይወክላሉ። ይህ ትክክል ያልሆነ እና ከመጠን በላይ skeuomorphic ውሂብን የማቅረብ ዘዴ እንዳይቀሩ አያደርጋቸውም።

እስከዛሬ፣ እኔ የማውቃቸው የኤክስኤምኤል መርሃ ግብሮች በትክክል ትክክለኛ የሆነ የቅርጸቱን አጠቃቀም መጥራት የምችለው XHTML እና DocBook ናቸው።

ምንጭ: hab.com

አስተያየት ያክሉ