Использование типа XSD в расширении - PullRequest
0 голосов
/ 09 апреля 2020

Когда вы смотрите на файл xml, я думаю, что мое тело xsd верно. Но файл xml проверяется библиотекой python xml, и программа печатает «файл недействителен». Когда я удаляю nameType и пишу xsd: string вместо <xsd:extension base="nameType">, он печатает «файл действителен». изменить в файле xsd

 <xsd:element name="name">
<xsd:complexType>
  <xsd:simpleContent>
    <xsd:extension base="nameType">
        <xsd:attribute name="ÖĞRENİM_TÜRÜ" type="nameType"/>
        <xsd:attribute type="nameType" name="DİL" />
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

Это часть xsd. nameType - это особый тип. Это так:

<xsd:simpleType name="nameType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="io"/>
      <xsd:enumeration value="oo"/>
      <xsd:enumeration value="Eng"/>
      <xsd:enumeration value="Tr"/>
    </xsd:restriction> 
 </xsd:simpleType> 

Xml это:

 <university UNIVERSITE="IZMIR KATIP ÇELEBI UNIVERSITESI" UNIVERSITE_TURU="Devlet">
<item PROGRAM_KODU="105710042" FAKÜLTE="Muhendislik ve Mimarlik Fakultesi">
  <name OGRENIM_TÜRÜ="oo" DIL="Eng">Elektrik-Elektronik Mühendisligi</name>
  <period>4</period>
  <grant>0</grant>
  <quota OKUL_BIRINCISI_KONTENJANI="2">70</quota>
  <field>SAY</field>
  <last_min_score>395,14565
</last_min_score>
</item>
</university>

1 Ответ

1 голос
/ 10 апреля 2020

Когда вы определяете сложный тип с простым содержимым, базовый тип в xs: extension определяет ограничения на содержимое элемента, то есть текстовый узел, который здесь равен Elektrik-Elektronik Mühendisligi. Это не удовлетворяет ни одному из значений, разрешенных перечислением. Я думаю, что вы хотите <xsd:extension base="xs:string">

...