এক্সএমএল থেকে সি # শ্রেণি তৈরি করুন


উত্তর:


338

হ্যাঁ, xsd.exe ব্যবহার করে

D:\temp>xsd test.xml
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\temp\test.xsd'.

D:\temp>xsd test.xsd /classes
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\temp\test.cs'.

মন্তব্য

বিকাশকারী কমান্ড প্রম্পটে ডিরেক্টরি কীভাবে পরিবর্তন করবেন উত্তর দিন : \ টেম্প কার্যকর হতে পারে।

আপনি যদি বহু-মাত্রিক অ্যারের জন্য ক্লাস তৈরি করেন তবে এক্সএসডি.এক্সই জেনারেটরে একটি বাগ রয়েছে, তবে কার্যকারণ রয়েছে


18
আপনার সরঞ্জাম মেনুতে VS2013 এর জন্য বিকাশকারী কমান্ড প্রম্পটxsd চালান ব্যবহার করতে ।
জেস

13
xsd.exeএর অধীনে পাওয়া যাবে:C:\Program Files (x86)\Microsoft SDKs\Windows
জুলিয়ান

7
সতর্কতা অবলম্বন করুন যদি আপনার কাছে একটি বৃহত জটিল এক্সএমএল ফাইল থাকে তবে উত্পন্ন শ্রেণিটি এতই কুৎসিত হবে যে এটি প্রায় অকেজো হয়ে যাবে;)
ম্যাথু লক

3
আমার xsd.exeজন্য পাওয়া গেছে: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
user1991179

413

আপনি যদি ভিএস ২০১২ (বা আরও নতুন) এর নেট নেট 4.5 প্রকল্পে কাজ করছেন তবে আপনি ক্লাস হিসাবে আপনার এক্সএমএল ফাইলটি বিশেষভাবে আটকে দিতে পারেন ।

  1. আপনার এক্সএমএল ফাইলের সামগ্রীটি ক্লিপবোর্ডে অনুলিপি করুন
  2. সম্পাদক হিসাবে, আপনি যেখানে আপনার ক্লাসগুলি আটকানো চান তা নির্বাচন করুন
  3. মেনু থেকে, নির্বাচন করুন EDIT > Paste Special > Paste XML As Classes

22
আমি কেবল এই উত্পন্ন স্বয়ংক্রিয় প্রয়োগকৃত বৈশিষ্ট্যগুলির শুভেচ্ছাকে চাই, যেমন এটি "ক্লাস হিসাবে জেএসএনটি আটকান" এর জন্য করে। বর্তমানে এর অর্থ একটি 6 টি ভাঁজ কোডের ফলাফল, যা পড়া খুব শক্ত। দুর্ভাগ্যক্রমে, এটিই আমাকে অন্য সরঞ্জামের সন্ধান করতে বাধ্য করে।
নিকোলাস পিটারসেন

1
এটি কি ভিএস 2013 এর বাইরে রেখে গেছে?
রজার

3
@ রোজার আমি ভিএস 2013 ব্যবহার করি নি, তবে আমি মনে করি যে এই বৈশিষ্ট্যটি থাকা উচিত, নিশ্চিত করুন যে আপনার প্রকল্পটি লক্ষ্য করছে। নেট 4.5 ফ্রেমওয়ার্ক
মিসকজু

2
এটি এর চেয়ে অনেক দ্রুত xsd, তবে আউটপুট প্রায় একই।
জেস

4
আপনার যদি পুনরায় ভাগ না করা থাকে তবে public (\w+) (\w+)\r\n +\{\r\n +get\r\n +\{\r\n +return this.*;\r\n +\}\r\n +set\r\n +\{\r\n +this.*;\r\n +\}\r\n +\}\r\n=> public $1 $2 { get; set; }এবং `প্রাইভেট \ ডাব্লু + \
ডাব্লু

44

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

তবে এখন আমি http://xmltocsharp.azurewebsites.net/ ব্যবহার করি এবং এখন আমি আগের মতোই তরুণ।

এটি কী উত্পন্ন করেছে তার একটি বিভাগ এখানে রয়েছে:

namespace Xml2CSharp
{
    [XmlRoot(ElementName="entry")]
    public class Entry {
        [XmlElement(ElementName="hybrisEntryID")]
        public string HybrisEntryID { get; set; }
        [XmlElement(ElementName="mapicsLineSequenceNumber")]
        public string MapicsLineSequenceNumber { get; set; }

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

2
আমার একটি এক্সএমএল ফাইল ছিল যার কিছু পুনরাবৃত্ত সম্পর্ক রয়েছে (সম্ভবত এটি বিজ্ঞপ্তিযুক্ত সম্পর্ক বলে, আমি নিশ্চিত নই।) অন্যরা ব্যর্থ হয়েছিল তবে xmltocsharp.azurewebsites.net সেই এক্সএমএলে খুব সফল ছিল।
কোরে

4
@ ডি.কর্মট ওয়েবসাইট লিঙ্কটির জন্য ধন্যবাদ, আমি এটির তাত্ক্ষণিকভাবে নজর রেখেছি এবং দেখে মনে হচ্ছে এটি পেস্ট বিশেষের চেয়ে অনেক ভাল কাজ করে, কোডটি আরও পরিষ্কার দেখায়, যদিও আমার পরীক্ষার এক্সএমএল আরও ক্লাস তৈরি করেছে, এটি অনেক বেশি ছিল ব্যবহার করতে ভাল।
হারাগ

করুণা মনে হচ্ছে শ্রেণীর ক্রমটি উল্টে গেছে (শেষের তালিকার বাইরে থাকা উপাদানগুলি)
সেভেজ

22

আমি বুঝতে পারি যে এটি একটি পুরানো পোস্ট এবং আপনি সম্ভবত এগিয়ে চলেছেন।

তবে আপনার মতো আমারও একই সমস্যা ছিল তাই আমি নিজের প্রোগ্রামটি লেখার সিদ্ধান্ত নিয়েছিলাম।

আমার জন্য "xML -> xsd -> শ্রেণী" রুটের সমস্যাটি হ'ল এটি কেবলমাত্র একগুচ্ছ কোড তৈরি করেছে যা সম্পূর্ণ অনিবার্য ছিল এবং আমি এটি টার্ফিংয়ে শেষ করেছি।

এটি কোনওভাবে মার্জিত নয় তবে এটি আমার পক্ষে কাজটি করেছে।

আপনি এটি এখানে পেতে পারেন: আপনি যদি এটি পছন্দ করেন দয়া করে পরামর্শ দিন।

SimpleXmlToCode


1
ভুল কোড উত্পাদন করে: // এলিমেন্টস [এক্সএমএল উপেক্ষা করুন] সার্বজনীন তারিখের মান {পান; সেট; } [XMLText] পাবলিক স্ট্রিং ভ্যালুস্ট্রিং {get {ফেরতের মান পাবেন? "সত্য মিথ্যা"; } সেট {মান = মান == "সত্য"; }}
আন্দ্রে ফিডলার 13

এবং কনস্ট্রাক্টরগুলি অপ্রয়োজনীয় + আপনার সর্বজনীনভাবে দৃশ্যমান সদস্যদের জন্য মন্তব্যগুলি অন্তর্ভুক্ত করা উচিত
আন্দ্রে ফিডলার 13

1
আমার প্রতিরক্ষায় এটি এমন কিছু ছিল যা আমি খুব দ্রুত এক সাথে চড় মারলাম যা আমার পক্ষে কাজ করেছিল। আমি এটিতে ফিরে যাইনি তবে রেপোকে কোনও পরিবর্তন করতে অবদান রাখতে নির্দ্বিধায়।
টালন

আমি কয়েক মাস ধরে এটি ব্যবহার করে চলেছি - এটি নিখুঁত নয়, তবে এটি বেশ কার্যকর এবং আমি খুঁজে পেয়েছি এটি এক্সএমএল হিসাবে ভিএস2013 এর পেস্টের চেয়ে অনেক বেশি পঠনযোগ্য / সহজ এক্সএমএল উত্পন্ন করে। টালনের অনেক প্রশংসা করেছেন।
কোডেঞ্চিল্লা

6

আপনি svcutil ( svcutil প্রশ্ন ) বিবেচনা করা উচিত

Xsd.exe এবং svcutil উভয়ই এক্সএমএল স্কিমা ফাইল (.xsd) এ পরিচালনা করে। আপনার এক্সএমএল এই দুটি সরঞ্জামের যে কোনও একটি দ্বারা ব্যবহৃত একটি স্কিমা ফাইল মেনে চলতে হবে।

নোট করুন যে বিভিন্ন তৃতীয় পক্ষের সরঞ্জামগুলিও এর জন্য বিদ্যমান।


3

ডারিনের পরামর্শ অনুসারে আপনি এক্সএসডি ব্যবহার করতে পারেন।

এ ছাড়া আরও যুক্তিসঙ্গত স্কিমা তৈরির জন্য test.xsd-file এডিট করার পরামর্শ দেওয়া হয়।

type="xs:string"type="xs:int"পূর্ণসংখ্যার মানগুলির জন্য পরিবর্তিত
minOccurs="0"হতে পারে minOccurs="1"ক্ষেত্রটি যেখানে প্রয়োজন কেবল সেখানে
maxOccurs="unbounded"পরিবর্তন করা যেতে পারে maxOccurs="1"যেখানে কেবলমাত্র একটি আইটেম অনুমোদিত

আপনি যদি আরও আপনার ডেটা বৈধ করতে চান তবে আপনি আরও উন্নত এক্সএসডি-এস তৈরি করতে পারেন তবে এটি অন্তত উত্পন্ন সি # তে যুক্তিসঙ্গত ডেটা ধরণের দেবে।


1

এক্সএসডি ফাইল থেকে স্কিমা শ্রেণি তৈরি করতে নীচের বাক্য গঠনটি ব্যবহার করুন।

C:\xsd C:\Test\test-Schema.xsd /classes /language:cs /out:C:\Test\

0

এক্সএমএলকে একটি সি # শ্রেণিতে রূপান্তর করতে:

  • মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও মার্কেটপ্লেসে নেভিগেট করুন: - https://marketplace.visualstudio.com
  • অনুসন্ধান বারে পাঠ্য প্রবেশ করুন: - এক্সএমএল থেকে ক্লাস কোড সরঞ্জাম
  • অ্যাপ্লিকেশনটি ডাউনলোড করুন, ইনস্টল করুন এবং ব্যবহার করুন

দ্রষ্টব্য: সময়ের পুরোপুরি, এই অ্যাপ্লিকেশনটি প্রতিস্থাপন করা যেতে পারে, তবে সম্ভাবনা রয়েছে, একই জিনিসটি করার মতো আরও একটি সরঞ্জাম থাকবে।

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