Получение XSD-контента с помощью PHP


Мне нужно извлечь содержимое XSD-файла с помощью PHP. Я не хочу проверять его по XML; Мне просто нужно взять несколько узлов и проверить некоторые атрибуты.

Вот мой пример XSD:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://www.opengis.net/gml" schemaLocation="somelocation.xsd" /> 
  <xsd:complexType name="nameType">
    <xsd:complexContent>
       <xsd:extension base="gml:AbstractFeatureType">
         <xsd:sequence>
             <xsd:element maxOccurs="1" minOccurs="0" name="x" nillable="true" type="xsd:int" /> 
             <xsd:element maxOccurs="1" minOccurs="0" name="y" nillable="true" type="xsd:int" /> 
             <xsd:element maxOccurs="1" minOccurs="0" name="z" nillable="true" type="xsd:decimal" /> 
         </xsd:sequence>
       </xsd:extension>
  </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="lz_anual_250" substitutionGroup="gml:_Feature" type="layerType" /> 
</xsd:schema>

Я не знаю, возможно ли это, поэтому я просто обращаюсь к эксперту по стековому потоку.

Спасибо!

PS: Я использую CodeIgniter, поэтому, если кто-нибудь знает какое-либо расширение или подобное, чтобы сделать это, напишите здесь, пожалуйста.

ИЗМЕНИТЬ: Проблема решена!

Здесь это ссылка, которая может помочь кому-то с такой же проблемой, как у меня:

Http://www.php.net/manual/en/domdocument.load.php#57911

Просто кто-то использовал класс DOMXPath для навигации по XSD-чтению перед использованием класса DOMDocument (как мне сказал рик). XSD не был пустым. Я пытался напечатать_r, var_dump и повторить узлы, но, очевидно, там не было информации, подобной классическому XML.

Author: Fran Verona, 2011-01-19

1 answers

XSD - это сам XML. Вы можете работать с ним, как с любым XML-файлом.

$doc = new DOMDocument();
$doc->load('your.xsd');
// do whatever you want
 7
Author: rik, 2011-01-19 17:48:42