我们有一个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>
所以我需要阅读元素名称,标题和属性字段:
我一直试图使用XMLDOM和simple_xml来完成这项任务,但没有成功?
我曾尝试使用Goebas(https://github.com/goetas-webservices/xsd-reader,但也没有成功。
有什么想法吗?