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了
    欢迎指导---------------------------------------------------------------------

     
     
  • 相关阅读:
    制作OSGB数据索引
    汤臣一品
    Python 库/模块的安装、查看
    ezdxf包下autocad的开发
    python3.7安装pylint
    航拍全景图补天
    电脑百科
    使用Excel批量提取文件名
    利用爬虫实现网上的图片自动下载
    MarkDown&思维导图
  • 原文地址:https://www.cnblogs.com/weiwin/p/xmltoclass.html
Copyright © 2011-2022 走看看