উপাদানের নামে মামলার সম্মেলন?


120

এক্সএমএলে এলিমেন্ট কেসিংয়ের বিষয়ে কি কোনও আনুষ্ঠানিক সুপারিশ রয়েছে?

আমি জানি এক্সএইচটিএমএল ছোট হাতের উপাদানগুলির নাম ব্যবহার করে (HTML এর বিপরীতে যা বড় হাতের অক্ষর ব্যবহার করে তবে কেস-সংবেদনশীল।

তবে আমি জেনেরিক সামগ্রীর জন্য এক্সএমএল সম্পর্কে কথা বলছি।

ছোট হাতের অক্ষরে:

<customer> 
   <accountnumber>619</accountnumber>
   <name>Shelby Lake</name>
</customer>

ক্যামেলকেস:

<customer> 
   <accountNumber>619</accountNumber>
   <name>Shelby Lake</name>
</customer>

PascalCase:

<Customer> 
   <AccountNumber>619</AccountNumber>
   <Name>Shelby Lake</Name>
</Customer>

বড় হাতের:

<CUSTOMER> 
   <ACCOUNTNUMBER>619</ACCOUNTNUMBER>
   <NAME>Shelby Lake</NAME>
</CUSTOMER>

দ্রষ্টব্য: আমি মতামতের চেয়ে উদ্ধৃত নির্দেশিকা খুঁজছি। তবে সর্বাধিক ভোটের সাথে মতামত একটি গাইডলাইন হিসাবে বিবেচনা করা যেতে পারে।


উত্তর:


88

ডাব্লু 3 সি থেকে উত্পন্ন বেশিরভাগ এক্সএমএল মান হাইফেনের সাথে লোয়ার কেস ব্যবহার করতে ঝোঁক।

এক্সএমএলকে প্ল্যাটফর্মের নিরপেক্ষ নথির বিন্যাস হিসাবে দেখার মধ্যে একটি দার্শনিক পার্থক্য রয়েছে, যা ডাব্লু 3 সি মানক উত্সাহ দেওয়ার চেষ্টা করে এবং এক্সএএমএল এর মতো ভাষা যা এক্সএমএলকে প্ল্যাটফর্ম নির্দিষ্ট বস্তুর গ্রাফের ক্রমিক হিসাবে দেখায়।

আপনি যদি এক্সএমএলটিকে প্ল্যাটফর্মের নিরপেক্ষ ডকুমেন্ট ফর্ম্যাট হিসাবে ব্যবহার না করে তবে অ্যাপ্লিকেশন নির্দিষ্ট সিরিয়ালকরণ হিসাবে ব্যবহার করেন তবে এক্সএমএল নাম এবং প্ল্যাটফর্মের নির্দিষ্ট নামের মধ্যে আপনার 1: 1 চিঠিপত্র থাকতে পারে you তবে প্রায় অন্য কোনও অবজেক্টের গ্রাফ ফর্ম্যাটটি সেই উদ্দেশ্যে এক্সএমএলের চেয়ে ভাল।

আপনি যদি হন তবে আপনি এক্সএইচটিএমএল, এক্সএসএলটি, এসভিজি, এক্সপ্রোক, রিল্যাক্সএনজি এবং বাকিগুলির সাথে ফিট করতে পারেন।


7
সুতরাং হাইফেনের সাথে লোয়ার কেস বাঞ্ছনীয় বা প্রস্তাবিত নয় কি?
ওয়ারফক্স

9
@ ওয়ারফক্স আমি মনে করি না যে কেউই অফিসিয়াল সুপারিশ করেছে made আইএমই, আন্তঃব্যবহারযোগ্যতার জন্য ডাব্লু 3 সি থেকে আসা ফর্ম্যাটগুলি হাইফেন স্টাইলে থাকে; মাইক্রোসফ্ট এবং অন্যান্য কিছু থেকে আসা ফর্ম্যাটগুলি প্রয়োগের জন্য ব্যবহৃত ভাষায় বস্তুর নামগুলির জন্য একটি প্রয়োগকরণ এবং সম্মেলনের সাথে দৃ to়ভাবে মিলিত হয়। আপনি যদি সিস্টেমগুলি ডিকুয়াল করার জন্য এক্সএমএল ব্যবহার করেন, তবে সেই সিস্টেমের কোনও একটি উপাদানটির ভাষা শৈলীতে আপনার এক্সএমএলকে সংযুক্ত না করা আপনাকে বস্তুর চেয়ে বার্তাগুলির বিবেচনায় ভাবতে বাধ্য করতে পারে, এবং তাই আমি নিম্ন কেস এবং হাইফেন শৈলীর পরামর্শ দেব।
পিট কির্খাম

5
নোট করুন যে 'হাইফেনের সাথে ছোট হাতের' এক্সএসএলটিতে কিছু সমস্যা আছে। বিশেষত একটি নোড নামক একটি নোডকে বিভ্রান্ত করা সহজ, বলা যাক, 'বছরের পর বছর' সূত্রের সাথে 'বছর - বয়স' (উদাহরণস্বরূপ বছর থেকে বিয়োগের বয়স)
রিচার্ড কেনার্ড

3
@ রিচার্ড কেনার্নার্ড কি সেই বিভ্রান্তি কেবল মানব পর্যায়ে রয়েছে? এক্সস্টল্টের জন্য অপারেটরের চারপাশে প্রয়োজনীয় স্পেসগুলি (?) একটি পরিষ্কার এবং দ্ব্যর্থহীন পার্থক্য সরবরাহ করে, তাই না?
কার্ল কেইঞ্জার

1
@ কার্ল কেইঞ্জার এটি সত্য, তবে আইএমএইচও, মানব পর্যায়ে বিভ্রান্তি একটি গুরুত্বপূর্ণ উদ্বেগ। নীচে আমার প্রসারিত উত্তর দেখুন।
রিচার্ড কেনার্ড

64

এটি গুরুত্বপূর্ণ নয়, তবে বৈশিষ্ট্যের জন্য আমি সর্বদা পাস্কালকেসে এবং উটক্যাসের জন্য আংশিক হয়েছি:

<Root>
  <ParentElement attributeId="1">
    <ChildElement attributeName="foo" />
  </ParentElement>
</Root>

31

কোনও আনুষ্ঠানিক সুপারিশ নেই।

এক্সএমএল যেহেতু নথিপত্র ধারণ এবং ভিন্ন সিস্টেমের মধ্যে তথ্য আদান প্রদানের দু'টি উদ্দেশ্য নিয়ে ডিজাইন করা হয়েছিল, তাই এটি ব্যবহার করে অ্যাপ্লিকেশনগুলির সাথে ম্যাচ করতে সক্ষম হওয়ার জন্য এটি নকশা করা হয়েছিল ।

সুতরাং। নেট এক্সএমএল প্রপেসকেসিং (সাক্ষী এক্সএএমএল) ব্যবহার করার প্রবণতা দেখায়, অন্য এক্সএমএল উট কেসিং, পাইথন_ কনভেনশনস, ডট.নামিং এবং এমনকি কোবল-কনভেনশনও ব্যবহার করবে। ডাব্লু 3 সি মনে হয় লোয়ার-কেস-সাথে-ড্যাশগুলি-বেশ-বিট (উদাহরণস্বরূপ এক্সএসএলটি) বা জাস্ট্লোসারকেসওয়ার্ডম্যাসেড টুগেদার (যেমন ম্যাথএমএল)।

আমি সমস্ত ছোট হাতের অক্ষর পছন্দ করি এবং কোন আন্ডারস্কোর করি না, কারণ এর অর্থ [শিফট] কীটি কম ব্যবহার করা হয় এবং আমার আঙ্গুলগুলি কিছুটা অলস হয়। :)


2
দেখে মনে হচ্ছে এটির যদি "তথ্য বিনিময়" করার উদ্দেশ্য থাকে তবে নামকরণ কনভেনশনগুলির একটি মানদণ্ড একেবারে পছন্দসই হত। এটি একাধিক নির্দিষ্ট প্রয়োগের দ্বারা ব্যবহৃত যে কোনও দস্তাবেজের ক্ষেত্রেও প্রযোজ্য (উদাহরণস্বরূপ যেগুলি এক-অফ সিরিয়ালাইজেশন ছিল না)।

25

মেট্রো স্মুরফের উত্তর যুক্ত করতে।

জাতীয় তথ্য বিনিময় মডেল (এনআইইএম: http://en.wikedia.org/wiki/ জাতীয়_ তথ্য_এক্সচেঞ্জ_মোডেল ) বলেছেন:

  • উপাদানগুলির জন্য উচ্চতর ক্যামেলকেস (পাস্কেলকেস)।
  • (নিম্ন) বৈশিষ্ট্যগুলির জন্য উটকেসেস।

আপনি যখন কিছু মান মেনে চলার চেষ্টা করছেন তখন এনআইইএম একটি ভাল বিকল্প তৈরি করে for


1
এখানে niệm ডকুমেন্ট যেখানে তারা গুণাবলী এবং উপাদানের জন্য নামকরণ নিয়মাবলী বর্ণনা হল: niem.gov/documentsdb/Documents/Technical/NIEM-NDR-1-3.pdf
প্রযুক্তিগত

আমি জানি এটি পুরানো, তবে উপরের লিঙ্কটি নষ্ট হয়েছে, তবে এই লিঙ্কটিতে এনআইইএম কনভেনশন সম্পর্কিত উপাদান / অ্যাট্রুবউটস সম্পর্কিত আপডেট রয়েছে বলে মনে হচ্ছে: রেফারেন্স.নিমে.
and

13

উপরের আমার মন্তব্যটি প্রসারিত করতে : হাইফেনের সাথে ছোট হাতের ব্যবহারের এক্সএসএলটিতে কিছু সমস্যা আছে। বিশেষত কোনও নোডকে বিভ্রান্ত করা সহজ, বলা যাক, 'বছর-বয়স-বছর' সূত্রের সাথে 'বছর-বয়স' (উদাহরণস্বরূপ বছর থেকে বিয়োগের বয়স)।

@ কার্লকিয়িনজার যেমন উল্লেখ করেছেন, এটি কেবলমাত্র মানব স্তরের সমস্যা, এক্সএসএলটি পার্সারের ক্ষেত্রে নয়। তবে এটি যেহেতু প্রায়শই কোনও ত্রুটি তৈরি করে না , 'হাইফেন সহ লোয়ারকেস' ব্যবহার করে স্ট্যান্ডার্ড হিসাবে সমস্যার জন্য জিজ্ঞাসা করছে, আইএমএইচও।

কিছু প্রাসঙ্গিক উদাহরণ:

<a>1</a><b>1</b>
<xsl:value-of select="a+b"/>
outputs 2, as expected

<a>1</a><b>1</b>
<xsl:value-of select="a-b"/>
DOES NOT ERROR, BUT OUTPUTS NOTHING AT ALL

উপরের কোডে আপনাকে বিয়োগকারক অপারেটরের আগে কমপক্ষে একটি স্থান রাখতে হবে, তবে অতিরিক্ত অপারেটরের জন্য এমন কোনও প্রয়োজন নেই।

<a-b>1</a-b><c>1</c>
<xsl:value-of select="a-b -c"/>
outputs 0, as expected

তবে খেয়াল করুন উপরেরটি পড়তে কত বিভ্রান্তিকর!

<a>1</a><a-b>3</a-b><b>2</b>
<xsl:value-of select="a-b"/>
outputs 3

<a>1</a><a-b>3</a-b><b>2</b>
<xsl:value-of select="a -b"/>
outputs -1

একক স্থানের উপস্থিতি উপরের আউটপুটটিকে পরিবর্তন করে তবে বৈকল্পিক কোনওটিই ত্রুটি নয়।


3
বিক্রি। অতিরিক্তভাবে এমএস। নেট কোড জেনারেশন টুল (xsd.exe) হাইফেনগুলি যখন ডিসারিয়ালাইজেশন ক্লাস তৈরি করে তখন কেবল তা ফেলে দেয়। সুতরাং পরিবর্তে যদি "আলফা-বিটা" এর মতো বৈশিষ্ট্যগুলি আপনি "বর্ণমালা" পান। সুতরাং কেবল নামগুলি হুবহু অনুবাদ করে না, সেগুলি পড়া আরও শক্ত। এবং যদি আপনার এমএস এসকিউএল হাইফেনগুলির সাথে এক্সএমএল তৈরি করতে হয় তবে সেখানেও একটি ব্যথা। এমএস নির্দিষ্ট স্টাফগুলির কোনও মান নির্ধারণ করা উচিত নয়, তবে এটি যথেষ্ট পরিমাণে ব্যবহারে যা আমি মনে করি এটি বিবেচনা হিসাবে গণনা করা যেতে পারে। এবং এটি আমাকে আন্ডারস্কোর ডিলিমিট লোয়ার-কেস বা মিক্সড কেসের দিকে চালিত করে।
কার্ল কেইঞ্জার

1
দেখে মনে হচ্ছে XSD.exe এখন বেশিরভাগ বৈশিষ্ট্যে XMLElementAttribute যুক্ত করে এবং যদি হাইফেন থাকে তবে এটি স্পষ্টভাবে এলিমেন্টনাম স্ট্রিংটিকে প্রথম প্যারামিটার হিসাবে যুক্ত করে যাতে এটি স্পষ্ট হয়। আমি যে সমস্যাটি পেয়েছি তা হ'ল আপনার .NET গ্রন্থাগারগুলির উপর নির্ভর করে এটি কোনও ব্যাপার নয় - উপাদানটি এখনও কিছু সিস্টেমে deserialize করবে না। এটি উইন 7-তে ভিএস ২০১২-এ কাজ করে তবে ২০০৮ সার্ভারে এটি এক্সের হিসাবে চলছে না।
ডেভিড স্টোরফার

13

বেশ কয়েকটি স্ট্যান্ডার্ডে ব্যবহৃত উদাহরণ উদাহরণগুলির জন্য ইউএন / সিইএফএটিএক্সএএমএল নামকরণ এবং নকশার নিয়মগুলি প্রযুক্তিগত নির্দিষ্টকরণ সংস্করণ 3.0 পৃষ্ঠা 23 দেখুন।

নির্দিষ্টকরণ (17 ডিসেম্বর 2009 তারিখে সংস্করণ 3.0 এর 23 পৃষ্ঠায়):

  • নামকরণের বৈশিষ্ট্যগুলির জন্য লোয়ারকামেলকেস (এলসিসি) আবশ্যক।
  • নামকরণকারী উপাদান এবং প্রকারের জন্য আপারকামেলকেস (ইউসিসি) আবশ্যক।
  • উপাদানটি, গুণাবলী এবং প্রকারের নামগুলি একক রূপে থাকা আবশ্যক যদি ধারণাটি নিজেই বহুবচন না হয়।

( অন্যান্য লিঙ্ক, সুইডিশ সাইট )


2
-1: আপনার লিঙ্কটি নষ্ট হয়েছে - সম্ভবত এটি কোনও অভ্যন্তরীণ URL? দয়া করে এটি ঠিক করুন, এবং আমি ডাউনভোটটি সরিয়ে দেব।
জন স্যান্ডার্স

3
যদিও অবশ্যই আকর্ষণীয়, এই নির্দিষ্ট অধ্যায় / পৃষ্ঠায় উদ্ধৃত ডকুমেন্ট XML এর জন্য নিয়ম স্থাপন স্কীমাস , না পারজার / XML দলিল যে এই স্কিমা মেনে চলে। এই দুটি ভিন্ন জিনিস।
মিঃসিসি

লোয়ারকামেলকেস এবং আপারকামেলকেসের মধ্যে পার্থক্য কী তা ভেবে কারও জন্য: মাইসেটিংনাম লোয়ারকামেলকেসের উদাহরণ (যা লোয়ারকেমেলকেসে কল করতে স্মার্ট হতে পারে), এবং মাইসেটিংনাম আপারকামেলকেসের উদাহরণ।
জিন্লি


4

এক্সএমএল কেসিংয়ের আসল অভিপ্রায়টি হাইফেনগুলির সাথে লোয়ার কেস ছিল। এটি কেস সংবেদনশীল এবং আপনার দরকার নেই যে এই সম্মেলনটি অনুসরণ করুন - যাতে আপনি যা চান তা করতে পারেন। দুঃখিত, আমার কোনও উদ্ধৃতি নেই।


1

আমি এইচটিএমএলকে "ক্যানোনালি" বড়হুল ব্যবহার করার কথা বলব না। আমি মনে করি মূলত বড় হাতের অক্ষরটি এইচটিএমএলকে আরও সহজেই সামগ্রী থেকে পৃথক করার জন্য ব্যবহৃত হয়েছিল। সিনট্যাক্স আজকাল হাইলাইট করার সাথে, এটি কেবল প্রয়োজনীয় নয়।

আমি প্রয়োজনে ড্যাশগুলি সহ ছোট হাতের দিকে ঝুঁকছি (টাইপ করার জন্য দ্রুতও)। এক্সএমএলে কেস মেশানো আমার কাছে কেবল ভুল মনে করে।


এইচটিএমএল হ'ল কেস-অজোনস্টিক। এটি একই এক্সএমএল / এক্সএইচটিএমএল নয়।

-2

উটের মামলাটি আমার ভোট পেয়েছে।

উদাহরণ হিসাবে উদ্ধৃত হিসাবে সম্ভবত এই প্রশ্ন আসতে পারে লিঙ্ক মানুষ উদ্ধৃত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.