Mimba ya XSD ya Kumpata

Elementi ya kipendekezo ina elementi zingine na/au matumizi zaidi.

Je, ni nini elementi ya kipendekezo?

Elementi ya kipendekezo ina elementi zingine na/au matumizi zaidi za XML.

Ina nne elementi za kipendekezo zaidi:

  • Elementi zilizokosa zawadi
  • Elementi inayoweza kuwa na elementi zingine pekee
  • Elementi inayoweza kuwa na matukio pekee
  • Elementi inayoweza kuwa na elementi na matukio

Mwongozo:Elementi yote ya juu inaweza kuwa na matumizi!

Mfano wa elementi ya kipendekezo

Elementi ya kipendekezo, "product", ina elementi zilizokosa zawadi:

<product pid="1345"/>

Elementi ya kipendekezo, "employee", ina elementi zingine pekee:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

Elementi ya kipendekezo, "food", ina matukio pekee:

<food type="dessert">Ice cream</food>

Elementi ya kipendekezo, "description", ina elementi na matukio:

<description>
Inayotukia kwa <date lang="norwegian">03.03.99</date> ....
</description>

Kutumaliza elementi ya kipendekezo?

Angalia elementi ya XML yenye ujumbe, "employee", inaonekana na elementi zingine zaidi:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

Kwenye XML Schema, tuna ufupi wa pili wa kuandika elementi yenye:

1. Kwa kuzingatia elementi ya "employee", inaweza kudai kama hii:

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Ikiwa unatumia mtindo unaotumiwa juu, ingawa hizi zingatumiwa kwa elementi ya "employee" tu. Tukieleza maadili yao, elementi ya "firstname" na "lastname" zinaingizwa katika indikator <sequence>. Hii inamaanisha kwamba elementi ziziwe na kielelezo ambalo lililoandikwa. Wataona hii: Indikator ya XSD Shule hii inafungua maadili ya kilele.

2. Elementi ya "employee" inaweza kutumia property ya type, inayohusiana na jina la mtindo yenye:

<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Ikiwa unatumia mtindo unaotumiwa juu, elementi zaidi zingetumika kwa mtindo yenye:

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Inaweza kuandika elementi yenye kwa sababu ya elementi yenye ya kuzingatia, kama hii:

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>