এক্সএমএল স্কিমা এবং ডিটিডি-র মধ্যে পার্থক্য কী?


175

আমি এই প্রশ্নটি গুগল করেছি, তবে এক্সএমএল স্কিমা এবং ডিটিডি (নথির ধরণের সংজ্ঞা) কী এবং ডিটিডি তুলনায় এক্সএমএল স্কিমা কেন আরও শক্তিশালী তা আমি স্পষ্টভাবে বুঝতে পারি না।

কোন গাইডেন্স খুব প্রশংসা করা হবে।

উত্তর:


136

থেকে DTDs এবং স্কিমা মধ্যে পার্থক্য বিভাগে রূপান্তর একটি DTD একটি স্কিমা মধ্যে নিবন্ধ:

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

ডিটিডিগুলির লক্ষ্য ছিল এসজিএমএল ডিটিডিগুলিকে এক্সএমএল ডিটিডি তে রূপান্তর করতে পারে এমন অ্যাপ্লিকেশনগুলির জন্য এসজিএমএলের সাথে সামঞ্জস্যতার একটি স্তর বজায় রাখা। যাইহোক, এক্সএমএলের একটি লক্ষ্য রেখে, "এক্সএমএল মার্কআপে সংক্ষিপ্ততার ন্যূনতম গুরুত্ব রয়েছে," সিনট্যাক্স সংক্ষিপ্ত রাখার ক্ষেত্রে কোনও সত্যিকারের উদ্বেগ নেই।

[...]

সুতরাং যখন আমরা একটি ডিটিডি রূপান্তর করছি তখন অন্যান্য কিছু পার্থক্য কী বিশেষত গুরুত্বপূর্ণ হতে পারে? এর কটাক্ষপাত করা যাক.

টাইপিং

ডিটিডি এবং এক্সএমএল স্কিমার মধ্যে সর্বাধিক উল্লেখযোগ্য পার্থক্য হ'ল উপাদান এবং বৈশিষ্ট্য ঘোষণার সাথে মিলে স্কিমায় ডেটাটাইপগুলি তৈরি এবং ব্যবহারের সক্ষমতা। আসলে, এটি এত গুরুত্বপূর্ণ একটি পার্থক্য যে এক্সএমএল স্কিমা সুপারিশের অর্ধেকটি ডেটাটাইপিং এবং এক্সএমএল স্কিমাতে উত্সর্গীকৃত। "XML স্কিমা ডেটাটাইপস" এই বইয়ের তৃতীয় খণ্ডে আমরা বিশদ সহ ডেটাটাইপগুলি কভার করি।

[...]

সংঘটন সীমাবদ্ধতা

আর একটি ক্ষেত্র যেখানে ডিটিডি এবং স্কিমা উল্লেখযোগ্যভাবে পার্থক্য হ'ল ঘটনা সীমাবদ্ধতার সাথে। আপনি যদি অধ্যায় 2, "স্কিমা স্ট্রাকচার" (বা ডিটিডি সহ আপনার নিজের কাজ) আমাদের পূর্ববর্তী উদাহরণগুলি থেকে স্মরণ করেন তবে তিনটি চিহ্ন রয়েছে যা আপনি কোনও উপাদানের উপস্থিতি সংখ্যা সীমাবদ্ধ করতে ব্যবহার করতে পারেন: *, + এবং?

[...]

Enumerations

সুতরাং, আসুন আমরা বলি যে আমাদের একটি উপাদান রয়েছে, এবং আমরা শার্টের জন্য একটি আকারের বৈশিষ্ট্যটি সংজ্ঞায়িত করতে সক্ষম হতে চেয়েছিলাম, যা ব্যবহারকারীদের একটি আকার বেছে নিতে দেয়: ছোট, মাঝারি বা বড়। আমাদের ডিটিডি এর মতো দেখাবে:

<!ELEMENT item (shirt)>
<!ELEMENT shirt (#PCDATA)>
<!ATTLIST shirt
    size_value (small | medium | large)>

[...]

তবে আমরা যদি sizeএকটি উপাদান হতে চাই ? আমরা এটি একটি ডিটিডি দিয়ে করতে পারি না। ডিটিডি একটি উপাদানের পাঠ্য সামগ্রীতে গণনার জন্য সরবরাহ করে না। যাইহোক, স্কিমার সাথে ডেটাটাইপগুলির কারণে, যখন আমরা পূর্ববর্তী উদাহরণে অঙ্কটি ঘোষণা করেছিলাম, আমরা আসলে একটি কল simpleTypeতৈরি করেছি size_valuesযা আমরা এখন একটি উপাদান দিয়ে ব্যবহার করতে পারি:

<xs:element name="size" type="size_value">

[...]


1
কেবল একটি নোট, ডাব্লু 3 সি মনে করে যে ডিটিডি এক ধরণের এক্সএমএল স্কিমা ভাষার ভাষা: "বিস্তৃত ব্যবহারে বিভিন্ন স্কিমা ভাষা রয়েছে তবে মূলগুলি হ'ল ডকুমেন্ট টাইপ সংজ্ঞা (ডিটিডি), রিল্যাক্স-এনজি, স্কিম্যাট্রন এবং ডাব্লু 3 সি এক্সএসডি ( এক্সএমএল স্কিমা সংজ্ঞা)। " W3.org/standards/xML/schema
মর্দচাই

1
@ মোর্দচাই আমার ধারণা তারা ডিটিডি কে এক্সএমএল স্কিমা নয় স্কিমা ভাষা হিসাবে উল্লেখ করছে ।
kaartic

90

এক্সএমএল স্কিমা সংজ্ঞা (এক্সএসডি) এবং নথি প্রকার সংজ্ঞা (টিটিডি) এর মধ্যে পার্থক্যগুলির মধ্যে রয়েছে:

  • এক্সএমএল স্কিমাগুলি এক্সএমএলে লেখা হয়, যখন ডিটিডি এসজিএমএল বাক্য গঠন থেকে প্রাপ্ত।
  • এক্সএমএল স্কিমা উপাদান এবং বৈশিষ্ট্যগুলির জন্য ডেটাটাইপগুলি সংজ্ঞায়িত করে যখন ডিটিডি ডেটাটাইপগুলি সমর্থন করে না।
  • এক্সএমএল স্কিমাগুলি নেমস্পেসগুলির জন্য সমর্থন দেয় যখন ডিটিডি না করে।
  • এক্সএমএল স্কিমাগুলি শিশু উপাদানগুলির সংখ্যা এবং ক্রম সংজ্ঞায়িত করে, যখন ডিটিডি তা দেয় না।
  • এক্সএমএল স্কিমগুলি এক্সএমএল ডিওএম দিয়ে আপনার নিজেরাই তৈরি করা যেতে পারে তবে ডিটিডি ক্ষেত্রে এটি সম্ভব হয় না case
  • এক্সএমএল স্কিমা ব্যবহারকারীর নতুন ভাষা শেখার দরকার নেই তবে ডিটিডি দিয়ে কাজ করা একজন ব্যবহারকারীর পক্ষে কঠিন।
  • এক্সএমএল স্কিমা নিরাপদ ডেটা যোগাযোগের ব্যবস্থা করে যেমন প্রেরক তথ্য উপাত্তকে এমনভাবে বর্ণনা করতে পারে যা রিসিভার বুঝতে পারে, তবে ডিটিডি ক্ষেত্রে ডেটা রিসিভারের দ্বারা ভুল বোঝাবুঝি হতে পারে।
  • এক্সএমএল স্কিমাগুলি এক্সটেনসিবল হয় যখন ডিটিডি এক্সটেনসিবল হয় না।

আপডেট : 2015.08.26

এই সমস্ত বুলেট পয়েন্ট 100% সঠিক নয়, তবে আপনি সারাংশ পাবেন।

অন্য দিকে:

  • ডিটিডি আপনাকে আপনার এক্সএমএল ফাইলটিতে ব্যবহারের জন্য নতুন ENTITY মানগুলি সংজ্ঞায়িত করতে দেয় ।
  • ডিটিডি আপনাকে এটিকে স্থানীয় একটি পৃথক এক্সএমএল ফাইলে প্রসারিত করতে দেয়।

21

যেমনটি আগেও উল্লেখ করেছেন, এক্সএমএল স্কিমা একটি এক্সএমএল-ভিত্তিক সিনট্যাক্স ব্যবহার করে এবং ডিটিডিগুলির একটি অনন্য সিনট্যাক্স থাকে। ডিটিডি ডেটাটাইপগুলি সমর্থন করে না, যা গুরুত্বপূর্ণ।

একটি খুব সাধারণ উদাহরণ দেখা যাক যেখানে বিশ্ববিদ্যালয়ে একাধিক শিক্ষার্থী রয়েছে এবং প্রতিটি শিক্ষার্থীর দুটি নাম "নাম" এবং "বছর" রয়েছে। দয়া করে মনে রাখবেন যে আমি আমার মন্তব্যে "// ->" ব্যবহার করেছি কেবল মন্তব্যের জন্য।

এখানে চিত্র বর্ণনা লিখুন

এখন আমি এই উদাহরণটি ডিটিডি এবং এক্সএসডি উভয় ক্ষেত্রেই লিখব।

DTD

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE university[              // --> university as root element 
<!ELEMENT university (student*)>   // --> university has  * = Multiple students
<!ELEMENT student (name,year)>     // --> Student has elements name and year
<!ELEMENT name (#PCDATA)>          // --> name as Parsed character data
<!ELEMENT year (#PCDATA)>          // --> year as Parsed character data
]>

<university>
    <student>
        <name>
            John Niel             //---> I can also use an Integer,not good
        </name>
        <year>
            2000                 //---> I can also use a string,not good
        </year>
    </student>
</university>

এক্সএমএল স্কিমা সংজ্ঞা (এক্সএসডি)

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:complexType name ="uniType">                    //--> complex datatype uniType
 <xsd:sequence>
  <xsd:element ref="student" maxOccurs="unbounded"/> //--> has unbounded no.of students
 </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="stuType">                     //--> complex datatype stuType
 <xsd:sequence>
  <xsd:element ref="name"/>                          //--> has element name
  <xsd:element ref="year"/>                          //--> has element year
 </xsd:sequence>
</xsd:complexType>

<xsd:element name="university" type="uniType"/>       //--> university of type UniType 
<xsd:element name="student" type="stuType"/>          //--> student of type stuType
<xsd:element name="name" type="xsd:string"/>          //--> name of datatype string
<xsd:element name="year" type="xsd:integer"/>         //--> year of datatype integer
</xsd:schema>



<?xml version="1.0" encoding="UTF-8"?>
<university>
    <student>
        <name>
            John Niel          
        </name>
        <year>
            2000                      //--> only an Integer value is allowed
        </year>
    </student>
</university>

16

ডিটিডি এক্সএমএলকে পূর্বাভাস দেয় এবং তাই এটি এক্সএমএল বৈধ নয়। এটি সম্ভবত এক্সএসডি আবিষ্কারের বৃহত্তম কারণ।


ঠিক - এক্সএসডি / এক্সএমএল স্কিমা নিজেই এক্সএমএল - যা সত্যিই খুব ভাল জিনিস!
marc_s

হুঁ, এক্সএসডি কেবল এক্সএমএল সিনট্যাক্সের চেয়ে আরও বেশি কিছু যুক্ত করে; উদাহরণস্বরূপ, ডেটাটাইপস
রুবেন ফারিয়াস

9

এক্সএসডি এবং ডিটিডির মধ্যে মিল

both specify elements, attributes, nesting, ordering, #occurences

এক্সএসডি এবং ডিটিডি এর মধ্যে পার্থক্য

XSD also has data types, (typed) pointers, namespaces, keys and more.... unlike DTD 

তবুও এক্সএসডি যদিও সামান্য ভার্বোজ, এর সিনট্যাক্সটি এক্সএমএল এর বর্ধন, এটি দ্রুত শিখতে সুবিধাজনক করে তোলে।


2
DTD আরো XSD যতটা চেয়ে সীমাবদ্ধ #occurences শুধুমাত্র পছন্দ সঙ্গে 1, 0 or 1, 0 or more, যখন XSD সর্বনিম্ন এবং সর্বোচ্চ সংখ্যা নির্দিষ্ট করতে পারেন।
জেসি চিশলম

8

একটি পার্থক্য হ'ল একটি ডিটিডি-তে কোনও উপাদানটির সামগ্রী মডেল সম্পূর্ণরূপে তার নাম দ্বারা নির্ধারিত হয়, ডকুমেন্টে এটি যেখানে প্রদর্শিত হয় তা থেকে:

ধরে নিচ্ছি আপনি চান

  • একটি personউপাদান
  • একটি শিশু উপাদান বলা হয় name
  • একটি nameনিজেই শিশু উপাদান firstএবং last

এটার মত

   <person>
       <name>
            <first></first>
            <last></last>
       </name>
   </person>

একটি এমন cityএকই নথিতে উপাদান এছাড়াও একটি শিশুর উপাদান 'NAME' থাকতে হবে DTD প্রয়োজন যে এই 'নাম' উপাদান সন্তান উপাদান থাকতে হবে firstএবং lastহিসাবে ভাল। সত্য যে সত্ত্বেও city.nameপ্রয়োজন হয় না firstএবং lastশিশুদের হিসাবে।

বিপরীতে, এক্সএমএল স্কিমা আপনাকে স্থানীয়ভাবে শিশুদের উপাদানগুলির ধরণের ঘোষণা করতে দেয়; আপনি nameউভয় personএবং cityপৃথক পৃথক জন্য শিশু উপাদান ঘোষণা করতে পারে । সুতরাং তাদের সেই প্রসঙ্গে তাদের যথাযথ সামগ্রী মডেল প্রদান করা।

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

আমার কাছে, অন্যান্য পার্থক্য বেশিরভাগ পৃষ্ঠের are ডেটাটাইপ সমর্থনটি সহজেই ডিটিডিগুলিতে যুক্ত করা যেতে পারে এবং সিনট্যাক্সটি কেবল সিনট্যাক্স। (আমি, একের জন্য, এক্সএমএল স্কিমা সিনট্যাক্সটিকে ভয়াবহ বলে মনে করি এবং কোনও এক্সএমএল স্কিমা হস্তান্তর করতে চাই না, যা আমি ডিটিডি বা রিলাক্স এনজি স্কিমার বিষয়ে বলব না; যদি কোনও কারণে আমার এক্সএমএল স্কিমা প্রয়োজন হয় তবে আমি সাধারণত লিখি একটি রিলাক্স এনজি এবং এটিতে রূপান্তর করুন trang))


6

সাদৃশ্য :

ডিটিডি এবং স্কিমাস উভয়ই একই বেসিক ফাংশন সম্পাদন করে:

  • প্রথমত, তারা উভয় উপাদান এবং গুণাবলী একটি লন্ড্রি তালিকা ঘোষণা।
  • দ্বিতীয়ত, উভয়ই বর্ণনা করে যে কীভাবে এই উপাদানগুলি গোষ্ঠীভুক্ত, বাসা বাঁধে বা এক্সএমএল-এর মধ্যে ব্যবহার করা হয়। অন্য কথায়, তারা সেই নিয়মগুলি ঘোষণা করে যার মাধ্যমে আপনি কাউকে আপনার কর্মপ্রবাহের মধ্যে একটি এক্সএমএল ফাইল তৈরি করার অনুমতি দিচ্ছেন, এবং
  • তৃতীয়ত, ডিটিডি এবং স্কিমা উভয়ই কোনও উপাদানের প্রকার বা বিন্যাসকে সীমাবদ্ধ করার জন্য বা জোরপূর্বক পদ্ধতি সরবরাহ করে। উদাহরণস্বরূপ, ডিটিডি বা স্কিমার মধ্যে আপনি একটি তারিখের ক্ষেত্রকে 01/05/06 বা 1/5/2006 হিসাবে লিখতে বাধ্য করতে পারেন।

পার্থক্য:

  • পাঠ্য-নিবিড় অ্যাপ্লিকেশনগুলির জন্য ডিটিডিগুলি আরও ভাল, যখন ডেটা-নিবিড় কর্মপ্রবাহের জন্য স্কিমার বিভিন্ন সুবিধা রয়েছে।

  • স্কিমাসগুলি এক্সএমএলে লিখিত হয় এবং ফলস্বরূপ একই নিয়মগুলি অনুসরণ করে, ডিটিডি সম্পূর্ণ ভিন্ন ভাষায় লেখা হয়।

উদাহরণ:

DTD:

<?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT employees (Efirstname, Elastname, Etitle, Ephone, Eemail)>
         <!ELEMENT Efirstname (#PCDATA)>
         <!ELEMENT Elastname (#PCDATA)>
         <!ELEMENT Etitle (#PCDATA)>
         <!ELEMENT Ephone (#PCDATA)>
         <!ELEMENT Eemail (#PCDATA)>

XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
     <xsd:complexType>
          <xsd:sequence>
               <xsd:element ref="employees" minOccurs="0" maxOccurs="unbounded"/>
          </xsd:sequence>
          <xsd:attribute name="generated" type="xsd:dateTime"/>
      </xsd:complexType>
</xsd:element>
<xsd:element name="employees">
      <xsd:annotation>
           <xsd:appinfo>
               <od:index index-name="PrimaryKey" index-key="Employeeid " primary="yes"
                unique="yes" clustered="no"/>
          <od:index index-name="Employeeid" index-key="Employeeid " primary="no" unique="no"
           clustered="no"/>
     </xsd:appinfo>
</xsd:annotation>
     <xsd:complexType>
          <xsd:sequence>
               <xsd:element name="Elastname" minOccurs="0" od:jetType="text"
                od:sqlSType="nvarchar">
                    <xsd:simpleType>
                         <xsd:restriction base="xsd:string">
                              <xsd:maxLength value="50"/>
                         </xsd:restriction>
                    </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Etitle" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
                    <xsd:simpleType>
                         <xsd:restriction base="xsd:string">
                              <xsd:maxLength value="50"/>
                         </xsd:restriction>
                    </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Ephone" minOccurs="0" od:jetType="text"
                od:sqlSType="nvarchar">
                    <xsd:simpleType>
                         <xsd:restriction base="xsd:string">
                              <xsd:maxLength value="50"/>
                         </xsd:restriction>
                    </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Eemail" minOccurs="0" od:jetType="text"
               od:sqlSType="nvarchar">
                    <xsd:simpleType>
                         <xsd:restriction base="xsd:string">
                              <xsd:maxLength value="50"/>
                         </xsd:restriction>
                    </xsd:simpleType>
               </xsd:element>
               <xsd:element name="Ephoto" minOccurs="0" od:jetType="text"
                od:sqlSType="nvarchar">
                    <xsd:simpleType>
                         <xsd:restriction base="xsd:string">
                              <xsd:maxLength value="50"/>
                         </xsd:restriction>
                    </xsd:simpleType>
               </xsd:element>
          </xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

4

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

স্কিমার বিল্ডিং বিকাশকারী মূল ডেটা ধরণের ভিত্তিতে এবং বিভিন্ন অপারেটর এবং সংশোধক ব্যবহার করে কাস্টম ডেটা প্রকার তৈরি করতে পারেন।


ডিটিডি-তে সিডিএটিএর উপসেটও থাকতে পারে যাকে গণনা মান বলা হয় ।
জেসি চিশলম

4

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

সংক্ষিপ্ত উত্তর? ডিটিডি এক্সএসডি'র পক্ষে হ্রাস করা হয়েছে কারণ একটি এক্সএসডি আপনাকে আরও নির্ভুলতার সাথে একটি এক্সএমএল কাঠামো সংজ্ঞায়িত করতে দেয়।


4

এক্সএমএল ডিটিডি

একটি ডিটিডি এর উদ্দেশ্য হ'ল এক্সএমএল ডকুমেন্টের গঠন নির্ধারণ করা def এটি আইনি উপাদানগুলির একটি তালিকা সহ কাঠামোটি সংজ্ঞায়িত করে:

<!ATTLIST contact type CDATA #IMPLIED>
<!ELEMENT address1 ( #PCDATA)>
<!ELEMENT city ( #PCDATA)>
<!ELEMENT state ( #PCDATA)>
<!ELEMENT zip ( #PCDATA)>

এক্সএমএল স্কিমা

এক্সএমএল স্কিমা স্কিমা লেখকদের সুনির্দিষ্ট করে তোলে যে উপাদানটির পরিমাণের ডেটা অবশ্যই সংখ্যাসূচক বা আরও নির্দিষ্টভাবে কোনও পূর্ণসংখ্যার হতে হবে। নিম্নলিখিত উদাহরণে আমি ব্যবহার করেছি string:

<xs:element name="note">
<xs:complexType>
  <xs:sequence>
    <xs:element name="address1" type="xs:string"/>
    <xs:element name="city" type="xs:string"/>
    <xs:element name="state" type="xs:string"/>
    <xs:element name="zip" type="xs:string"/>
  </xs:sequence>
</xs:complexType>


2

ডিটিডিটি অনেকটাই হ্রাস পেয়েছে কারণ এটি স্কিমা ভাষা হিসাবে এর কার্যকারিতা সীমিত, নামস্থান সমর্থন করে না এবং ডেটা টাইপ সমর্থন করে না। তদতিরিক্ত, ডিটিডি সিনট্যাক্সটি বেশ জটিল, এটি বুঝতে এবং বজায় রাখা শক্ত করে তোলে ..


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

-7

ডিটিডি এক্সএমএল উপাদানটির বাক্য গঠন নির্দেশ করে

এক্সএমএল স্কিমাস এক্সএমএলকে বৈধতা দেওয়ার জন্য মাইক্রোসফ্টের ডিটিডি বিকল্প

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