এক্সসি এর ব্যবহার কী: স্কিমা লোকেশন?


131

আমি দেখতে পাচ্ছি যে বসন্তের মতো আমাদের এই বৈশিষ্ট্যের মান হিসাবে একাধিক url রয়েছে:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

এটি কেন প্রয়োজন এবং এটি কীসের জন্য ব্যবহৃত হয়? স্প্রিং কি ইউআরএল যায় এবং বৈধতা দেয়? এক্সএমএনএস এবং এক্সএসআই: স্কিমা লোকেশন এর মধ্যে পার্থক্য কী?

উত্তর:


87

জাভা এক্সএমএল পার্সার যা বসন্ত ব্যবহার করে তা schemaLocationএক্সএমএল ফাইলটি যাচাই করার জন্য মানগুলি পড়বে এবং সেগুলি ইন্টারনেট থেকে লোড করার চেষ্টা করবে । স্প্রিং, ঘুরে, সেই লোড অনুরোধগুলিকে বাধা দেয় এবং তার নিজের জেআর ফাইলগুলির মধ্যে থেকে সংস্করণগুলি সরবরাহ করে।

যদি আপনি এটি বাদ দেন schemaLocation, তবে এক্সএমএল পার্সার কনফিগারটিকে বৈধতা দেওয়ার জন্য স্কিমাটি কোথায় পাবেন তা জানতে পারবেন না।


এক্সএমএল পার্সার ক্লাসের পথটি অনুসন্ধান করবে না?
এইচডিভে

1
@ স্কাফম্যান, এর অর্থ কি এই যে আমি যখন বসন্ত-ভিত্তিক প্রজেক্টের মাওন-বিল্ডটি -o (অফলাইন) পতাকার সাথে চালনা করি তখন আমার স্থানীয় ভাণ্ডারগুলিতে সমস্ত নির্ভরতা উপলব্ধ থাকা সত্ত্বেও বিল্ডটি ব্যর্থ হয়ে যায়?
এভিড

@ এইচডি ডেভ তবে এক্সএমএল পার্সার কী খুঁজছেন, স্কিমাটির কোনও নাম থাকতে পারে
ক্রিজিসটফ ক্রসোয়

প্রযুক্তিগতভাবে, এক্সএমএল পার্সার প্রথমে ইন্টারনেট থেকে স্কিমাটি লোড করার চেষ্টা করবে, যদি না পাওয়া যায় বা ইন্টারনেট অ্যাক্সেস না পাওয়া যায় তবে এটি স্থানীয়ভাবে শ্রেণীর পথ থেকে .xsd ফাইল অনুসন্ধান করবে, যদি এখনও খুঁজে না পাওয়া যায় তবে এটি বাদ দেওয়া হবে।
ফ্রাঙ্ক জাং

বসন্ত পথিমধ্যে স্তরে আরো তথ্যের জন্য, দেখুন stackoverflow.com/a/10768972/32453
rogerdpack

68

xmlnsডকুমেন্টের মধ্যে একটি হ'ল একটি অনন্য শনাক্তকারী - এটি স্কিমার জন্য ইউআরআই হতে হবে না:

এক্সএমএল নেমস্পেসগুলি ইউআরআই রেফারেন্স দ্বারা চিহ্নিত নামের জায়গাগুলির সাথে যুক্ত করে এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ ডকুমেন্টগুলিতে ব্যবহৃত উপাদান এবং বৈশিষ্ট্যর নামগুলির জন্য যোগ্যতার জন্য একটি সহজ পদ্ধতি সরবরাহ করে।

xsi:schemaLocation আসল স্কিমা অবস্থান সম্পর্কে একটি ইঙ্গিত দেওয়ার কথা:

স্কিমা নথিগুলির যাচাইয়ের জন্য ব্যবহার করা যেতে পারে তার শারীরিক অবস্থান সম্পর্কে ইঙ্গিত সরবরাহ করতে কোনও দস্তাবেজে ব্যবহার করা যেতে পারে।


22

মতে স্কীমাস লোকেটিং জন্য বৈশিষ্ট

নেমস্পেস নামের মাধ্যমে একটি স্কিমা পুনরুদ্ধারযোগ্য বা নাও থাকতে পারে ... ব্যবহারকারীর সম্প্রদায় এবং / অথবা গ্রাহক / সরবরাহকারী চুক্তিগুলি এমন পরিস্থিতিতে প্রতিষ্ঠা করতে পারে যেখানে [নামস্পেস ইউআরএল থেকে একটি এক্সএসডি পুনরুদ্ধারের চেষ্টা করা] একটি বুদ্ধিমান ডিফল্ট কৌশল

(দ্ব্যর্থহীন, অনুমানের জন্য ধন্যবাদ!)

এবং

যদি কোনও ডকুমেন্ট লেখক (মানব বা না) একটি নির্দিষ্ট স্কিমাকে সামনে রেখে দস্তাবেজ তৈরি করেছেন এবং কিছু বা সমস্ত নথি সেই স্কিমায় মেনে চলেছে, স্কিমা লোকেশন এবং NoNamespaceSchemaLocation [বৈশিষ্ট্য] সরবরাহ করা হয়েছে তার ওয়্যারেন্ট দেয়।

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

এখানে আরেকটি কুঁচকে সাধারণত: জাভা লাইব্রেরিতে এক্সএসডি বৈধতা সহ [উদাহরণস্বরূপ: স্প্রিং কনফিগারেশন এক্সএমএল ফাইলগুলি], যদি আপনার এক্সএমএল ফাইলগুলি schemaLocationকোনও এক্সএমএল ফাইলের মধ্যে একটি নির্দিষ্ট এক্সএসডি ইউআরএল নির্দিষ্ট করে , যেমন xsi:schemaLocation="http://somewhere http://somewhere/something.xsd"সাধারণত আপনার নির্ভরতা জারের একটির মধ্যে এটির একটি অনুলিপি থাকে সেই এক্সএসডি ফাইলটি এর সংস্থান বিভাগে এবং বসন্তের একটি "ম্যাপিং" সক্ষমতা রয়েছে যা বলেছিল যে এক্সএসডি ফাইলটিকে ইউআরএল হিসাবে মানচিত্র করে http://somewhere/something.xsd(তাই আপনি কখনই ওয়েবে গিয়ে ফাইলটি ডাউনলোড করবেন না, এটি স্থানীয়ভাবে বিদ্যমান)। আরও কিছু তথ্যের জন্য https://stackoverflow.com/a/41225329/32453 দেখুন ।


0

আপনি যদি সেই যেকোন অবস্থানের মধ্যে যান তবে আপনি সেই স্কিমায় যা সংজ্ঞায়িত হয়েছে তা পাবেন। উদাহরণস্বরূপ, এটি আপনাকে ইনআই-পদ্ধতি কী শব্দের মানটির ডেটা ধরণ বলে।

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