छोड़ें मुझे मेरी एक्सएमएल फाइलों के deserialization के साथ एक समस्या है। आइए देखें कि हमारे पास एक XML फ़ाइल और एक कक्षा है जिसे हम deserialization के लिए उपयोग कर रहे हैं।XmlSerializer। एक्सएमएल अज्ञात नोड
उदाहरण के लिए:
एक्सएमएल -
<dataStore>
<name>newDataStore1</name>
<description>sdffasdfasdf</description>
<type>Shapefile</type>
<enabled>false</enabled>
<workspace>
<name>newTestWorkspace</name>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="ht
tp://192.168.6.71:8080/geoserver/rest/workspaces/newTestWorkspace.xml" type="app
lication/xml"/>
</workspace>
<connectionParameters>
<entry key="memory mapped buffer">false</entry>
<entry key="create spatial index">true</entry>
<entry key="charset">ISO-8859-1</entry>
<entry key="filetype">shapefile</entry>
<entry key="cache and reuse memory maps">true</entry>
<entry key="url">file:data/shapefiles/states.shp</entry>
<entry key="namespace">http://www.opengeospatial.net/cite</entry>
</connectionParameters>
<__default>false</__default>
<featureTypes>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="ht
tp://192.168.6.71:8080/geoserver/rest/workspaces/newTestWorkspace/datastores/new
DataStore1/featuretypes.xml" type="application/xml"/>
</featureTypes>
</dataStore>
कक्षा
namespace GeoServerApiTester
{
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlRootAttribute("dataStore", Namespace="", IsNullable=false)]
public partial class DataStore
{
private string nameField;
private string typeField;
private bool enabledField;
private WorkSpacePreview workspaceField;
private ConnectionParametersStorageEntryCollection connectionParametersField;
private string @__defaultField;
private LinkCollection featureTypesField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0, ElementName="name")]
public string Name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1, ElementName="type")]
public string Type
{
get
{
return this.typeField;
}
set
{
this.typeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2, ElementName="enabled")]
public bool Enabled
{
get
{
return this.enabledField;
}
set
{
this.enabledField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=3, ElementName="workspace")]
public WorkSpacePreview Workspace
{
get
{
return this.workspaceField;
}
set
{
this.workspaceField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(Order=4, ElementName="connectionParameters")]
[System.Xml.Serialization.XmlArrayItemAttribute("entry", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
public ConnectionParametersStorageEntryCollection ConnectionParameters
{
get
{
return this.connectionParametersField;
}
set
{
this.connectionParametersField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)]
public string @__default
{
get
{
return [email protected]__defaultField;
}
set
{
[email protected]__defaultField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayAttribute(Order=6, ElementName="featureTypes")]
[System.Xml.Serialization.XmlArrayItemAttribute("link", Namespace="http://www.w3.org/2005/Atom", IsNullable=false)]
public LinkCollection FeatureTypes
{
get
{
return this.featureTypesField;
}
set
{
this.featureTypesField = value;
}
}
public virtual bool ShouldSerializeConnectionParameters()
{
return ((this.ConnectionParameters != null)
&& (this.ConnectionParameters.Count > 0));
}
public virtual bool ShouldSerializeFeatureTypes()
{
return ((this.FeatureTypes != null)
&& (this.FeatureTypes.Count > 0));
}
}
}
आप देख सकते हैं कि वर्ग वर्णन क्षेत्र शामिल नहीं है।
<dataStore>
<name>newDataStore1</name>
<enabled>false</enabled>
</dataStore>
आप देख सकते हैं कि विवरण के बाद सभी तत्वों को deserialized नहीं किया गया था।
जब प्रोग्राम को एक्सएमएल सामग्री मिलती है और इस एक्सएमएल में एक तत्व होता है जो कक्षा में नहीं होता है तो इस तत्व के बाद सभी तत्वों को वांछित नहीं किया जाएगा।
मैं कैसे अक्रमांकन दौरान अज्ञात तत्व छोड़ सकते हैं और कुछ इस तरह प्राप्त कर सकते हैं:
<dataStore>
<name>newDataStore1</name>
<type>Shapefile</type>
<enabled>false</enabled>
<workspace>
<name>newTestWorkspace</name>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="ht
tp://192.168.6.71:8080/geoserver/rest/workspaces/newTestWorkspace.xml" type="app
lication/xml"/>
</workspace>
<connectionParameters>
<entry key="memory mapped buffer">false</entry>
<entry key="create spatial index">true</entry>
<entry key="charset">ISO-8859-1</entry>
<entry key="filetype">shapefile</entry>
<entry key="cache and reuse memory maps">true</entry>
<entry key="url">file:data/shapefiles/states.shp</entry>
<entry key="namespace">http://www.opengeospatial.net/cite</entry>
</connectionParameters>
<__default>false</__default>
<featureTypes>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="ht
tp://192.168.6.71:8080/geoserver/rest/workspaces/newTestWorkspace/datastores/new
DataStore1/featuretypes.xml" type="application/xml"/>
</featureTypes>
</dataStore>
केवल तत्व
यह आदेश केवल अक्रमांकन के लिए जिम्मेदार बताते हैं छोड़ करना संभव है? –