একটি এক্সএস কী: এনসিএনমে টাইপ এবং এটি কখন ব্যবহার করা উচিত?


97

আমি আমার এক্সএমএল ফাইলগুলির মধ্যে একটি স্কিমা জেনারেটরের মাধ্যমে চালিয়েছি এবং উত্পন্ন সমস্ত কিছুই যা প্রত্যাশা করা হয়েছিল, একটি নোড ব্যতীত:

<xs:element name="office" type="xs:NCName"/>

আসলে কি xs:NCName? এবং কেন এটির পরিবর্তে কেউ এটি ব্যবহার করবে xs:string?

উত্তর:


93

এনসি নাম হ'ল অ- নাম যেমন "নাম"। কিউনামের সাথে তুলনা করুন যা যোগ্য নাম যেমন "এনএস: নাম"। যদি আপনার নামগুলি বিভিন্ন নাম-স্থান দিয়ে যোগ্য করে তোলার কথা না হয় তবে তারা হ'ল এনসি নাম।

xs: স্ট্রিং আপনার নামগুলিতে মোটেও কোনও বিধিনিষেধ রাখে না, তবে xs: NCName মূলত স্ট্রিংটিতে উপস্থিত হতে ":" বারণ করে।


4
খালি স্ট্রিং এও নিষিদ্ধ করা হয়েছেxs:NCName
ওয়েজহংটু

109

@ এস্কাইল আমাকে এই উত্তরটি লেখার জন্য ব্যবহারিকভাবে উস্কে দিয়েছে তাই অপ্রয়োজনীয়তার কথা মনে রাখবেন।

NCNameএর অর্থ "অ-nonপনিবেশিক নাম"। NCName একটি এক্সএমএল স্কিমা নিয়মিত এক্সপ্রেশন হিসাবে সংজ্ঞায়িত করা যেতে পারে[\i-[:]][\c-[:]]*

... এবং এই রেজেক্সের অর্থ কী?

\iএবং \cএক্সএমএল স্কিমা সংজ্ঞায় সংজ্ঞায়িত বহু-চরিত্রের পালকগুলি।
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i প্রারম্ভিক এক্সএমএল নাম অক্ষরের সেটের জন্য পলায়ন এবং এটি এক্সএমএল নামের অক্ষরের \cসেট। কোলন চরিত্র সমন্বিত একটি সেট ব্যতীত [\i-[:]]এমন একটি সেট যা বোঝায় । সুতরাং সরল ইংরেজিতে এর অর্থ হবে "যে কোনও প্রাথমিক চরিত্র, তবে নয় "। পুরো নিয়মিত এক্সপ্রেশনটি "একটি প্রাথমিক এক্সএমএল নামের অক্ষর হিসাবে পড়ে, কিন্তু কোলন নয়, তারপরে শূন্য বা আরও বেশি এক্সএমএল নামের অক্ষর, তবে কোলন নয়" "\i::

NCName এর ব্যবহারিক বিধিনিষেধ

NCName ব্যবহারিক সীমাবদ্ধতা এটা পছন্দ বিভিন্ন প্রতীক অক্ষর থাকতে পারে না হয় :, @, $, %, &, /, +, ,, ;, হোয়াইটস্পেস অক্ষর বা বিভিন্ন প্রথম বন্ধনী। তবুও একটি এনসিএনএম একটি নম্বর, বিন্দু বা বিয়োগ চরিত্র দিয়ে শুরু করতে পারে না যদিও তারা পরে কোনও এনসিনেমে প্রদর্শিত হতে পারে।

NCNames প্রয়োজন যেখানে

নেমস্পেস কনফরম্যান্ট এক্সএমএল ডকুমেন্টগুলিতে সমস্ত নাম অবশ্যই যোগ্য নাম বা এনসিএন নাম হতে হবে। নিম্নলিখিত মানগুলি অবশ্যই NCNames (যোগ্য নাম নয়) হওয়া উচিত:

  • নেমস্পেস উপসর্গ
  • একটি আইডি উপস্থাপন মান
  • একটি IDREF প্রতিনিধিত্ব মান
  • একটি নোটেশন প্রতিনিধিত্ব মান
  • প্রসেসিং নির্দেশের লক্ষ্যগুলি
  • সত্তার নাম

4
'তদ্ব্যতীত একটি এনসিএনএম একটি সংখ্যার সাথে শুরু করতে পারে না' এই লাইনটি আমাকে বুঝতে সাহায্য করেছিল যে সংখ্যাটি 'xs: ID' হতে পারে না
শান মারফি

আমি কীভাবে সেই ভাবটি জাভা বা জেএস-এর মতো একটি প্রোগ্রামিং ভাষায় রূপান্তর করতে পারি?
ক্যালবার্টস


আপনি অন্যটির সাথে রেগেক্সের নিয়মিত সিএননেম পরীক্ষা করতে পারেন: "[cdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ _] [\\ ডাব্লু \\। \\ - \\ d] *"। এর মানে. মানটি একটি বর্ণ বা আন্ডারস্কোর দিয়ে শুরু হওয়া উচিত এবং তারপরে শব্দ, বিন্দু, ড্যাশ, আন্ডারস্কোর, অঙ্কগুলি থাকে। আপনি এটি এখানে চেষ্টা করতে পারেন: regexr.com
Naxos84

উপরে দেওয়া আমার রেজেক্স কেবল লাতিন অক্ষর পরিচালনা করে। আপনি স্পেসিফিকেশন অনুযায়ী NCNames পূর্ণ চেক চান w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName আপনি এই শ্রেণীর ব্যবহার করা উচিত: java2s.com/Code/Java/XML/...
Naxos84

29

ব্যবহারিকভাবে বলতে ...

মঞ্জুরিপ্রাপ্ত অক্ষর: - , ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, _, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p,q, r, s, t, u, v, w, x, y,z

এছাড়াও, -এবং .মানটির প্রথম অক্ষর হিসাবে ব্যবহার করা যায় না।

অননুমোদিত অক্ষর: , !, ", #, $, %, &, ', (, ), *, +, ,, /, :, ;, <, =, >, ?, @, [, \, ], ^, `, {, |, },~


4
আমি মনে করি এটিতে প্রচুর অনুমোদিত অক্ষর নেই, উদাহরণস্বরূপ, é বা ø ø
এরিক ব্লচ

এই অ-অস্যাসি মামলাগুলি কভার করার জন্য, এটির চরিত্রের সেট হিসাবে part p {L} + অন্তর্ভুক্ত করা উচিত
কেনস্টন চোই

11
অঙ্কগুলি প্রথম অক্ষর হিসাবে ব্যবহৃত হয় না।
থিলো

5

http://books.xmlschemata.org/relaxng/ch19-77215.html

কোনও স্পেস বা কলোন নেই। "_" এবং "-" অনুমতি দেয়।

আপনি স্ট্রিংয়ের পরিবর্তে এটি ব্যবহার করবেন যাতে আপনি যাচাই করতে পারেন যে মানটি যা অনুমোদিত তা সীমাবদ্ধ। উদাহরণস্বরূপ এটি জঞ্জোর "স্লাগ" ধারণার মতো নাম / সনাক্তকারী হিসাবে নির্দিষ্ট কনভেনশনগুলিকে ভাল মানচিত্র করে।

যিনি [\i-[:]][\c-[:]]*আমাদের জন্য ইংরেজী অনুবাদ করেন আমি তাকে উত্সাহিত করি ।


11
আমি একটি উত্তর যুক্ত করেছি যা [\i-[:]][\c-[:]]*ইংরেজী অনুবাদ করে। আপনি যেমন প্রতিশ্রুতি দিয়েছেন তেমন এগিয়ে যান এবং উত্সাহিত হন;)
উত্সাহিত হন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.