• 根据xml生成相应的对象类


    根据xml生成相应的class对象,听起来很难其实很简单,用xsd.exe就能办到

    打开vs 命令行运行xsd.exe 你的xml文件地址 空格/outputdir:存放xsd的地址 

    ok,这是生成了xsd文件

    然后再运行xsd.exe xsd文件地址 空格/classes /outputdir:class地址

    具体参数

    xsd file.xdr [/outputdir:directory][/parameters:file.xml]
    xsd file.xml [/outputdir:directory] [/parameters:file.xml]
    xsd file.xsd {/classes | /dataset} [/element:element] 
                 [/enableLinqDataSet] [/language:language] 
                              [/namespace:namespace] [/outputdir:directory] [URI:uri] 
                              [/parameters:file.xml]
    xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename [...]][/parameters:file.xml]


    这个不是重点,重点是生成的calss能不也能用,也就是能不能序列化和反序列化并且与原数据没任何差错

    如果你的xml很简单,那么反序列或序列化肯定不会出什么错,但是如果是特别复杂的xml那一定会报错,一般报的都是无法将类型a[]转换为类型类型a,或者反过来!
    解决方案

    不讲什么原理之类的,只讲怎么操作,其实原理我也不太懂,只是一个感觉。估计这就是只可意会不可言传吧!
    这里讲的是反序列化,如果这个对象能反序列了,那序列就不用说了吧
    错误无法将类型a[]转换位类型a
    这个就是说你的本类(它应该说是描述xml的类)也就是你生成的类与xml数据不一致,是生成类的数组不对了(具体也说不清,改的时候在对照xml的结构就能悟出一二了),把它改成类型a就行了
    错误无法将类型a转换位类型a[]
    这个就是说xml映射的类与你
    (它应该说是描述xml的类)生成的类的属性描述不一致所以它识别不了(具体也说不清,改的时候在对照xml的结构就能悟出一二了)
    ,所以你要将typeof里的改成a[]
    这样就ok了
    欢迎指导---------------------------------------------------------------------

     
     
  • 相关阅读:
    虚拟主机的陷阱
    http://www.xmenglish.com/(外贸知识网站)
    Highlight Table Row
    让你从电脑维修新手到高手
    Flash 视频教程
    ASP Comparison Operators Logical Operators
    Linux 虚拟机 NAT方式上网设置
    vim技巧
    25 条 SSH 命令和技巧
    linux下添加路由的方法
  • 原文地址:https://www.cnblogs.com/weiwin/p/xmltoclass.html
Copyright © 2020-2023  润新知