在PHP中读取和列出XSD的元素

时间:2018-02-22 17:07:11

标签: php xml xsd

我们有一个ERP,它提供的Web服务具有CDATA字段,其中包含特定数据的xsd定义。

我们可以阅读这个CDATA,它是这样的(并非列出所有字段):

<EstPrdBR xmlns="http//tempuri.org/EstPrdBR.xsd"> 
<xsschema id="EstPrdBR" targetNamespace="http//tempuri.org/EstPrdBR.xsd" xmlnsmstns="http//tempuri.org/EstPrdBR.xsd" xmlns="http//tempuri.org/EstPrdBR.xsd" xmlnsxs="http//www.w3.org/2001/XMLSchema" xmlnsmsdata="urnschemas-microsoft-comxml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> 
    <xselement name="EstPrdBR" msdataIsDataSet="true" msdataUseCurrentLocale="true" msdataEnforceConstraints="False"> 
        <xscomplexType> 
            <xschoice minOccurs="0" maxOccurs="unbounded"> 
                <xselement name="TPRODUTO"> 
                    <xscomplexType> 
                        <xssequence> 
                            <xselement name="CODCOLPRD" msdataCaption="Coligada" type="xsshort" minOccurs="0" /> 
                            <xselement name="CODCOLIGADA" msdataCaption="Coligada" type="xsshort" /> 
                            <xselement name="IDPRD" msdataCaption="Identificador" type="xsint" default="1835" /> 
                            <xselement name="CODIGOPRD" msdataCaption="Código do Produto"> 
                                <xssimpleType> 
                                    <xsrestriction base="xsstring"> 
                                        <xsmaxLength value="30" /> 
                                    </xsrestriction> 
                                </xssimpleType> 
                            </xselement> 
                            <xselement name="NOMEFANTASIA" msdataCaption="Nome Fantasia"> 
                                <xssimpleType> 
                                    <xsrestriction base="xsstring"> 
                                        <xsmaxLength value="100" /> 
                                    </xsrestriction> 
                                </xssimpleType> 
                            </xselement> 
                            <xselement name="CODIGOREDUZIDO" msdataCaption="Código Reduzido" minOccurs="0"> 
                                <xssimpleType> 
                                    <xsrestriction base="xsstring"> 
                                        <xsmaxLength value="10" /> 
                                    </xsrestriction> 
                                </xssimpleType> 
                            </xselement> 
                            <xselement name="CODFAB" msdataCaption="Código do Fabricantes" minOccurs="0"> 
                                <xssimpleType> 
                                    <xsrestriction base="xsstring"> 
                                        <xsmaxLength value="15" /> 
                                    </xsrestriction> 
                                </xssimpleType> 
                            </xselement> 
                            (...)
    </xselement> 
</xsschema> 

所以我需要阅读元素名称,标题和属性字段:

  • 领域:CODCOLIGADA,IDPRD,CODIGOPRD,NOMEFANTASIA等
  • 规格:Caption,minOccurs,type(string)和maxLen

我一直试图使用XMLDOM和simple_xml来完成这项任务,但没有成功?

我曾尝试使用Goebas(https://github.com/goetas-webservices/xsd-reader,但也没有成功。

有什么想法吗?

0 个答案:

没有答案