2011-06-23 123 views
7

我有2个XSD文件。使用XSD.exe从多个XSD模式生成c#类

一个XSD文件可以让ABC.xsd包含属于XML的元素。 另一个XSD文件可以说XYZ.xsd包含这些元素的定义。

现在ABC.XSD(容纳单元)架构标记与其他命名空间一起当我执行XSD.EXE到genereate我的C#类我们已经提到的schemaLocation以及

<xs:schema schemaLocation="XYZ.xsd"> 

。它正在生成类,但缺少来自XYZ.xsd的一些定义。

我执行

xsd.exe "ABC.xsd" "XYZ.xsd" /c 

任何帮助将是appreicate

编辑1: @Felice,在我XYZ.xsd我认定中这样

<xs:simpleType name="contactNumberType"> 
     <xs:annotation> 
      <xs:documentation>Contact phone or fax number with national or international format. Only numbers are allowed</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="\+?\p{N}{6,24}"/> 
     </xs:restriction> 
    </xs:simpleType> 

见这里定义的模式,它没有出现在C#类中。任何帮助。对不起,我是这个新手。 感谢你的回答工作

回答

3

只传递“main”xsd作为参数,确保另一个位于main的相同位置,并且它应该工作。

+0

我已经问题编辑。请参阅Edit1。请 – Shax

+0

@Shax的限制不会影响类,只是验证,在这里看到如何验证:http://stackoverflow.com/questions/6451519/how-to-use-xsd2code-generated-c-classes/6451593# 6451593 –

+0

对不起,我迷路了。我认为通过执行XSD.exe它会生成C#类,并将所有限制等作为C#代码的一部分。 – Shax