Получение XSD-контента с использованием PHP - PullRequest
2 голосов
/ 19 января 2011

Мне нужно извлечь содержимое файла 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>

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

Спасибо!

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

РЕДАКТИРОВАТЬ: Проблема решена!

Вот ссылка, которая может помочь кому-то с той же проблемой, что и я:

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

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

1 Ответ

7 голосов
/ 19 января 2011

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

$doc = new DOMDocument();
$doc->load('your.xsd');
// do whatever you want
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...