command.xsd是什么xsd文件作用

XML 架构定义工具 (Xsd.exe)
XML 架构定义工具 (Xsd.exe)
XML 架构定义工具 (Xsd.exe)
XML 架构定义 (Xsd.exe) 工具从 XDR、XML 和 XSD 文件或者从运行时程序集中的类生成 XML 架构或公共语言运行时类。
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]
file.extension
指定要转换的输入文件。
必须将扩展名指定为下列之一:.xdr、.xml、.xsd、.dll 或 .exe。
如果指定一个 XDR 架构文件(.xdr 扩展名),则 Xsd.exe 将 XDR 架构转换为 XSD 架构。
输出文件与 XDR 架构同名,但扩展名为 .xsd。
如果指定一个 XML 文件(.xml 扩展名),则 Xsd.exe 从文件中的数据推导出架构并产生一个 XSD 架构。
输出文件与 XML 文件同名,但扩展名为 .xsd。
如果指定一个 XML 架构文件(.xsd 扩展名),则 Xsd.exe 将为对应于 XML 架构的运行时对象生成源代码。
如果指定一个运行时程序集文件(.exe 或 .dll 扩展名),则 Xsd.exe 为该程序集中的一个或多个类型生成架构。
可以使用 /type 选项来指定为其生成架构的类型。
输出架构被命名为 schema0.xsd、schema1.xsd,依此类推。
仅当给定类型使用 XMLRoot 自定义特性指定命名空间时,Xsd.exe 才生成多个架构。
显示该工具的命令语法和选项。
/o[utputdir]:directory
指定输出文件的目录。
此参数只能出现一次。
默认为当前目录。
显示该工具的命令语法和选项。
/P[arameters]:file.xml
从指定的 .xml 文件读取各种操作模式的选项。
缩写形式为“/p:”。
有关更多信息,请参见下面的“备注”部分。
必须为 xsd 文件仅指定下列选项中的一个。
/c[lasses]
生成与指定架构相对应的类。
若要将 XML 数据读入对象,请使用
/d[ataset]
生成一个从 DataSet 派生的类,该类与指定的架构相对应。
若要将 XML 数据读入派生类,请使用
还可以为 .xsd 文件指定下列任何选项。
/e[lement]:element
指定架构中要为其生成代码的元素。
默认情况下,键入所有元素。
可以多次指定该参数。
/enableDataBinding
在所有生成的类型上实现 INotifyPropertyChanged 接口以启用数据绑定。
缩写形式为“/edb”。
/enableLinqDataSet
(缩写形式:/eld。)指定可使用 LINQ to DataSet 查询的生成的数据集。
此选项在同时指定 /dataset 选项的情况下使用。
有关详细信息,请参阅
有关使用 LINQ 的常规信息,请参见
生成字段,而不是生成属性。
默认情况下生成属性。
/l[anguage]:language
指定要使用的编程语言。
从 CS(默认情况下为 C#)、VB (Visual Basic)、JS (JScript) 或 VJS (Visual J#) 中进行选择。
也可指定实现 CodeDomProvider 的类的完全限定名
/n[amespace]:namespace
为生成的类型指定运行时命名空间。
默认命名空间为 Schemas。
取消显示版权标志。
在所有粒子成员上生成显式顺序标识符。
/o[ut]:directoryName
指定用来放置文件的输出目录。
默认为当前目录。
/u[ri]:uri
为架构中要为其生成代码的元素指定 URI。
该 URI(如果存在)应用于使用 /element 选项指定的所有元素。
/t[ype]:typename
指定要为其创建架构的类型的名称。
可以指定多个类型参数。
如果 typename 不指定一个命名空间,则 Xsd.exe 将程序集中的所有类型与指定类型相匹配。
如果 typename 指定一个命名空间,则仅匹配那个类型。
如果 typename 以星号字符 (*) 结尾,则此工具匹配所有以 * 前的字符串开头的类型。
如果省略 /type 选项,则 Xsd.exe 为程序集中的所有类型生成架构。
下表显示了 Xsd.exe 执行的操作。
XDR 到 XSD
使用精简 XML 数据架构文件生成 XML 架构。
XDR 为早期基于 XML 的架构格式。
XML 到 XSD
使用 XML 文件生成 XML 架构。
XSD 到 DataSet
使用 XSD 架构文件生成公共语言运行时 DataSet 类。
生成的类为规则 XML 数据提供复杂对象模型。
使用 XSD 架构文件生成运行时类。
生成的类可以与 XmlSerializer 一起使用,来读写遵循该架构的 XML 代码。
使用运行时程序集文件中的一个或多个类型生成 XML 架构。
生成的架构定义了 System.Xml.Serialization.XmlSerializer 使用的 XML 格式。
Xsd.exe 只允许操作遵循由万维网联合会 (W3C) 提议的 XML 架构定义 (XSD) 语言的 XML 架构。
有关 XML 架构定义提议或 XML 标准的更多信息,请参见 http://w3.org。
通过使用 /parameters 开关,可指定设置各种选项的单个 XML 文件。
可设置的选项取决于您如何使用 XSD.exe 工具。
选择包括生成架构、生成代码文件,或生成包含 DataSet 功能的代码文件。
例如,生成架构时可将 &assembly& 元素设置为可执行文件 (.exe) 或类库文件 (.dll) 的名称,但生成代码文件时则不能。
下面的 XML 演示如何将 &generateSchemas& 元素用于指定的可执行文件:
&!-- This is in a file named GenerateSchemas.xml. --&
&xsd xmlns='/dotnet/tools/xsd/'&
&generateSchemas&
&assembly&ConsoleApplication1.exe&/assembly&
&/generateSchemas&
如果前面的 XML 包含在名为 GenerateSchemas.xml 的文件中,则通过在命令提示处键入下面的内容并按 Enter 使用 /parameters 开关:
xsd /p:GenerateSchemas.xml
另外,如果为程序集中的单个类型生成架构,则可以使用下面的 XML:
&!-- This is in a file named GenerateSchemaFromType.xml. --&
&xsd xmlns='/dotnet/tools/xsd/'&
&generateSchemas&
&type&IDItems&/type&
&/generateSchemas&
但是若要使用上面的代码,您还必须在命令提示处提供程序集的名称。
在命令提示处键入下面的内容(假设 XML 文件名为 GenerateSchemaFromType.xml):
xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe
必须为 &generateSchemas& 元素仅指定以下选项中的一个。
&assembly&
指定将从中生成架构的程序集。
指定程序集中找到的要为其生成架构的类型。
指定要为其生成架构的 XML 文件。
指定要为其生成架构的 XDR 文件。
若要生成代码文件,请使用 &generateClasses& 元素。
下面的示例生成一个代码文件。
请注意,另外还显示了两个特性,它们允许您为生成的文件设置编程语言和命名空间。
&xsd xmlns='/dotnet/tools/xsd/'&
&generateClasses language='VB' namespace='Microsoft.Serialization.Examples'/&
&!-- You must supply an .xsd file when typing in the command line.--&
&!-- For example: xsd /p:genClasses mySchema.xsd --&
可为 &generateClasses& 元素设置以下选项。
指定 .xsd 文件中要为其生成代码的元素。
&schemaImporterExtensions&
指定派生自 SchemaImporterExtension 类的类型。
指定要为其生成代码的 XML 架构文件。
可使用多个 &schema& 元素指定多个 XML 架构文件。
下表显示也可用于 &generateClasses& 元素的特性。
指定要使用的编程语言。
从 CS(默认情况下为 C#)、VB (Visual Basic)、JS (JScript) 或 VJS (Visual J#) 中进行选择。
也可指定实现 CodeDomProvider 的类的完全限定名。
为生成的代码指定命名空间。
命名空间必须符合 CLR 标准(例如,没有空格或反斜杠字符)。
以下值之一:none、properties(生成属性而不是公共字段)、order 或 enableDataBinding(请参见前面“XSD 文件选项”一节的 /order 和 /enableDataBinding 开关)。
使用 &generateDataSets& 元素还可以控制如何生成 DataSet 代码。
下面的 XML 指定生成的代码使用 DataSet 结构(如 DataTable 类)为指定元素创建 Visual Basic 代码。
生成的数据集结构将支持 LINQ 查询。
&xsd xmlns='/dotnet/tools/xsd/'&&generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'&&/generateDataSet&&/xsd&
可为 &generateDataSet& 元素设置以下选项。
指定要为其生成代码的 XML 架构文件。
可使用多个 &schema& 元素指定多个 XML 架构文件。
下表显示可与 &generateDataSet& 元素一起使用的特性。
enableLinqDataSet
指定可使用 LINQ to DataSet 查询的生成的数据集。
默认值为 False。
指定要使用的编程语言。
从 CS(默认情况下为 C#)、VB (Visual Basic)、JS (JScript) 或 VJS (Visual J#) 中进行选择。
也可指定实现 CodeDomProvider 的类的完全限定名。
为生成的代码指定命名空间。
命名空间必须符合 CLR 标准(例如,没有空格或反斜杠字符)。
有些特性可在顶级 &xsd& 元素上设置。
这些选项可用于任何子元素(&generateSchemas&、&generateClasses& 或 &generateDataSet&)。
下面的 XML 代码在名为“MyOutputDirectory”的输出目录中为名为“IDItems”的元素生成代码。
&xsd xmlns='/dotnet/tools/xsd/' output='MyOutputDirectory'&
&generateClasses&
&element&IDItems&/element&
&/generateClasses&
下表显示也可用于 &xsd& 元素的特性。
将放置生成的架构或代码文件的目录的名称。
取消显示版权标志。
设置为 true 或 false。
显示该工具的命令语法和选项。
设置为 true 或 false。
下面的命令从 myFile.xdr 生成一个 XML 架构并将它保存到当前目录中。
xsd myFile.xdr
下面的命令从 myFile.xml 生成一个 XML 架构并将它保存到指定目录中。
xsd myFile.xml /outputdir:myOutputDir
下面的命令生成一个与 C# 语言中的指定架构相对应的数据集,并在当前目录中将其保存为 XSDSchemaFile.cs。
xsd /dataset /language:CS XSDSchemaFile.xsd
下面的命令为程序集 myAssembly.dll 中的所有类型生成 XML 架构,并在当前目录中将它们保存为 schema0.xsd。
xsd myAssembly.dll
XmlSerializer
您对此内容的反馈非常重要。请告诉我们您的想法。
更多反馈?
1500 个剩余字符
我们非常感谢您的反馈。
开发人员中心
Microsoft 正在进行一项网上调查,以了解您对 网站的意见。如果您选择参加,我们将会在您离开 网站时向您显示该网上调查。是否要参加?用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1473)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_083067',
blogTitle:'.NET中,修改DateSet.xsd数据集中TableAdapter的超时设置的方法',
blogAbstract:'不大喜欢写编程经验类文章,但这个问题在网上有很多错误答案,所以在这里写一写,以帮助一下遇到同样问题的同行.\r\n在平时的开发中,我一直喜欢用XSD数据集来管理数据库,而不喜欢直接用SQL命令,因为用XSD可以节省大量时间,引用时也非常方便.\r\n但是,最近在开发一个涉及海量数据的软件时,却遇到了SQL查询超时的问题,一查询,就提示超时错误.\r\n由于XSD文件中默认的TableAdapter的CommandTimeOut设置为30,当数据量达到十万级时,这个30秒的设置就太短了.\r\n尝试了修改TableAdapter.Connection.ConnectionTimeout的值(或直接在程序设置My.Setting中修改连接字符串),不起作用,后来一查,才知道,这个是尝试连接时的超时,与命令执行时的CommandTimeOut是两回事.',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:2,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}下次自动登录
现在的位置:
& 综合 & 正文
使用XSD编写具有智能提示的XML文件(以SQL-MAP脚本为实例)
SQL-MAP是PDF.NET(PWMIS数据开发框架)具有特色的开发技术,它可以将SQL语句映射成DAL,而且能够做到无需IDAL和DalFactory自动切换数据库到另外一个数据库系统,比如SqlServer切换到Oralcle,有关SQL-MAP的规范,为什么要使用这种技术,请看“ ”。
从上面的规范看到,要手写一个SQL-MAP文件还是比较复杂,虽然框架提供了SQL-MAP配置文件管理器,但它主要适用于新手使用,用起来效率不是很高,这个时候就需要有一个可以只能提示XML文件编写的东西了,这就是SqlMap.xsd,下面贴出该文件的最新完整内容:
SqlMap.XSD
&?xml version="1.0" encoding="utf-8" ?&&xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"&
&xs:simpleType name="enumCmdType" &
&xs:restriction base ="xs:string"&
&xs:enumeration value ="Text"&&/xs:enumeration&
&xs:enumeration value ="StoredProcedure"&&/xs:enumeration&
&xs:enumeration value ="Table"&&/xs:enumeration&
&/xs:restriction&
&/xs:simpleType&
&xs:simpleType name="enumResultClass" &
&xs:restriction base ="xs:string"&
&xs:enumeration value ="ValueType"&&/xs:enumeration&
&xs:enumeration value ="DataSet"&&/xs:enumeration&
&xs:enumeration value ="EntityObject"&&/xs:enumeration&
&xs:enumeration value ="EntityList"&&/xs:enumeration&
&/xs:restriction&
&/xs:simpleType&
&xs:simpleType name="enumScriptType" &
&xs:restriction base ="xs:string"&
&xs:enumeration value ="Access"&&/xs:enumeration&
&xs:enumeration value ="SqlServer"&&/xs:enumeration&
&xs:enumeration value ="SqlServerCe"&&/xs:enumeration&
&xs:enumeration value ="Oracle"&&/xs:enumeration&
&xs:enumeration value ="DB2"&&/xs:enumeration&
&xs:enumeration value ="Sysbase"&&/xs:enumeration&
&xs:enumeration value ="MySql"&&/xs:enumeration&
&xs:enumeration value ="SQLite"&&/xs:enumeration&
&xs:enumeration value ="PostgreSQL"&&/xs:enumeration&
&xs:enumeration value ="UNKNOWN"&&/xs:enumeration&
&/xs:restriction&
&/xs:simpleType&
&xs:element name="SqlMap"&
&xs:complexType&
&xs:sequence&
&xs:element maxOccurs="unbounded" name="Script"&
&xs:complexType&
&xs:sequence&
&xs:element maxOccurs="unbounded" name="CommandClass"&
&xs:complexType&
&xs:sequence&
&xs:choice maxOccurs="unbounded"&
&xs:element maxOccurs="unbounded" name="Select"&
&xs:complexType&
&xs:simpleContent&
&xs:extension base="xs:string"&
&xs:attribute name="CommandName" type="xs:string" use="required" /&
&xs:attribute name="CommandType" type="enumCmdType" use="required" /&
&xs:attribute name="Method" type="xs:string" use="required" /&
&xs:attribute name="Description" type="xs:string" use="required" /&
&xs:attribute name="ResultClass" type="enumResultClass" use="optional"
default="DataSet"/&
&xs:attribute name="ResultMap" type="xs:string" use="optional" /&
&xs:attribute name="SqlPage" type="xs:string" use="optional" default="False"/&
&/xs:extension&
&/xs:simpleContent&
&/xs:complexType&
&/xs:element&
&xs:element name="Insert"&
&xs:complexType&
&xs:simpleContent&
&xs:extension base="xs:string"&
&xs:attribute name="CommandName" type="xs:string" use="required" /&
&xs:attribute name="CommandType" type="enumCmdType" use="required" /&
&xs:attribute name="Method" type="xs:string" use="required" /&
&xs:attribute name="Description" type="xs:string" use="required" /&
&/xs:extension&
&/xs:simpleContent&
&/xs:complexType&
&/xs:element&
&xs:element name="Update"&
&xs:complexType&
&xs:simpleContent&
&xs:extension base="xs:string"&
&xs:attribute name="CommandName" type="xs:string" use="required" /&
&xs:attribute name="CommandType" type="enumCmdType" use="required" /&
&xs:attribute name="Method" type="xs:string" use="required" /&
&xs:attribute name="Description" type="xs:string" use="required" /&
&/xs:extension&
&/xs:simpleContent&
&/xs:complexType&
&/xs:element&
&xs:element name="Delete"&
&xs:complexType&
&xs:simpleContent&
&xs:extension base="xs:string"&
&xs:attribute name="CommandName" type="xs:string" use="required" /&
&xs:attribute name="CommandType" type="enumCmdType" use="required" /&
&xs:attribute name="Method" type="xs:string" use="required" /&
&xs:attribute name="Description" type="xs:string" use="required" /&
&/xs:extension&
&/xs:simpleContent&
&/xs:complexType&
&/xs:element&
&/xs:choice&
&/xs:sequence&
&xs:attribute name="Name" type="xs:string" use="required" /&
&xs:attribute name="Class" type="xs:string" use="required" /&
&xs:attribute name="Interface" type="xs:string" use="optional" /&
&xs:attribute name="Description" type="xs:string" use="required" /&
&/xs:complexType&
&/xs:element&
&/xs:sequence&
&xs:attribute name="Type" type="enumScriptType" use="required"
&xs:attribute name="Version" type="xs:string" use="optional" /&
&xs:attribute name="ConnectionString" type="xs:string" use="optional" /&
&/xs:complexType&
&/xs:element&
&/xs:sequence&
&xs:attribute name="EmbedAssemblySource" type="xs:string" use="optional" /&
&/xs:complexType&
&/xs:element&&/xs:schema&
注意文件中的simpleType ,它表示定义一个自定义的简单类型,在XSD文件的节点中使用 type 属性来引用它即可。
本文中定义了三个自定义类型enumCmdType,enumResultClass,enumScriptType ,而且是枚举类型(使用xs:enumeration 定义),这样在XML文件中就可以出现“下拉选择”的提示效果了。
在节点属性中,use="required" 表示必须的属性,use="optional"
表示可选的属性。
整个XSD文件的编写要注意的也就这么多,编写起来还是比较简单的。
有了这个XSD文件,在建立的Sql-Map配置文件的&sqlmap& 标签中,加入这个XSD的使用声明,就能够看到智能提示的效果了。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="SqlMap.xsd"&&!-- 在下面敲入尖括号,就能够出现当前节点区域内的应该编写的内容,来试试吧 --&
有了这个SqlMap.config文件,就能够使用代码生成器自动生成DAL代码了。
PDF.NET代码生成器(包含框架应用的完整示例),下载后请看里面的说明。
如果的数据库无法打开,请看看连接字符串是否正确,或者将它附加到SQLSERVER实例上:
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=~\App_Data\PDFTest.Integrated Security=TConnect Timeout=30;User Instance=True"
下载完成后,将本文的SqlMap.xsd内容复制下来另存为文件即可,注意文件目录,如果该XSD文件跟SqlMap.config文件不在同一个,需要修改下面的路径:
xsi:noNamespaceSchemaLocation="SqlMap.xsd"
有关PDF.NET框架的详细内容,请看我的博客相关内容或者查看官网:
&&&&推荐文章:
【上篇】【下篇】水晶报表(winform)怎么设置数据源为一dataset(可以是动态生成的吗?还是必需是一个.xsd文件)
[问题点数:0分]
水晶报表(winform)怎么设置数据源为一dataset(可以是动态生成的吗?还是必需是一个.xsd文件)
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 xsd文件作用 的文章

 

随机推荐