-1

У меня есть такой xml

<jobs>
     <job job_type="full time">
       <title department="distribution">Manager</title>
       <description>Managing the distribution</description>
       <location>Delhi</location>
       <salary>100,000</salary>
     </job>

Я написал xsd для этого как ниже

<xs:scema>
   <xs:element name="jobs">
    <xs:complexType>
     <xs:sequence>
        <xs:element name="job">
         <xs:complexType>
           <xs:attribute name="job_type"  type="xs:string/>
         </xs:complexType>
         <xs:complexType>
          <xs:sequence>
              <xs:element name="title">
                 <xs:complexType>
                   <xs:attribute name="department"  type="xs:string/>
                 </xs:complexType>     
              </xs:element>
              <xs:element name="description" type="xs:string"/>
              <xs:element name="location" type="xs:string"/>
              <xs:element name="salary" type="xs:integer"/>
         </xs:sequence>
        </xs:complexType>

      </xs:sequence>
     </xs:complexType> 

Могу ли я узнать, это написать или неправильно? и как правильно написать сложный элемент, имеющий атрибут, а также другие подэлементы.

1 ответ1

0

Ниже приведены результаты преобразования вашего примера xml в xsd на веб-странице генератора схем XSD/XML . Для того, чтобы конвертировать xml в xsd.

  1. Вставьте данные XML в поле данных XML.
  2. Нажмите кнопку « Создать XSD» .
<xs:schema>  
  <xs:element name="jobs">  
    <xs:complexType>  
      <xs:sequence>  
        <xs:element name="job">  
          <xs:complexType>  
            <xs:sequence>  
              <xs:element name="title">  
                <xs:complexType>  
                  <xs:simpleContent>  
                    <xs:extension base="xs:string">  
                      <xs:attribute type="xs:string" name="department"/>  
                    </xs:extension>  
                  </xs:simpleContent>  
                </xs:complexType>  
              </xs:element>  
              <xs:element type="xs:string" name="description"/>  
              <xs:element type="xs:string" name="location"/>  
              <xs:element type="xs:string" name="salary"/>  
            </xs:sequence>  
            <xs:attribute type="xs:string" name="job_type"/>  
          </xs:complexType>  
        </xs:element>  
      </xs:sequence>  
    </xs:complexType>  
  </xs:element>  
</xs:schema>

Заметки

  1. У правильно сформированного входного XML-файла должен быть закрывающий тег для тега <jobs> , поэтому в конец входного XML-файла необходимо добавить следующую строку следующим образом: </jobs>

  2. Обратите внимание, что "description", "location" и "salary" появляются перед "типом задания" в схеме, а тип "salary" преобразуется в «xs: string».

  3. Если вы хотите, чтобы тип "зарплата" отображался как целое число, измените ввод <salary>100,000</salary> на <salary>100000</salary> , удалив запятую в числе 100,000 . Это изменяет строку типа "зарплата" в схеме следующим образом:

    <xs: element type = "xs: int" name = "salary"/>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .