perlxsd解析

perlxsd解析,xsd,Xsd,我有一个XSD文件,它将被解析并转换为XML文件 使用Perl有什么方法可以做到这一点吗???生成xml文件后,我必须解析该xml文件,这是第二部分,但在将XSD文件转换为xml格式的第一部分中,我被打动了 XSD如下所示 <?xml version="1.0" encoding="UTF-8"?> <!-- This document was generated by the Objective Systems ASN2XSD Compiler (http:

我有一个XSD文件,它将被解析并转换为XML文件

使用Perl有什么方法可以做到这一点吗???生成xml文件后,我必须解析该xml文件,这是第二部分,但在将XSD文件转换为xml格式的第一部分中,我被打动了

XSD如下所示

    <?xml version="1.0" encoding="UTF-8"?>
<!-- This document was generated by the Objective Systems ASN2XSD Compiler
     (http://www.obj-sys.com).  Version: 6.3.0, Date: 06-May-2010. -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://www.obj-sys.com/S1AP-PDU-Descriptions"
            targetNamespace="http://www.obj-sys.com/S1AP-PDU-Descriptions"
 xmlns:S1AP-CommonDataTypes="http://www.obj-sys.com/S1AP-CommonDataTypes"
 xmlns:S1AP-PDU-Contents="http://www.obj-sys.com/S1AP-PDU-Contents"
 xmlns:S1AP-Constants="http://www.obj-sys.com/S1AP-Constants"
 xmlns:asn1="http://www.obj-sys.com/v1.0/XMLSchema"
 elementFormDefault="qualified">
   <xsd:import namespace="http://www.obj-sys.com/S1AP-CommonDataTypes"
    schemaLocation="S1AP-CommonDataTypes.xsd"/>
   <xsd:import namespace="http://www.obj-sys.com/S1AP-PDU-Contents"
    schemaLocation="S1AP-PDU-Contents.xsd"/>
   <xsd:import namespace="http://www.obj-sys.com/S1AP-Constants"
    schemaLocation="S1AP-Constants.xsd"/>
   <xsd:import namespace="http://www.obj-sys.com/v1.0/XMLSchema"
    schemaLocation="http://www.obj-sys.com/v1.0/XMLSchema/asn1.xsd"/>

   <!-- PDU definition -->
   <xsd:element name="s1AP-PDU" type="S1AP-PDU"/>
   <xsd:complexType name="S1AP-PDU">
      <xsd:choice>
         <xsd:element name="initiatingMessage" type="InitiatingMessage"/>
         <xsd:element name="successfulOutcome" type="SuccessfulOutcome"/>
         <xsd:element name="unsuccessfulOutcome" type="UnsuccessfulOutcome"/>
         <xsd:any namespace="##other" processContents="lax"/>
      </xsd:choice>
   </xsd:complexType>

   <xsd:complexType name="InitiatingMessage">
      <xsd:sequence>
         <xsd:element name="procedureCode" type="S1AP-CommonDataTypes:ProcedureCode"/>
         <xsd:element name="criticality" type="S1AP-CommonDataTypes:Criticality"/>
         <xsd:element name="value" type="asn1:OpenType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="SuccessfulOutcome">
      <xsd:sequence>
         <xsd:element name="procedureCode" type="S1AP-CommonDataTypes:ProcedureCode"/>
         <xsd:element name="criticality" type="S1AP-CommonDataTypes:Criticality"/>
         <xsd:element name="value" type="asn1:OpenType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="UnsuccessfulOutcome">
      <xsd:sequence>
         <xsd:element name="procedureCode" type="S1AP-CommonDataTypes:ProcedureCode"/>
         <xsd:element name="criticality" type="S1AP-CommonDataTypes:Criticality"/>
         <xsd:element name="value" type="asn1:OpenType"/>
      </xsd:sequence>
   </xsd:complexType>

</xsd:schema>

看起来您使用了中的一个免费工具来转换某些数据。我相信当您打算使用他们的ASN2XML工具时,您使用了他们的工具ASN2XSD。XSD工具生成一个描述文档,就像您在问题中显示的文档一样,它帮助另一个工具格式化和描述您的数据,而这不是您想要的


如果您从上面的第一个链接使用他们的ASN2XML工具来转换ASN.1数据,它将在不丢失任何数据的情况下生成所需的XML输出。然后,您可以使用Perl的XML工具来解析该数据。

看起来您使用了中的一个免费工具来转换某些数据。我相信当您打算使用他们的ASN2XML工具时,您使用了他们的工具ASN2XSD。XSD工具生成一个描述文档,就像您在问题中显示的文档一样,它帮助另一个工具格式化和描述您的数据,而这不是您想要的


如果您从上面的第一个链接使用他们的ASN2XML工具来转换ASN.1数据,它将在不丢失任何数据的情况下生成所需的XML输出。然后,您可以使用Perl的XML工具来解析数据。

有一个java工具,您可以通过谷歌来尝试。有一个java工具,您可以通过谷歌来尝试。我还想补充一点,IBM有另一个好的ASN.1到XML转换工具:我还想补充一点,IBM有另一个好的ASN.1到XML转换工具: