我目前有一個C#類,它是從XML模式生成的,用於獲取XML文件並更新數據庫中的值。如何使用XSD生成的C#類序列化/反序列化XML的單個元素
如果我堅持是需要被存儲在數據庫中作爲獨立的XML,我會那麼需要在運行時反序列化這些值(由於複雜性和多變性)之一。
是否有可能定義第二個C#類來處理這一個元素而不會干擾主類。
或者當它被重新保存以保存時,更改這個節點的名稱會簡單嗎?
編輯:我對缺乏語境表示歉意,已經很晚了,而且我正在出門。 XML文件用於爲不同的客戶端設置網頁表單驗證和定製,至少80%的模式是非常簡單的數據(使字段強制性,應用正則表達式,隱藏和顯示字段是一些示例)
我提到的複雜部分與多個字段之間的條件驗證有關。這裏的XML是什麼樣子的樣本:
<?xml version="1.0"?>
<Relationships>
<Relationship xsi:type="MutuallyExclusiveRelationship">
<Fields>
<Field Id="lineItemAfeNumber" IsInGrid="true"/>
<Field Id="lineItemCostCenter" IsInGrid="true"/>
</Fields>
</Relationship>
</Relationships>
<Fields>
<Field xsi:type="TextField" Id="invoiceNumber">
<ValidationRegex Value="^[0-9a-zA-Z\-]*$"/>
<ValidationRegexMessage Value="{0} must be alpha-numeric and can contain dashes."/>
<MaxLength Value="20"/>
</Field>
<Field xsi:type="TextField" Id="afeNumber">
<InputMask Value="aa999999"/>
<ValidationRegex Value="^[A-Za-z]{2}[0-9]{6}$"/>
<ValidationRegexMessage Value="{0} must be in the format AA999999."/>
</Field>
<Field xsi:type="TextField" Id="costCenter">
<ValidationRegex Value="^[a-zA-Z0-9]*$"/>
<ValidationRegexMessage Value="{0} must be alpha-numeric."/>
<MinLength Value="8"/>
<MaxLength Value="9"/>
</Field>
<Field xsi:type="TextField" Id="orderNumber">
<MinLength Value="1"/>
<MaxLength Value="12"/>
</Field>
<Field xsi:type="TextField" Id="generalLedgerCode">
<InputMask Value="9999.999"/>
<ValidationRegex Value="^[0-9]{4}\.[0-9]{3}$"/>
<ValidationRegexMessage Value="{0} must be in the format 0000.000."/>
</Field>
<Field xsi:type="TextField" Id="approverId">
<Label Value="Approver Code"/>
<MaxLength Value="10"/>
</Field>
<Field xsi:type="TextField" Id="leaseWell">
<Label Value="Location/UWI"/>
</Field>
<Field xsi:type="TextField" Id="poNumber">
<ValidationRegex Value="^[a-zA-Z0-9/-]*$"/>
<ValidationRegexMessage Value="{0} must be alpha-numeric and can contain '-'."/>
<MaxLength Value="12"/>
</Field>
<Field xsi:type="DropDownField" Id="currency">
<Label Value="Currency"/>
<DefaultValue Value="CAD"/>
<Values>
<DropDownValue Value="USD"/>
<DropDownValue Value="CAD"/>
</Values>
</Field>
<Field xsi:type="TextField" Id="remitToTax">
<Label Value="GST/HST #"/>
</Field>
<Field xsi:type="TextField" Id="detailsComment">
<Mandatory Value="false"/>
<MaxLength Value="40"/>
</Field>
<Field xsi:type="TextField" Id="newComment">
<MaxLength Value="40"/>
</Field>
<!-- Attachments -->
<Field xsi:type="TextField" Id="attachmentFileName">
<MandatoryMessage Value="Attachments are required."/>
</Field>
<Field xsi:type="DropDownField" Id="approverCompanyCode">
<Mandatory Value="true"/>
</Field>
<Field xsi:type="TextField" Id="recipientName">
<Mandatory Value="true"/>
</Field>
</Fields>
<Grids>
<Grid Id="invoiceDetailsTable">
<Fields>
<Field xsi:type="TextField" Id="lineItemDescription">
<MaxLength Value="40"/>
</Field>
<Field xsi:type="TextField" Id="lineItemAfeNumber">
<InputMask Value="aa999999"/>
<ValidationRegex Value="^[A-Za-z]{2}[0-9]{6}$"/>
<ValidationRegexMessage Value="{0} must be in the format AA999999."/>
</Field>
<Field xsi:type="TextField" Id="lineItemCostCenter">
<ValidationRegex Value="^[a-zA-Z0-9]*$"/>
<ValidationRegexMessage Value="{0} must be alpha-numeric."/>
<MinLength Value="8"/>
<MaxLength Value="9"/>
</Field>
<Field xsi:type="TextField" Id="lineItemOrderNumber">
<MinLength Value="1"/>
<MaxLength Value="12"/>
</Field>
<Field xsi:type="TextField" Id="lineItemLeaseWell">
<Label Value="Location/UWI"/>
<Mandatory Value="true"/>
</Field>
<Field xsi:type="TextField" Id="lineItemGlAccount">
<InputMask Value="9999.999"/>
<ValidationRegex Value="^[0-9]{4}\.[0-9]{3}$"/>
<ValidationRegexMessage Value="{0} must be in the format 0000.000."/>
</Field>
<Field xsi:type="TextField" Id="lineItemPoNumber">
<ValidationRegex Value="^[a-zA-Z0-9/-]*$"/>
<ValidationRegexMessage Value="{0} must be alpha-numeric and can contain '-'."/>
<MaxLength Value="12"/>
</Field>
</Fields>
</Grid>
</Grids>
這裏的關係,部分是我想有reserialized的一部分,這顯然是一個簡單的例子該部分可能是什麼,還有更多的未顯示的子元素。
缺乏上下文和代碼示例不作任何回答更容易,你知道這個問題嗎? – LightStriker