ভিজ্যুয়াল স্টুডিও আইডিইতে এক্সএসডি সহ এক্সএমএল বৈধকরণ


98

আমি জানি আমি এটি আগেও করেছি, তবে এটি আজ কাজ করছে না, বা আমি এটি কোথাও খুঁজে পাচ্ছি না যাতে এটি কীভাবে করা যায় explains এটি আমার ঘুমের অভাব হতে পারে তবে আমি গ্রিমিলিন সন্দেহ করি।

আমার কাছে এক্সএমএল ডকুমেন্ট এবং এক্সএসডি এর পূর্ণ একটি ডিরেক্টরি রয়েছে যা এটি সংজ্ঞায়িত করে। বৈধতা ব্যর্থতার বিষয়ে আমাকে অবহিত করার জন্য আমি কীভাবে ভিজ্যুয়াল আইডিই সেট আপ করব এবং তারপরে কোনও প্রদত্ত প্রসঙ্গে বৈধ ট্যাগ এবং বৈশিষ্ট্যের একটি ইন্টেলিজেন্স তালিকা সরবরাহ করব?

আমি যা চেষ্টা করেছি:

  • আমি এক্সএমডি ডকুমেন্ট দিয়ে প্রজেক্টে এক্সএসডি যুক্ত করেছি।
  • আমি এক্সএসডিগুলি এক্সএমএল স্কিমা তালিকায় যুক্ত করেছি (এক্সএমএল / স্কিমাসের অধীনে ... মেনু আইটেম)
  • এমনকি আমি এক্সএমএল ডকুমেন্টের জন্য স্কিমা অবস্থান এবং NoNamespaceSchemaLocation গুণাবলী অন্তর্ভুক্ত করেছি।

ভিজ্যুয়াল স্টুডিও এখনও কোনও দরকারী ডিবাগিং বা সম্পাদনা সম্পর্কিত তথ্য দেয় না। আমি 2010 এবং 2008 উভয়ই চেষ্টা করেছিলাম (২০০৮ এর আগে আমি এটি করেছিলাম ভেবেছিলাম)

আপডেট: আমার আরেকটি বিকাশকারী এটি চেষ্টা করেছিল এবং এটি তার জন্যও ব্যর্থ হয়েছিল। তিনি জানেন যে তিনি এটি অন্যান্য এক্সএমএল নথি দিয়ে করেছেন এবং এটি কাজ করেছেন। এরপরে আমি অক্সিজেন এক্সএমএল সম্পাদক ডাউনলোড করেছি এবং এটি একই এক্সএমএল এবং এক্সএসডি ফাইলগুলিতে দুর্দান্ত কাজ করেছে, সুতরাং ফাইলগুলি ঠিক আছে বলে মনে হয় (বা অক্সিজেন আরও ক্ষমাশীল / নমনীয়। ...)

উত্তর:


139

আপনাকে ভিজুয়াল স্টুডিওতে থাকা এক্সএমএল ডকুমেন্টটি আপনার থাকা এক্সএসডি ফাইলের সাথে সংযুক্ত করতে হবে।

  1. এক্সএমএল ডকুমেন্টের আপনার প্রোপার্টি উইন্ডোতে আপনাকে এরকম কিছু দেখতে পাওয়া উচিত:

    এক্সএমএল সম্পত্তি> স্কিমা

  2. এক্সএমএল স্কিমা সেট সম্পাদকটিতে (যখন আপনি আপনার সম্পত্তিগুলির উইন্ডোতে "স্কিমাস" টেক্সটবক্সে (...) উপবৃত্তের উপর ক্লিক করেন তখন আপনাকে নিজের স্কিমা উপস্থিত রয়েছে তা নিশ্চিত করতে হবে। এছাড়াও, নিশ্চিত হয়ে Useনিন যে সেই স্কিমার জন্য কলামটি সক্ষম হয়েছে - যদি তা না হয় তবে এটিতে ক্লিক করুন - আপনি বিকল্পগুলির একটি ড্রপ-ডাউন তালিকা পাবেন, Useসবুজ চেকমার্ক সহ একটি বেছে নিন :

    এক্সএমএল স্কিমা নির্বাচনকারী

  3. ভিজ্যুয়াল স্টুডিওর ত্রুটি তালিকার উইন্ডো দৃশ্যমান তা নিশ্চিত করুন (মেনু দেখুন> ত্রুটি তালিকা)। এটি এক্সএমএল এবং এক্সএসডি স্কিমা সংজ্ঞাগুলির মধ্যে সমস্ত অসঙ্গতি দেখায়।

  4. একবারে এটি সব ঠিক হয়ে গেলে, ভিজ্যুয়াল স্টুডিও এক্সএমএল সম্পাদককে আপনার এক্সএমএল এর সাথে নীল স্কুইগলিজ ব্যবহার করে সমস্যাগুলি হাইলাইট করা উচিত:

    ত্রুটির উদাহরণ


ধন্যবাদ, এটি একটি দুর্দান্ত বিস্তারিত ব্যাখ্যা, কিন্তু আমার এখনও কাজ করছে না। আমি জানতাম না যে আপনি এর মতো বৈশিষ্ট্য থেকে স্কিমা তালিকায় যেতে পারেন।
জিম ম্যাককিথ

@ জিম ম্যাককিথ: আপনি যদি আপনার এক্সএমএল সংশোধন করে আবার সংরক্ষণ করেন তবে? কখনও কখনও এক্সএমএল বৈধতার জন্য লাথি
মারার

আপনার উত্তরটি আমার পক্ষে কার্যকর না হলেও আমি তা গ্রহণ করেছি। আমি অনুমান করছি যে আমার সিস্টেমে সবেমাত্র হোস্ট করা হয়েছিল তবে আমি একটি নতুন কম্পিউটারে চলে এসেছি এবং সবকিছু এখন ঠিকঠাক কাজ করে।
জিম ম্যাককিথ

38
@ জিম আপনার ঠিক একই সমস্যা আছে কিনা তা নিশ্চিত নন, তবে এক্সটিএমএল ফাইলটি সম্পাদকে অবশ্যই খোলা থাকতে হবে এবং প্রপার্টি উইন্ডোটি কল করার সময় অবশ্যই সম্পাদককে ফোকাস করতে হবে । তারপরেই আপনি "এক্সএমএল ডকুমেন্ট" বৈশিষ্ট্য পাবেন যেখানে আপনি স্কিমা নির্ধারণ করতে পারবেন। সমাধানটি যদি এক্সপ্লোরার এক্সপ্লোরারে থাকে তবে প্রোপার্টি উইন্ডোটি কেবল ফাইলের বৈশিষ্ট্য প্রদর্শন করে, অর্থাত্ সেখানে কোনও স্কিমা অ্যাসাইনমেন্ট সম্ভব নয়।
হার্জবিউব

4
আমি মনে করি আপনার উত্তরে @ হার্জব्यूबের অনুসন্ধানগুলি যুক্ত করা উচিত।
আশীষ

35

আপনাকে ভিজ্যুয়াল স্টুডিওতে ফাইলগুলি ম্যানুয়ালি সংযুক্ত করার দরকার নেই - এটি যদি আপনার উভয়টি খোলা থাকে এবং আপনি নিজের নামের স্থানটি সঠিকভাবে সংজ্ঞায়িত করেন তবে এটি কোনও এক্সএসডি ফাইলের সাথে স্বয়ংক্রিয়ভাবে কোনও এক্সএমএল ফাইলের সাথে মেলে।

নাম স্থানটি সংজ্ঞায়িত করতে:

এক্সএমএল ফাইলের মূল উপাদানটিতে:

<Data xmlns='http://yourdomain.com/yourschema.xsd'>
    ...
</Data>

এক্সএসডি ফাইলের স্কিমা উপাদানটিতে:

<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://yourdomain.com/yourschema.xsd"
    xmlns:this="http://yourdomain.com/yourschema.xsd"
    elementFormDefault="qualified">
    ...
</xs:schema>

যখন আপনার টার্গেটনামস্পেস থাকে তখন আপনার স্কিমাতে প্রকারগুলি ব্যবহার করার বিষয়ে একটি নোট

যেহেতু আপনি targetNamespaceআপনার স্কিমাতে একটি নির্দিষ্ট করে দিচ্ছেন , স্কিমাতে সংজ্ঞায়িত প্রকারের জন্য কোনও উল্লেখকে একটি নেমস্পেসের সাথে উপরিবর্তিত করতে হবে (এজন্য আমরা xmlns:thisউপরের <xs:schema />উপাদানটিতে বৈশিষ্ট্যটি যুক্ত করেছি )।

<!-- Define the type as normal -->
<xs:complexType name="Row">
    <xs:sequence>
        <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
        <xs:element name="Value" type="xs:float" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
</xs:complexType>
<!-- Use the type (note the "this:" prefix) -->
<xs:element name="Row" type="this:Row" minOccurs="0" maxOccurs="unbounded" />

3

এখানে ব্যর্থতার আরেকটি বিষয় হ'ল উইন্ডোজ 7 "ব্লকিং" স্কিমা ফাইলগুলি ... ডিস্কের এক্সএসডি ফাইলটিতে ডান ক্লিক করুন, সম্পত্তি> সাধারণ এবং যদি এটি অবরুদ্ধ করা হয় তবে আপনার একটি "অবরোধ মুক্ত" বোতাম থাকবে। এটি আমার এক্সএমএল বৈধতাটিকে ভিএস ২০১২ এ ব্যর্থ করে তুলছে।


1

আপনার xsd- তে এমন কোনও বৈশিষ্ট্য রয়েছে "targetNamespace" /schema/@targetNamespaceযা আপনি xML এ উল্লেখ করছেন এমন জায়গার অনুরূপ?

উদাহরণ:

এক্সএসডি :

<xs:schema .... targetNamespace="Datafile.xsd" ... >

এক্সএমএল :

<data xmlns="Datafile.xsd" >...</data>

আরও দেখুন: এক্সএমএল / এক্সএসডি ইন্টিলিসেন্স ভিজ্যুয়াল স্টুডিও 2010 তে কাজ করছে না


0

আমার একই সমস্যা ছিল, তবে ভিএস ইতিমধ্যে আমার স্কিমাটি সঠিকভাবে উল্লেখ করছে। যা ফাইলটি যাচাই করার চেষ্টা করছিলাম তার সন্ধান করে একটি 'এক্সএমএল' ফাইল এক্সটেনশন নেই। আমার ফাইলের নামের শেষে .xML যুক্ত হয়েছে এবং বৈধতা কাজ শুরু করে।

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