我需要使用PHP提取XSD文件的内容。 我不想针对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类在使用DOMDocument类之前浏览XSD读取(就像rik告诉我的那样)。 XSD不是空的。我试图print_r,var_dump并回显节点,但显然不包含像经典XML那样的信息。
答案 0 :(得分:7)
XSD本身就是XML。您可以像使用任何XML文件一样使用它。
$doc = new DOMDocument();
$doc->load('your.xsd');
// do whatever you want