我有产生从XSD代码Xsd2Code问题。 该XSD看起来是这样的:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ns1="urn:oasis:names:specification:ubl:schema:xsd:CountryIdentificationCode-1.0"
xmlns:ns2="urn:oasis:names:specification:ubl:schema:xsd:LocationIdentificationCode-1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig.xsd" />
.......
</xs:schema>
I FET,当我试图序列生成的类的实例的错误:
"Cannot serialize object of type 'MyXSD.SignatureValueType'.
Consider changing type of XmlText member 'MyXSD.SignatureValueType.Value' from System.Byte[] to string or string array."
错误发生在这里:
[System.Xml.Serialization.XmlTextAttribute(DataType = "base64Binary")]
public byte[] Value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
事件如果我更改属性:
[System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
..我得到其他错误:
Type of choice identifier 'ItemsElementName' is inconsistent with type of 'Items'.
Please use array of System.Collections.Generic.List`1[[MyXSD.ItemsChoiceType2, MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].
有没有人成功地使用Xsd2Code与XMLDSIG? 如果可能的话我宁愿用Xsd2Code发电机,而不是手动解决此问题。 是否有任何其他的选择吗?