XML Doctype, как применять - PullRequest
1 голос
/ 14 декабря 2011

Как применить тип документа в xml?

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE application [
       <!ELEMENT application (#PCDATA)>
]>
<application>
       <settings>
              <environment use="production" />
              <database datasource="MySQL" environment="production" />
              <database datasource="MySQL" environment="development" />
              <import>
                     <path value="Application" />
                     <path value="Application/Library" />
              </import>
       </settings>
       <environment name="production">
              <database>
                     <hostname value="127.0.0.1" />
                     <username value="root" />
                     <password value="" />
                     <database value="app" />
              </database>
       </environment>
       <environment name="development">
              <database>
                     <hostname value="127.0.0.1" />
                     <username value="root" />
                     <password value="" />
                     <database value="app" />
              </database>
       </environment>
</application>

Я также хотел проверить элементы, которые необходимо содержать, и атрибуты в XML, например, параметры среды, у вас должен быть этот узела также как я могу создать один тип документа, который может быть реализован с помощью различных XML, так как я могу проверить xml с помощью файла xsd?

1 Ответ

1 голос
/ 14 декабря 2011

Попробуйте следующую схему (необходимо заполнить определения типов):

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://example.com/sample"
    xmlns="http://example.com/sample">
  <xs:element name="application">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="settings" type="settingsType" />
        <xs:element name="environment" maxOccurs="unbounded" type="environmentType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- type definitions -->
  <xs:complexType name="settingsType">
    ... define type here...
  </xs:complexType>
  <xs:complexType name="environmentType">
    ... define type here...
  </xs:complexType>
</xs:schema>

Экземпляр XML, который вы хотите проверить, можно затем связать со схемой, включив атрибут xmlns в ваш корневой узел:

<application xmlns="http://example.com/sample">
       <settings>
              ....
       </settings>
       <environment name="production">
              ....
       </environment>
       <environment name="development">
              ....
       </environment>
</application>
...