无法从 XSD 文件创建 c# 类
Posted
技术标签:
【中文标题】无法从 XSD 文件创建 c# 类【英文标题】:Cannot create c# classes from XSD file 【发布时间】:2021-01-21 17:06:26 【问题描述】:我有一些 XSD 架构文件,可以在 here 找到。它是名为 CR-27-EFK-xsd 的底部 zip 文件。当我尝试使用 Xsd2Code 为 ef15.xsd 文件创建类时,它给了我
错误:类型'http://www.icisnet.gr/emcs/v1.03/types:DateType' 不是 声明
如果我将其设置为自定义工具 MsDataSetGenerator 并将自定义工具运行到 XSD,这与我得到的错误相同。
如果我尝试从命令运行 xsd 工具 xsd ef15.xsd /c 它给了我一个错误
警告:无法验证架构。类生成可能会失败或产生不正确的结果。
错误:为架构“ef15”生成类时出错。
Λείπει ο τύπος δεδομένων(翻译自希腊缺失数据类型)'http://www.icisnet.gr/emcs/v1.03/tms:HeaderType'。
我在 *** 和其他网站的许多答案中发现,我必须将所有文件包含在同一目录中并在 xsd 命令中指定它们,所以我尝试了很多这样的组合
xsd ef15.xsd tms.xsd types.xsd doc.xsd /c
xsd doc.xsd types.xsd tms.xsd tcl.xsd ef15.xsd /c
还有许多其他组合,但我总是出错
错误:Το 'xsd' είναι ένα πρόθημα που δεν έχει δηλωθεί。 Γραμμή 313, θέση 8.(不知道怎么翻译成英文)
注意:在 ef15.xsd 中作为模式导入的所有文件与 ef15.xsd 位于同一文件夹中。 此外,所有需要的文件都在 ZIP 文件中。 doc.xsd、types.xsd、tml.xsd、tcl.xsd
有人可以帮帮我吗? xsd 文件有问题还是我做错了什么?
【问题讨论】:
【参考方案1】:xsd 有问题。我已经下载了 zip 并尝试将 ef15.xsd 打开到 Altova XMLspy 中,但它在导入的 types.xsd 上失败了。
问题出在 types.xsd 的这一部分
<!--==========================================================-->
<!--=== CarbonDioxideEmissionsType ===-->
<!--==========================================================-->
<xs:simpleType name="CarbonDioxideEmissionsType">
<xs:annotation>
<xs:documentation>
<doc:description value="Carbon Dioxide Emissions"/>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:maxLength value="3"/>
<xsd:pattern value="[0-9]1,3|-"/>
</xs:restriction>
</xs:simpleType>
<xsd:pattern value="[0-9]1,3|-"/>
未知,应改为<xs:pattern value="[0-9]1,3|-"/>
在此更改之后,EF15.xsd 在 altova 中有效。
【讨论】:
感谢这是创作的问题。以上是关于无法从 XSD 文件创建 c# 类的主要内容,如果未能解决你的问题,请参考以下文章