এক্সএমএল স্কিমা: উপাদানটিতে কেবল পাঠ্য রয়েছে?


133

এটি অনুসন্ধানে আমার অসুবিধা হচ্ছে। এক্সএমএলের জন্য XML স্কিমা ফাইলটিতে আমি কীভাবে একটি এলিমেন্টটি সংজ্ঞায়িত করব:

<option value="test">sometext</option>

আমি টাইপযুক্ত একটি উপাদানটি কীভাবে সংজ্ঞায়িত করতে পারি xs:stringএবং তার একটি বৈশিষ্ট্যও রয়েছে তা আমি বুঝতে পারি না ।

আমি এ পর্যন্ত যা পেয়েছি তা এখানে:

<xs:element name="option">
    <xs:complexType>
        <xs:attribute name="value" type="xs:string" />
    </xs:complexType>
</xs:element>

উত্তর:


168

চেষ্টা

  <xs:element name="option" type="AttrElement" />

  <xs:complexType name="AttrElement">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="value" type="xs:string">
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

আমি আপনার কোডটি চেষ্টা করার ক্ষেত্রে নিম্নলিখিত ব্যতিক্রম পাচ্ছি - org.xML.sax.SAXParseException: src-resolve: একটি (এন) 'টাইপ সংজ্ঞা' উপাদানটির জন্য 'অ্যাট্রিকেলমেন্ট' নামটি বিশ্লেষণ করা যায় না। কেন যে এত?
আশ্বিন

1
যদি তা হয় তবে এটি সম্ভবত আপনার স্কিমা নথির একটি টার্গেট নেমস্পেস রয়েছে এবং আপনার প্রকারের নামটি টাইপের দিকে নির্দেশ করতে হবে। (যদি উপসর্গটি tnsস্কিমা নথির টার্গেট নেমস্পেসের সাথে আবদ্ধ থাকে তবে আপনি type="tns:AttrElement"প্রকারটি উল্লেখ করতে পারেন ))
সিএম স্পারবার্গ-ম্যাককুইন

@Ashwin আপনি টাইপ নামস্থান টাইপ রেফারেন্স (প্রয়োজন হতে পারে type="tns:AtrElement"যদি XSD আপনার নেমস্পেস XS নথির targetNamespace নয় সাধারণত যে কেস। tnsসংজ্ঞায়িত করা হয় এবং ব্যবহার করা হয়।
eckes

75

... বা ইনলাইন সমতুল্য:

<xs:element name="option">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="value" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

11
আমি এটির simpleContentমধ্যে সংজ্ঞা দেওয়া সত্যিই অপ্রচলিত মনে করি complexType। তবে তারপরে আবার এটি এক্সএসডি, যেখানে কিছুই সত্যই স্বজ্ঞাত বলে মনে হয় না। তবুও ধন্যবাদ! :-)
ফ্লু

এটি আমার জন্য IntelliJ ( V12.1.3 ) এ ত্রুটি দেখাবে : মান বৈশিষ্ট্যটি "অনুমোদিত নয়"। ব্যবহার complexContent পরিবর্তে simpleContent এটি সংশোধন করা হয়েছে।
আজ জেন

@ ক্রিব্রুনো আরও ভাল এর জন্য একটি উত্সর্গীকৃত এসও প্রশ্ন খুলুন। এখানে লিংকটি নির্দ্বিধায় মন্তব্য (এবং এই duscussion করার পয়েন্ট)
eckes

-2

আমি জানি এটি এক নয়, তবে এটি আমার পক্ষে কাজ করে:

<xsd:element name="option">
    <xsd:complexType mixed="true">
        <xsd:attribute name="value" use="optional" type="xsd:string"/>
    </xsd:complexType>
</xsd:element>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.