এক্সএসডি: xs: পূর্ণসংখ্যা এবং xs: int এর মধ্যে পার্থক্য কী?


111

আমি এক্সএসডি তৈরি করা শুরু করেছি এবং এর কয়েকটি উদাহরণ পেয়েছি xs:integer এবং xs:int

মধ্যে পার্থক্য কি xs:integerএবং xs:int? আমার কখন ব্যবহার করা উচিত xs:integer? আমার কখন ব্যবহার করা উচিত xs:int?

উত্তর:


110

পার্থক্যটি নিম্নলিখিত: xs:intএকটি স্বাক্ষরিত 32-বিট পূর্ণসংখ্যা। xs:integerএকটি পূর্ণসংখ্যা সীমাহীন মান। বিশদ জানতে https://web.archive.org/web/20151117073716/http://www.w3schools.com/schema/schema_dtyype_numeric.asp উদাহরণস্বরূপ, এক্সজেসি (জাভা) এর Integerজন্য xs:intএবং এর BigIntegerজন্য উত্পন্ন করেxs:integer

নীচের লাইন: xs:intআপনি ক্রস প্ল্যাটফর্মের কাজ করতে চাইলে ব্যবহার করুন এবং নিশ্চিত হন যে আপনার সংখ্যাগুলি কোনও সমস্যা ছাড়াই পাস করবে। আপনি যদি বড় সংখ্যা চান - এর xs:longপরিবর্তে ব্যবহার করুন xs:integer(এটি এতে উত্পন্ন হবে Long)।


2
স্যাক্সন 9 তিনি (হোম সংস্করণ) সমর্থন কেবল 'XS: পূর্ণসংখ্যা , but not XS: int` বা xs:long
নিশি

13
w3cshools অনুমোদনযোগ্য নয়। যথাযথ সংজ্ঞাগুলি কেন উল্লেখ করা যায় না? w3.org/2001/XMLSchema.xsd বলেছে যে উদাহরণটি উদাহরণস্বরূপ, +/- 9223372036854775808 এর সাথে আবদ্ধ। এছাড়াও, ক্রস প্ল্যাটফর্মটি (কমপ্লায়েন্ট) এক্সএমএল এর সাথে কিছুই করার নয়।
পল হারগ্রিভস 21

@ নিশি, স্যাক্সন 9 এর মত শোনাচ্ছেন তিনি উপযুক্ত নন। পড়া saxon.sourceforge.net পৃষ্ঠা মনে হয় শুধুমাত্র ই ই সংস্করণ conformant হয়।
পল হারগ্রিভস 21

2
@ পলহারগ্রেইভস, স্যাক্সন 9 এইচটি (যতদূর আমি জানি) সম্পূর্ণরূপে কনফরম্যান্ট এক্সএসএলটি প্রসেসর: এক্সএস: ইনট টাইপের সংস্থায় নেই একটি বেসিক এক্সএসএলটি প্রসেসরের সমর্থন প্রয়োজন । যদি আপনি বোঝাতে চান যে এটি কনফার্মিং এক্সএসডি প্রসেসর নয় তবে এটি সত্য তবে বিভ্রান্তিকর: এটি মোটেই এক্সএসডি প্রসেসর নয়।
সিএম স্পারবার্গ-ম্যাককুইন

8
@ পলহারগ্রেইভস, +/- 9223372036854775808 সম্পর্কে "xs: পূর্ণসংখ্যা" সর্বাধিক হওয়া সম্পর্কে আপনার মন্তব্যটি ভুল: এক্সএমএলশেমি.এক্সএসডি সংজ্ঞায়িত করেছে যে একটি "xs: দীর্ঘ" "xs: পূর্ণসংখ্যার" থেকে +/- 9223372036854775808
মেটেটেকবে

30

XS: পূর্ণসংখ্যা সঙ্গে fractionDigits শুন্যতে এবং আভিধানিক স্থান যা দশমিক বিন্দু এবং পিছনের শূণ্যসমূহ যা অন্যথায় আইনগত হবে বারণ সাথে সেট পল, দশমিক: টাইপ XS একটি সীমাবদ্ধতা আছে। এর কোনও ন্যূনতম বা সর্বাধিক মান নেই যদিও সীমাবদ্ধ আকারের মেশিনগুলিতে চলছে বাস্তবায়নগুলি নির্বিচারে বড় বা ছোট মানগুলি গ্রহণ করতে সক্ষম হওয়ার প্রয়োজন হয় না। (তাদের 16 দশমিক সংখ্যা সহ মানগুলি সমর্থন করা প্রয়োজন))

XS: int- এ 2147483647 করার maxInclusive পল সেট এবং -2147483648 থেকে minInclusive পল সঙ্গে দীর্ঘ: টাইপ XS একটি সীমাবদ্ধতা আছে। (যেমন আপনি দেখতে পাচ্ছেন, এটি দুটি-পরিপূরক 32-বিট স্বাক্ষরিত-পূর্ণসংখ্যার ক্ষেত্রটি সহজেই ফিট করবে; xs: -৪-বিট স্বাক্ষরিত-পূর্ণসংখ্যার ক্ষেত্রে দীর্ঘ ফিট করে fits)

সাধারণ নিয়মটি হল: আপনি যা বলতে চান তার সাথে মেলে এমনটি ব্যবহার করুন। যদি কোনও উপাদান বা বৈশিষ্ট্যের ক্ষেত্রে সীমাবদ্ধতা হয় তবে এর মানটি অবশ্যই পূর্ণসংখ্যা হয়, xs: পূর্ণসংখ্যা সংক্ষেপে এটি বলে says যদি সীমাবদ্ধতাটি হয় যে মানটি অবশ্যই একটি পূর্ণসংখ্যা হতে পারে যা দ্বিগুণ পরিপূরক উপস্থাপনায় সর্বাধিক 32 বিট দিয়ে প্রকাশ করা যেতে পারে, xs: int ব্যবহার করুন। (একটি গৌণ তবে মাঝে মাঝে গুরুত্বপূর্ণ উদ্বেগ হ'ল আপনার সরঞ্জাম চেইন অন্যটির সাথে একের সাথে আরও ভাল কাজ করে কিনা your আপনার সরঞ্জাম চেইনের চেয়ে দীর্ঘকাল বেঁচে থাকা ডেটাগুলির জন্য, প্রথমে ডেটা শোনানো বুদ্ধিমানের; কেবলমাত্র সরঞ্জামটি খাওয়ানোর জন্য যে ডেটা রয়েছে চেইন, এবং যা আপনার সরঞ্জাম চেইনটি পরিবর্তন করলে কোনও আগ্রহ হবে না, সরঞ্জাম চেইনটি না শোনার কোনও কারণ নেই))


আপনি: সসীম আকারের মেশিনে চলছে বাস্তবায়নগুলি [...] স্ট্যান্ডার্ডের কি এমন কোনও প্রয়োজনীয়তা রয়েছে যা অসীম মেশিনে চলমান বাস্তবায়নগুলি (টুরিং মেশিন এবং স্টাফের মতো) সম্পূর্ণ পরিসীমা গ্রহণ ও সঠিকভাবে উপস্থাপন করা উচিত? :-) এটি দুর্দান্ত হবে কারণ মহাবিশ্ব, পদার্থবিজ্ঞানের বিধিবিধান সহ তারা বর্তমানে পরিচিত, এই জাতীয় মেশিনগুলিকে স্বীকার করে না।
জেপ্পে স্টিগ নীলসেন

না, স্পেসিফিকেশনটির অসীম মেশিনে চলমান বাস্তবায়নগুলির জন্য বিশেষ বিধি নেই; সমস্ত বাস্তবায়ন অসীম ডেটাটাইপগুলির আংশিক বাস্তবায়ন পরিচালনা করে এমন নিয়মগুলি থেকে উপকার পাওয়ার অনুমতিপ্রাপ্ত।
সিএম স্পারবার্গ-ম্যাককুইন

6

আমি কেবলমাত্র পেডেন্ট্রির একটি নোট যুক্ত করব যা কিছু লোকের কাছে গুরুত্বপূর্ণ হতে পারে: xs: int "একটি স্বাক্ষরিত 32-বিট পূর্ণসংখ্যা বলা ঠিক হবে না। শব্দের এই ফর্মটি বাইনারি ডিজিটাল কম্পিউটারের মধ্যে মেমরির (বা রেজিস্টারগুলি ইত্যাদির) প্রয়োগকে বোঝায়। এক্সএমএল চরিত্রভিত্তিক এবং সর্বাধিক 32-বিট স্বাক্ষরিত মানটিকে "2147483647" হিসাবে অবশ্যই প্রয়োগ করবে (অবশ্যই আমার উদ্ধৃতি, অবশ্যই), যা 32 বিটের চেয়ে অনেক বেশি! সত্যটি হল xs: int (পরোক্ষভাবে) xs এর একটি সীমাবদ্ধতা: পূর্ণসংখ্যা যা সর্বাধিক এবং ন্যূনতম অনুমোদিত মানগুলি সাইন বিট সহ 32-বিট পূর্ণসংখ্যার সাথে সম্পর্কিত বাস্তবায়ন-আরোপিত সীমা হিসাবে একই হিসাবে সেট করে।


XSD- র সাথে বৈধতাযুক্ত উত্সটি অক্ষরের অনুক্রমের আকারে উপস্থিত হওয়ার কোনও গ্যারান্টি নেই; যদি স্কিমাটি এক্সএসএলটি বা এক্সকুয়েরির মাধ্যমে নির্মিত কোনও দস্তাবেজকে বৈধতা দেওয়ার জন্য ব্যবহার করা হয়, তবে 32-বিট পূর্ণসংখ্যার জন্য প্রচলিত উপস্থাপনা ব্যবহার করে মেমরিতে একটি xs: int মান উপস্থাপন করতে পারে এমন সম্ভাবনা রয়েছে।
সিএম স্পারবার্গ-ম্যাককুইন

@ সিএমএসপারবার্গ-ম্যাককুইন, আমি নিশ্চিত নই যে আমি আপনার বক্তব্যটি বুঝতে পেরেছি। xs: int একটি পরিসীমা সহ একটি প্রকার, এটি কীভাবে সংরক্ষণ করা হয় তা XSD এর সাথে অপ্রাসঙ্গিক এবং মেমরিতে 32 বিট স্বাক্ষরিত পূর্ণসংখ্যার হিসাবে হার্ড কোডগুলি "INT" সমস্যাগুলির জন্য জিজ্ঞাসা করে যদি উদাহরণস্বরূপ, কোনও আলাদা এক্সএসডি চয়ন করা হয় যা বলে ডাব্লু 3 সি এক্সএসডি-তে সংজ্ঞায়িত হিসাবে কোনও ইন্টের একটি পরিসীমা আলাদা হয়।
পল হারগ্রিভ 21

1
@ পলহর্গগ্রাভ এটি একটি সামান্য পেডেন্টিক পয়েন্ট (উত্তরের অনুপ্রেরণায়)। উত্তরটি সঠিক যে xs: এগুলি স্পষ্টভাবে বলা সঠিক নয়: int হ'ল 32-বিট দ্বিগুণ-পরিপূরক পূর্ণসংখ্যা। তবে উত্তরটি আরও বলেছে যে এক্সএমএল চরিত্রভিত্তিক, তাই xs এর সর্বাধিক মান: int হ'ল অক্ষরের স্ট্রিং "2147483647"; যে শেষ বিট অগত্যা তাই না। এক্সএসডি প্রকারগুলি প্রচুর সিস্টেমের সাহায্যে ব্যবহৃত হয়, যেমন এক্সকুয়েরি ডাটাবেসগুলি, যেখানে একটি এক্সস: ইনট মান ইউনিকোড অক্ষরের স্ট্রিংয়ের চেয়ে 32-বিট দ্বিগুণ-পরিপূরক ক্ষেত্রে প্রতিনিধিত্ব করার সম্ভাবনা বেশি।
সিএম স্পারবার্গ-ম্যাককুইন

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