zoukankan      html  css  js  c++  java
  • 根据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了
    欢迎指导---------------------------------------------------------------------

     
     
  • 相关阅读:
    Python 使用gevent下载图片案例
    Python 使用gevent实现多任务
    Python 生成器
    Python 自己实现可迭代对象
    Python 遍历文件夹清理磁盘案例
    Python 多进程拷贝文件夹案例
    Python 多进程编程
    Python 多线程编程
    Python TCP通信之仿文件下载
    Python UDP 通信
  • 原文地址:https://www.cnblogs.com/weiwin/p/xmltoclass.html
Copyright © 2011-2022 走看看