Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中使用xsd模式将数据写入xml文件#_C#_Xml_Xml Serialization_Xsd - Fatal编程技术网

C# 在c中使用xsd模式将数据写入xml文件#

C# 在c中使用xsd模式将数据写入xml文件#,c#,xml,xml-serialization,xsd,C#,Xml,Xml Serialization,Xsd,我不熟悉使用xml模式 我已经设法使用xsd.exe为我的模式创建了一个类,并且我已经设法生成了以下代码 static void Main(string[] args) { var MarketDeclaration_detail = new TransactionsPalletsPalletMarketDeclaration { Set = "", Declaration = "" }; var MarketDeclaration_class = new Transaction

我不熟悉使用xml模式

我已经设法使用xsd.exe为我的模式创建了一个类,并且我已经设法生成了以下代码

static void Main(string[] args)
{
    var MarketDeclaration_detail = new TransactionsPalletsPalletMarketDeclaration { Set = "", Declaration = "" };
    var MarketDeclaration_class = new TransactionsPalletsPalletMarketDeclaration[] { MarketDeclaration_detail };

    var PalletLine_detail = new TransactionsPalletsPalletPalletLine { ProductLineNo = "", Quantity = "" };
    var PalletLine_class = new TransactionsPalletsPalletPalletLine[] { PalletLine_detail };

    var pallet_detail = new TransactionsPalletsPallet { AccreditDate = "", Available = "", Customer = "", MarketDeclaration = MarketDeclaration_class, MixedPltIndicator = "",
                                                        PalletLine = PalletLine_class, PalletNo = "", PalletType = "", PartPltIndicator = "", PltSubmisProfile = "", SLOC = "", Status = "", StorageType = "",
                                                        Trader = "", TransferInNo = "", TransferOutNo = "", TransferOutOrder = "", TransferOutOrderLine = ""};

    var pallet_class = new TransactionsPalletsPallet[] { pallet_detail };

    var Materials_detail = new TransactionsReferencesMaterialsMaterial { MaterialNo = "", Trader = "", Brand = "", Variety = "", Size = "", Pack = "", GrowingMethod = "", Grade = "", PackTreatment = "", MarketAttribute = "", Count =""};
    var Materials_class = new TransactionsReferencesMaterialsMaterial[] { Materials_detail };

    var ProductLines_detail = new TransactionsReferencesProductLinesProductLine { ColourBand = "", Customer = "", ExpiryDate = "", Grower = "", HarvestDate = "", MaterialNo = "", MgmtArea = "", Owner = "", 
                                                                                  PackDate = "", Packer = "", PackWeight = "", ProblemRisk = "", ProductionProgram = "", ProductLineNo = "", RPIN = "", Run = "", 
                                                                                  SGContract = "", SGContractLine = "", Subdivision = "", SubmisProfile = "", SupplyGroup = "", Trader = ""};
    var ProductLines_class = new TransactionsReferencesProductLinesProductLine[] { ProductLines_detail };

    var TransfersOut_detail = new TransactionsReferencesTransfersOutTransfer { CarrierID = "", ContainerNo = "", DestinationPort = "", DischargePort = "", DispatchDate = "", DispatchTime = "", ETA = "", From = "", LoadPort = "", ReleaseNo = "",
                                                                               SealNo = "", Temperature1 = "", Temperature2 = "", TempLogger = "", To = "", TransferNo = "", TransferRef = "", TruckID = "", Vessel = "", Voyage = ""};
    // var TransfersOut_class = new TransactionsReferencesTransfersOutTransfer[] { TransfersOut_detail };
    TransfersOut();

    var references_detail = new TransactionsReferences { Materials = Materials_class, ProductLines = ProductLines_class, TransfersOut = TransfersOut_class };
    var references_class = new TransactionsReferences[] { references_detail };

    var data1 = new Transactions { Pallets = pallet_class, References = references_class, Serialnumber = "", Timestamp = "" };

    var serializer1 = new XmlSerializer(typeof(Transactions));

    using (var stream1 = new StreamWriter("C:\\Dave\\xml\\djb2.xml"))
        serializer1.Serialize(stream1,data1);
}

public static TransactionsReferencesTransfersOutTransfer[] TransfersOut_class;

public static void TransfersOut()
{
    TransactionsReferencesTransfersOutTransfer[] TransfersOut_detail1 = new TransactionsReferencesTransfersOutTransfer[3];            

    for (int i = 0; i < 3; i++)
    {
       TransfersOut_detail1[i] = new TransactionsReferencesTransfersOutTransfer { CarrierID = Convert.ToString(i) };

       TransfersOut_class = new TransactionsReferencesTransfersOutTransfer[] { TransfersOut_detail1[0], TransfersOut_detail1[1], TransfersOut_detail1[2] };
    }
}
static void Main(字符串[]args)
{
var MarketDeclaration_detail=新交易palletspalletmarketdeclaration{Set=”“,Declaration=”“};
var MarketDeclaration_class=新交易PalletspalletMarketDeclaration[]{MarketDeclaration_detail};
var PalletLine_detail=新交易palletspalletpalletline{ProductLineNo=“”,Quantity=“”};
var PalletLine_class=新交易palletspalletpalletline[]{PalletLine_detail};
var pallet_detail=新交易PalletsPallet{AccreditDate=“”,Available=“”,Customer=“”,MarketDeclaration=MarketDeclaration_类,MixedPltIndicator=“”,
PalletLine=PalletLine_类,PalletNo=“”,PalletType=“”,PartPltIndicator=“”,PltSubmisProfile=“”,SLOC=“”,Status=“”,StorageType=“”,
Trader=“”、TransferInNo=“”、TransferOutNo=“”、TransferOutOrder=“”、TransferOutOrderLine=“”};
var pallet_class=新事务处理palletspallet[]{pallet_detail};
var Materials_detail=新交易参考Materials Materials{MaterialNo=“”,Trader=“”,Brand=“”,Variety=“”,Size=“”,Pack=“”,GrowingMethod=“”,Grade=“”,packtreating=“”,MarketAttribute=“”,Count=“”);
var Materials_class=新交易参考MaterialsMaterials[]{Materials_detail};
var ProductLines_detail=新交易参考ProductLines产品线{colorband=“”,Customer=“”,ExpiryDate=“”,Grower=“”,HarvestDate=“”,MaterialNo=“”,mgmtrea=“”,Owner=“”,
PackDate=“”、Packer=“”、PackWeight=“”、ProblemRisk=“”、ProductionProgram=“”、ProductLineNo=“”、RPIN=“”、Run=“”,
SGContract=“”、SGContractLine=“”、Subsection=“”、SubmisProfile=“”、SupplyGroup=“”、Trader=“”);
var ProductLines_class=新事务引用ProductlinesProductline[]{ProductLines_detail};
var TransfersOut_detail=新交易参考transfersouttransfer{CarrierID=”,ContainerNo=”,DestinationPort=”,DischargePort=”,DispatchDate=”,DispatchTime=”,ETA=”,From=”,LoadPort=”,ReleaseNo=”,
SealNo=“”、Temperature1=“”、Temperature2=“”、TempLogger=“”、To=“”、TransferNo=“”、TransferRef=“”、TruckID=“”、船只=“”、航程=“”);
//var TransfersOut_class=新事务引用transfersouttransfer[]{TransfersOut_detail};
TransfersOut();
var references\u detail=newtransactionreferences{Materials=Materials\u class,ProductLines=ProductLines\u class,TransfersOut=TransfersOut\u class};
var references_class=新事务引用[]{references_detail};
var data1=新交易{货盘=货盘\类别,参考资料=参考资料\类别,Serialnumber=“”,Timestamp=“”};
var serializer1=新的XmlSerializer(typeof(Transactions));
使用(var stream1=newstreamwriter(“C:\\Dave\\xml\\djb2.xml”))
serializer1.序列化(stream1,data1);
}
公共静态事务引用TransferSoutTransfer[]TransfersOut_类;
公共静态void TransfersOut()
{
TransactionReferencesTransferSoutTransfer[]TransfersOut_detail1=新的TransactionReferencesTransferSoutTransfer[3];
对于(int i=0;i<3;i++)
{
TransfersOut_detail1[i]=新事务引用TransferSoutTransfer{CarrierID=Convert.ToString(i)};
TransfersOut_class=新事务引用TransfersOut Transfer[]{TransfersOut_detail1[0],TransfersOut_detail1[1],TransfersOut_detail1[2]};
}
}
一切正常

问题是

使用TransfersOut方法,我将for循环的限制设置为3,正如使用TransferOut\u细节一样。然而,在从数据库返回数据之前,我不知道会有多少。3作为试验

我不确定如何编写此代码,因此我将使所有行返回/写入XML文件

如有任何想法/帮助,将不胜感激


我确信我是否以最好的方式编写了此代码。

好的。我弄错了,并且已经解决了这个问题,但是这产生了一个我正在尝试解决的新问题,这可能会产生一个关于对象引用的单独问题,而不是设置为对象的实例。

如果不知道您将在何处/如何读取数据,我们就无法回答。如果它来自一个数据库,你需要代码来连接到这个数据库并读取相关的表——一旦你这样做了,要创建的对象的数量将自动来自你检索的行数……是的,它将来自一个数据库。是的,我知道这会给我一个号码来代替我的测试3。我不知道的是如何替换这一行,我也知道这一行应该在for循环TransfersOut_class=newtransactionreferencetransfersouttransfer[]{TransfersOut_detail1[0],TransfersOut_detail1[1],TransfersOut_detail1[2]}之外;使用一行(多行)代码传递所有创建的对象