HP自动下载csharp代码并自动编译

#if _DYNAMIC_XMLSERIALIZER_COMPILATION
[assembly:System.Security.AllowPartiallyTrustedCallers()]
[assembly:System.Security.SecurityTransparent()]
#endif
[assembly:System.Reflection.AssemblyVersionAttribute("6.7.576.0")]
namespace Microsoft.Xml.Serialization.GeneratedAssembly {

    public class XmlSerializationWriterIOConfigDyn2 : System.Xml.Serialization.XmlSerializationWriter {

        public void Write43_IOConfigDyn(object o) {
            WriteStartDocument();
            if (o == null) {
                WriteEmptyTag(@"IOConfigDyn", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17");
                return;
            }
            TopLevelElement();
            Write42_IOConfigDyn2(@"IOConfigDyn", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17", ((global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2)o), false, false);
        }

        void Write42_IOConfigDyn2(string n, string ns, global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IOConfigDyn", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17");
            Write2_Version(@"Version", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.Version)o.@Version), false, false);
            {
                global::Com.HP.HPXML.DD.IOAdaptorConfig1[] a = (global::Com.HP.HPXML.DD.IOAdaptorConfig1[])o.@IOAdaptorConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write32_IOAdaptorConfig1(@"IOAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::Com.HP.HPXML.DD.IOAdaptorConfig1)a[ia]), false, false);
                    }
                }
            }
            Write34_HostDomainNameSettings(@"HostDomainNameSettings", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1", ((global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.HostDomainNameSettings)o.@HostDomainNameSettings), false, false);
            Write35_NetworkSettings(@"NetworkSettings", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1", ((global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.NetworkSettings)o.@NetworkSettings), false, false);
            {
                global::Com.HP.HPXML.DD.IOAdaptorConfig2[] a = (global::Com.HP.HPXML.DD.IOAdaptorConfig2[])o.@IOAdaptorConfig2;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write41_IOAdaptorConfig2(@"IOAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::Com.HP.HPXML.DD.IOAdaptorConfig2)a[ia]), false, false);
                    }
                }
            }
            WriteEndElement(o);
        }

        void Write41_IOAdaptorConfig2(string n, string ns, global::Com.HP.HPXML.DD.IOAdaptorConfig2 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig2)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IOAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06");
            {
                global::Com.HP.HPXML.DD.ApplicationConfig2[] a = (global::Com.HP.HPXML.DD.ApplicationConfig2[])o.@ApplicationConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write37_ApplicationConfig2(@"ApplicationConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::Com.HP.HPXML.DD.ApplicationConfig2)a[ia]), false, false);
                    }
                }
            }
            WriteElementString(@"DeviceConnectivityPortType", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@DeviceConnectivityPortType));
            Write12_DisconnectionTimeout(@"DisconnectionTimeout", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DisconnectionTimeout)o.@DisconnectionTimeout), false, false);
            Write40_NetworkAdaptorConfig2(@"NetworkAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::Com.HP.HPXML.DD.NetworkAdaptorConfig2)o.@NetworkAdaptorConfig), false, false);
            Write31_NetworkStatistics(@"NetworkStatistics", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.NetworkStatistics)o.@NetworkStatistics), false, false);
            if (o.@AutoIPSpecified) {
                WriteElementString(@"AutoIP", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@AutoIP)));
            }
            if (o.@BonjourSpecified) {
                WriteElementString(@"Bonjour", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@Bonjour)));
            }
            if (o.@BOOTPSpecified) {
                WriteElementString(@"BOOTP", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@BOOTP)));
            }
            if (o.@DHCPv4Specified) {
                WriteElementString(@"DHCPv4", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@DHCPv4)));
            }
            if (o.@DHCPv6Specified) {
                WriteElementString(@"DHCPv6", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@DHCPv6)));
            }
            if (o.@IPv4Specified) {
                WriteElementString(@"IPv4", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@IPv4)));
            }
            if (o.@IPv6Specified) {
                WriteElementString(@"IPv6", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@IPv6)));
            }
            if (o.@LPDSpecified) {
                WriteElementString(@"LPD", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@LPD)));
            }
            if (o.@LLMNRSpecified) {
                WriteElementString(@"LLMNR", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@LLMNR)));
            }
            if (o.@SLPSupportSpecified) {
                WriteElementString(@"SLPSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@SLPSupport)));
            }
            if (o.@SNMPSpecified) {
                WriteElementString(@"SNMP", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@SNMP)));
            }
            if (o.@WSDiscoverySpecified) {
                WriteElementString(@"WSDiscovery", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@WSDiscovery)));
            }
            WriteEndElement(o);
        }

        string Write7_EnableDisable(global::Com.HP.HPXML.DD.EnableDisable v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.EnableDisable.@enabled: s = @"enabled"; break;
                case global::Com.HP.HPXML.DD.EnableDisable.@disabled: s = @"disabled"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.EnableDisable");
            }
            return s;
        }

        void Write31_NetworkStatistics(string n, string ns, global::Com.HP.HPXML.DD.NetworkStatistics o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.NetworkStatistics)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"NetworkStatistics", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            if (o.@BadPacketsReceivedSpecified) {
                WriteElementStringRaw(@"BadPacketsReceived", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@BadPacketsReceived)));
            }
            if (o.@FramingErrorsReceivedSpecified) {
                WriteElementStringRaw(@"FramingErrorsReceived", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@FramingErrorsReceived)));
            }
            WriteElementStringRaw(@"TotalPacketsReceived", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@TotalPacketsReceived)));
            WriteElementStringRaw(@"TotalPacketsTransmitted", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@TotalPacketsTransmitted)));
            WriteElementStringRaw(@"TransmitCollisions", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@TransmitCollisions)));
            WriteElementStringRaw(@"TransmitLateCollisions", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@TransmitLateCollisions)));
            WriteElementStringRaw(@"TotalUnicastPacketsReceived", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@TotalUnicastPacketsReceived)));
            WriteElementStringRaw(@"UnsendablePackets", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@UnsendablePackets)));
            WriteEndElement(o);
        }

        void Write40_NetworkAdaptorConfig2(string n, string ns, global::Com.HP.HPXML.DD.NetworkAdaptorConfig2 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.NetworkAdaptorConfig2)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"NetworkAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06");
            Write2_Version(@"AdaptorFirmwareDateCode", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.Version)o.@AdaptorFirmwareDateCode), false, false);
            if (o.@AutomaticCrossOverModeSpecified) {
                WriteElementString(@"AutomaticCrossOverMode", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@AutomaticCrossOverMode)));
            }
            WriteElementString(@"BOOTP_DHCPv4SuppliedDomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@BOOTP_DHCPv4SuppliedDomainName));
            WriteElementString(@"BOOTP_DHCPv4SuppliedHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@BOOTP_DHCPv4SuppliedHostname));
            WriteElementString(@"CurrentHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@CurrentHostname));
            if (o.@CurrentHostnameConfigByMethodSpecified) {
                WriteElementString(@"CurrentHostnameConfigByMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)o.@CurrentHostnameConfigByMethod)));
            }
            WriteElementString(@"DefaultHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@DefaultHostname));
            WriteElementString(@"DHCPv6SuppliedDomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@DHCPv6SuppliedDomainName));
            WriteElementString(@"DHCPv6SuppliedHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@DHCPv6SuppliedHostname));
            WriteElementString(@"HardwareAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@HardwareAddress));
            {
                global::Com.HP.HPXML.DD.IPVersionConfig2[] a = (global::Com.HP.HPXML.DD.IPVersionConfig2[])o.@IPVersionConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write39_IPVersionConfig2(@"IPVersionConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::Com.HP.HPXML.DD.IPVersionConfig2)a[ia]), false, false);
                    }
                }
            }
            if (o.@LinkNegotiationSpecified) {
                WriteElementString(@"LinkNegotiation", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write28_LinkNegotiation(((global::Com.HP.HPXML.DD.LinkNegotiation)o.@LinkNegotiation)));
            }
            if (o.@NumOfCurrentHostnamesSpecified) {
                WriteElementStringRaw(@"NumOfCurrentHostnames", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@NumOfCurrentHostnames)));
            }
            if (o.@PreferredHostnamePrioritySpecified) {
                WriteElementString(@"PreferredHostnamePriority", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)o.@PreferredHostnamePriority)));
            }
            if (o.@SpeedDuplexNegotiationModeSpecified) {
                WriteElementString(@"SpeedDuplexNegotiationMode", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write29_PortConfiguration(((global::Com.HP.HPXML.DD.PortConfiguration)o.@SpeedDuplexNegotiationMode)));
            }
            WriteEndElement(o);
        }

        string Write29_PortConfiguration(global::Com.HP.HPXML.DD.PortConfiguration v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.PortConfiguration.@AUTO: s = @"AUTO"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@Item10TX_HALF: s = @"10TX_HALF"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@Item10TX_FULL: s = @"10TX_FULL"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@Item100TX_HALF: s = @"100TX_HALF"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@Item100TX_FULL: s = @"100TX_FULL"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@Item1000TX_HALF: s = @"1000TX_HALF"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@Item1000TX_FULL: s = @"1000TX_FULL"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@S100: s = @"S100"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@S200: s = @"S200"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@S400: s = @"S400"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@S800: s = @"S800"; break;
                case global::Com.HP.HPXML.DD.PortConfiguration.@S1600: s = @"S1600"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.PortConfiguration");
            }
            return s;
        }

        string Write13_ConfigMethod(global::Com.HP.HPXML.DD.ConfigMethod v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.ConfigMethod.@notConfigured: s = @"notConfigured"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@default: s = @"default"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@bootP: s = @"bootP"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@DHCPv4: s = @"DHCPv4"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@DHCPv6: s = @"DHCPv6"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@manual: s = @"manual"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@auto: s = @"auto"; break;
                case global::Com.HP.HPXML.DD.ConfigMethod.@autoIP: s = @"autoIP"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.ConfigMethod");
            }
            return s;
        }

        string Write28_LinkNegotiation(global::Com.HP.HPXML.DD.LinkNegotiation v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.LinkNegotiation.@auto: s = @"auto"; break;
                case global::Com.HP.HPXML.DD.LinkNegotiation.@manual: s = @"manual"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.LinkNegotiation");
            }
            return s;
        }

        void Write39_IPVersionConfig2(string n, string ns, global::Com.HP.HPXML.DD.IPVersionConfig2 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IPVersionConfig2)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IPVersionConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06");
            WriteElementString(@"IPVersionSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write14_IPVersionSupport(((global::Com.HP.HPXML.DD.IPVersionSupport)o.@IPVersionSupport)));
            {
                global::Com.HP.HPXML.DD.IPConfig2[] a = (global::Com.HP.HPXML.DD.IPConfig2[])o.@IPConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write38_IPConfig2(@"IPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::Com.HP.HPXML.DD.IPConfig2)a[ia]), false, false);
                    }
                }
            }
            if (o.@NetworkStatusSpecified) {
                WriteElementString(@"NetworkStatus", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write26_NetworkStatus(((global::Com.HP.HPXML.DD.NetworkStatus)o.@NetworkStatus)));
            }
            WriteElementString(@"PreferredHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@PreferredHostname));
            WriteElementString(@"PreferredIPAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@PreferredIPAddress));
            WriteEndElement(o);
        }

        string Write26_NetworkStatus(global::Com.HP.HPXML.DD.NetworkStatus v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.NetworkStatus.@badConfiguration: s = @"badConfiguration"; break;
                case global::Com.HP.HPXML.DD.NetworkStatus.@cableDisconnected: s = @"cableDisconnected"; break;
                case global::Com.HP.HPXML.DD.NetworkStatus.@disabled: s = @"disabled"; break;
                case global::Com.HP.HPXML.DD.NetworkStatus.@duplicateIPAddress: s = @"duplicateIPAddress"; break;
                case global::Com.HP.HPXML.DD.NetworkStatus.@init: s = @"init"; break;
                case global::Com.HP.HPXML.DD.NetworkStatus.@initNotStarted: s = @"initNotStarted"; break;
                case global::Com.HP.HPXML.DD.NetworkStatus.@ready: s = @"ready"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.NetworkStatus");
            }
            return s;
        }

        void Write38_IPConfig2(string n, string ns, global::Com.HP.HPXML.DD.IPConfig2 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IPConfig2)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06");
            Write15_AddressExpirationLeaseTime(@"AddressExpirationLeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.AddressExpirationLeaseTime)o.@AddressExpirationLeaseTime), false, false);
            WriteElementString(@"DefaultGateway", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@DefaultGateway));
            Write17_DHCPConfig(@"DHCPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DHCPConfig)o.@DHCPConfig), false, false);
            {
                global::Com.HP.HPXML.DD.DNSConfig[] a = (global::Com.HP.HPXML.DD.DNSConfig[])o.@DNSConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write19_DNSConfig(@"DNSConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DNSConfig)a[ia]), false, false);
                    }
                }
            }
            WriteElementString(@"DomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@DomainName));
            Write20_DomainNameConfig(@"DomainNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DomainNameConfig)o.@DomainNameConfig), false, false);
            WriteElementString(@"Hostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@Hostname));
            Write21_HostnameConfig(@"HostnameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.HostnameConfig)o.@HostnameConfig), false, false);
            WriteElementString(@"IPAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@IPAddress));
            if (o.@IPAddressPrefixLengthSpecified) {
                WriteElementStringRaw(@"IPAddressPrefixLength", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@IPAddressPrefixLength)));
            }
            Write22_IPAddressPreferredLifeTime(@"IPAddressPreferredLifetime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime)o.@IPAddressPreferredLifetime), false, false);
            Write23_IPAddressValidLifeTime(@"IPAddressValidLifetime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.IPAddressValidLifeTime)o.@IPAddressValidLifetime), false, false);
            WriteElementString(@"IPConfigMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@IPConfigMethod));
            WriteElementString(@"IPConfigServer", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@IPConfigServer));
            if (o.@MDNSSupportSpecified) {
                WriteElementString(@"MDNSSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@MDNSSupport)));
            }
            WriteElementString(@"SubnetMask", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@SubnetMask));
            WriteElementString(@"WINSServerName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@WINSServerName));
            Write24_WINSServerConfig(@"WINSServerConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.WINSServerConfig)o.@WINSServerConfig), false, false);
            WriteEndElement(o);
        }

        void Write24_WINSServerConfig(string n, string ns, global::Com.HP.HPXML.DD.WINSServerConfig o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.WINSServerConfig)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"WINSServerConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            {
                global::Com.HP.HPXML.DD.ConfigMethod[] a = (global::Com.HP.HPXML.DD.ConfigMethod[])o.@ConfigMethod;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ConfigMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)a[ia])));
                    }
                }
            }
            WriteElementString(@"ConfigurationServer", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@ConfigurationServer));
            WriteEndElement(o);
        }

        void Write23_IPAddressValidLifeTime(string n, string ns, global::Com.HP.HPXML.DD.IPAddressValidLifeTime o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IPAddressValidLifeTime)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IPAddressValidLifeTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            WriteElementStringRaw(@"LeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@LeaseTime)));
            WriteElementString(@"TimeUnits", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write11_TimeUnits(((global::Com.HP.HPXML.DD.TimeUnits)o.@TimeUnits)));
            WriteEndElement(o);
        }

        string Write11_TimeUnits(global::Com.HP.HPXML.DD.TimeUnits v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.TimeUnits.@hours: s = @"hours"; break;
                case global::Com.HP.HPXML.DD.TimeUnits.@minutes: s = @"minutes"; break;
                case global::Com.HP.HPXML.DD.TimeUnits.@seconds: s = @"seconds"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.TimeUnits");
            }
            return s;
        }

        void Write22_IPAddressPreferredLifeTime(string n, string ns, global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IPAddressPreferredLifeTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            WriteElementStringRaw(@"LeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@LeaseTime)));
            WriteElementString(@"TimeUnits", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write11_TimeUnits(((global::Com.HP.HPXML.DD.TimeUnits)o.@TimeUnits)));
            WriteEndElement(o);
        }

        void Write21_HostnameConfig(string n, string ns, global::Com.HP.HPXML.DD.HostnameConfig o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.HostnameConfig)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"HostnameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            {
                global::Com.HP.HPXML.DD.ConfigMethod[] a = (global::Com.HP.HPXML.DD.ConfigMethod[])o.@ConfigMethod;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ConfigMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)a[ia])));
                    }
                }
            }
            WriteElementString(@"ConfigurationServer", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@ConfigurationServer));
            WriteEndElement(o);
        }

        void Write20_DomainNameConfig(string n, string ns, global::Com.HP.HPXML.DD.DomainNameConfig o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.DomainNameConfig)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"DomainNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            {
                global::Com.HP.HPXML.DD.ConfigMethod[] a = (global::Com.HP.HPXML.DD.ConfigMethod[])o.@ConfigMethod;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ConfigMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)a[ia])));
                    }
                }
            }
            WriteElementString(@"ConfigurationServer", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@ConfigurationServer));
            WriteEndElement(o);
        }

        void Write19_DNSConfig(string n, string ns, global::Com.HP.HPXML.DD.DNSConfig o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.DNSConfig)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"DNSConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            {
                global::Com.HP.HPXML.DD.DNSFeatures[] a = (global::Com.HP.HPXML.DD.DNSFeatures[])o.@DNSFeatures;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"DNSFeatures", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write18_DNSFeatures(((global::Com.HP.HPXML.DD.DNSFeatures)a[ia])));
                    }
                }
            }
            {
                global::System.String[] a = (global::System.String[])o.@DNSServerIPAddress;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"DNSServerIPAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)a[ia]));
                    }
                }
            }
            WriteElementString(@"DNSServerSuffix", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@DNSServerSuffix));
            WriteEndElement(o);
        }

        string Write18_DNSFeatures(global::Com.HP.HPXML.DD.DNSFeatures v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.DNSFeatures.@RegisterHostNameInDNS: s = @"RegisterHostNameInDNS"; break;
                case global::Com.HP.HPXML.DD.DNSFeatures.@DNSSuffixWithHostNameRegistration: s = @"DNSSuffixWithHostNameRegistration"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.DNSFeatures");
            }
            return s;
        }

        void Write17_DHCPConfig(string n, string ns, global::Com.HP.HPXML.DD.DHCPConfig o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.DHCPConfig)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"DHCPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            Write16_DHCPLeaseLifeTime(@"DHCPLeaseLifeTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DHCPLeaseLifeTime)o.@DHCPLeaseLifeTime), false, false);
            WriteElementString(@"DHCPServerIPAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@DHCPServerIPAddress));
            WriteEndElement(o);
        }

        void Write16_DHCPLeaseLifeTime(string n, string ns, global::Com.HP.HPXML.DD.DHCPLeaseLifeTime o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.DHCPLeaseLifeTime)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"DHCPLeaseLifeTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            WriteElementStringRaw(@"LeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@LeaseTime)));
            WriteElementString(@"TimeUnits", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write11_TimeUnits(((global::Com.HP.HPXML.DD.TimeUnits)o.@TimeUnits)));
            WriteEndElement(o);
        }

        void Write15_AddressExpirationLeaseTime(string n, string ns, global::Com.HP.HPXML.DD.AddressExpirationLeaseTime o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.AddressExpirationLeaseTime)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"AddressExpirationLeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            WriteElementStringRaw(@"LeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@LeaseTime)));
            WriteElementString(@"TimeUnits", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write11_TimeUnits(((global::Com.HP.HPXML.DD.TimeUnits)o.@TimeUnits)));
            WriteEndElement(o);
        }

        string Write14_IPVersionSupport(global::Com.HP.HPXML.DD.IPVersionSupport v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.IPVersionSupport.@ipv4: s = @"ipv4"; break;
                case global::Com.HP.HPXML.DD.IPVersionSupport.@ipv6: s = @"ipv6"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.IPVersionSupport");
            }
            return s;
        }

        void Write2_Version(string n, string ns, global::Com.HP.HPXML.DD.Version o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.Version)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"Version", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            WriteElementString(@"Revision", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@Revision));
            if (o.@DateSpecified) {
                WriteElementStringRaw(@"Date", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", FromDate(((global::System.DateTime)o.@Date)));
            }
            WriteEndElement(o);
        }

        void Write12_DisconnectionTimeout(string n, string ns, global::Com.HP.HPXML.DD.DisconnectionTimeout o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.DisconnectionTimeout)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"DisconnectionTimeout", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            WriteElementStringRaw(@"LeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@LeaseTime)));
            WriteElementString(@"TimeUnits", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write11_TimeUnits(((global::Com.HP.HPXML.DD.TimeUnits)o.@TimeUnits)));
            WriteEndElement(o);
        }

        void Write37_ApplicationConfig2(string n, string ns, global::Com.HP.HPXML.DD.ApplicationConfig2 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.ApplicationConfig2)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"ApplicationConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06");
            WriteElementString(@"ApplicationSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write3_ApplicationSupport(((global::Com.HP.HPXML.DD.ApplicationSupport)o.@ApplicationSupport)));
            {
                global::System.String[] a = (global::System.String[])o.@ApplicationServiceName;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ApplicationServiceName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)a[ia]));
                    }
                }
            }
            {
                global::Com.HP.HPXML.DD.ApplicationServiceProtocol[] a = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])o.@ApplicationServiceProtocol;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ApplicationServiceProtocol", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write4_ApplicationServiceProtocol(((global::Com.HP.HPXML.DD.ApplicationServiceProtocol)a[ia])));
                    }
                }
            }
            WriteElementString(@"DomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06", ((global::System.String)o.@DomainName));
            Write9_SNMPConfig(@"SNMPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.SNMPConfig)o.@SNMPConfig), false, false);
            Write2_Version(@"Version", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.Version)o.@Version), false, false);
            WriteEndElement(o);
        }

        void Write9_SNMPConfig(string n, string ns, global::Com.HP.HPXML.DD.SNMPConfig o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.SNMPConfig)) {
                }
                else if (t == typeof(global::Com.HP.HPXML.DD.SNMPConfigWithVersion)) {
                    Write8_SNMPConfigWithVersion(n, ns,(global::Com.HP.HPXML.DD.SNMPConfigWithVersion)o, isNullable, true);
                    return;
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"SNMPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            if (o.@AccessOptionSpecified) {
                WriteElementString(@"AccessOption", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write5_AccessOption(((global::Com.HP.HPXML.DD.AccessOption)o.@AccessOption)));
            }
            if (o.@GetCommunityNameConfigSpecified) {
                WriteElementString(@"GetCommunityNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write6_CommunityNameConfig(((global::Com.HP.HPXML.DD.CommunityNameConfig)o.@GetCommunityNameConfig)));
            }
            if (o.@SetCommunityNameConfigSpecified) {
                WriteElementString(@"SetCommunityNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write6_CommunityNameConfig(((global::Com.HP.HPXML.DD.CommunityNameConfig)o.@SetCommunityNameConfig)));
            }
            WriteElementString(@"GetCommunityName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@GetCommunityName));
            WriteElementString(@"SetCommunityName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@SetCommunityName));
            WriteEndElement(o);
        }

        string Write6_CommunityNameConfig(global::Com.HP.HPXML.DD.CommunityNameConfig v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.CommunityNameConfig.@publicAllowed: s = @"publicAllowed"; break;
                case global::Com.HP.HPXML.DD.CommunityNameConfig.@publicNotAllowed: s = @"publicNotAllowed"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.CommunityNameConfig");
            }
            return s;
        }

        string Write5_AccessOption(global::Com.HP.HPXML.DD.AccessOption v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.AccessOption.@readWrite: s = @"readWrite"; break;
                case global::Com.HP.HPXML.DD.AccessOption.@readOnly: s = @"readOnly"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.AccessOption");
            }
            return s;
        }

        void Write8_SNMPConfigWithVersion(string n, string ns, global::Com.HP.HPXML.DD.SNMPConfigWithVersion o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.SNMPConfigWithVersion)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"SNMPConfigWithVersion", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            if (o.@AccessOptionSpecified) {
                WriteElementString(@"AccessOption", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write5_AccessOption(((global::Com.HP.HPXML.DD.AccessOption)o.@AccessOption)));
            }
            if (o.@GetCommunityNameConfigSpecified) {
                WriteElementString(@"GetCommunityNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write6_CommunityNameConfig(((global::Com.HP.HPXML.DD.CommunityNameConfig)o.@GetCommunityNameConfig)));
            }
            if (o.@SetCommunityNameConfigSpecified) {
                WriteElementString(@"SetCommunityNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write6_CommunityNameConfig(((global::Com.HP.HPXML.DD.CommunityNameConfig)o.@SetCommunityNameConfig)));
            }
            WriteElementString(@"GetCommunityName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@GetCommunityName));
            WriteElementString(@"SetCommunityName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@SetCommunityName));
            if (o.@SNMPSpecified) {
                WriteElementString(@"SNMP", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@SNMP)));
            }
            Write2_Version(@"Version", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.Version)o.@Version), false, false);
            WriteEndElement(o);
        }

        string Write4_ApplicationServiceProtocol(global::Com.HP.HPXML.DD.ApplicationServiceProtocol v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.ApplicationServiceProtocol.@ftp: s = @"ftp"; break;
                case global::Com.HP.HPXML.DD.ApplicationServiceProtocol.@http: s = @"http"; break;
                case global::Com.HP.HPXML.DD.ApplicationServiceProtocol.@telnet: s = @"telnet"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.ApplicationServiceProtocol");
            }
            return s;
        }

        string Write3_ApplicationSupport(global::Com.HP.HPXML.DD.ApplicationSupport v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.ApplicationSupport.@AutoIP: s = @"AutoIP"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@Bonjour: s = @"Bonjour"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@BOOTP: s = @"BOOTP"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@DHCPv4: s = @"DHCPv4"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@DHCPv6: s = @"DHCPv6"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@LPD: s = @"LPD"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@LLMNR: s = @"LLMNR"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@MDNS: s = @"MDNS"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@networkSupported: s = @"networkSupported"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@SLP: s = @"SLP"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@SNMP: s = @"SNMP"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@wsDiscovery: s = @"wsDiscovery"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@wsPrint: s = @"wsPrint"; break;
                case global::Com.HP.HPXML.DD.ApplicationSupport.@wsScan: s = @"wsScan"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.ApplicationSupport");
            }
            return s;
        }

        void Write35_NetworkSettings(string n, string ns, global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.NetworkSettings o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.NetworkSettings)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"NetworkSettings", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1");
            {
                global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[] a = (global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])((global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])o.@EnabledDefaultSettings);
                if (a != null){
                    WriteStartElement(@"EnabledDefaultSettings", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1", null, false);
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"DefaultSetting", @"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21", Write33_DefaultSetting(((global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting)a[ia])));
                    }
                    WriteEndElement();
                }
            }
            WriteEndElement(o);
        }

        string Write33_DefaultSetting(global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting v) {
            string s = null;
            switch (v) {
                case global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting.@FactoryDefault: s = @"FactoryDefault"; break;
                case global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting.@GroupDefault: s = @"GroupDefault"; break;
                default: throw CreateInvalidEnumValueException(((System.Int64)v).ToString(System.Globalization.CultureInfo.InvariantCulture), @"Com.HP.HPXML.DD.LEDMObjects.DefaultSetting");
            }
            return s;
        }

        void Write34_HostDomainNameSettings(string n, string ns, global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.HostDomainNameSettings o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.HostDomainNameSettings)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"HostDomainNameSettings", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1");
            {
                global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[] a = (global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])((global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])o.@EnabledDefaultSettings);
                if (a != null){
                    WriteStartElement(@"EnabledDefaultSettings", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1", null, false);
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"DefaultSetting", @"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21", Write33_DefaultSetting(((global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting)a[ia])));
                    }
                    WriteEndElement();
                }
            }
            WriteEndElement(o);
        }

        void Write32_IOAdaptorConfig1(string n, string ns, global::Com.HP.HPXML.DD.IOAdaptorConfig1 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig1)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IOAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10");
            {
                global::Com.HP.HPXML.DD.ApplicationConfig1[] a = (global::Com.HP.HPXML.DD.ApplicationConfig1[])o.@ApplicationConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write10_ApplicationConfig1(@"ApplicationConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::Com.HP.HPXML.DD.ApplicationConfig1)a[ia]), false, false);
                    }
                }
            }
            {
                global::Com.HP.HPXML.DD.ApplicationSupport[] a = (global::Com.HP.HPXML.DD.ApplicationSupport[])((global::Com.HP.HPXML.DD.ApplicationSupport[])o.@ApplicationsEnabled);
                if (a != null){
                    WriteStartElement(@"ApplicationsEnabled", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", null, false);
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ApplicationSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write3_ApplicationSupport(((global::Com.HP.HPXML.DD.ApplicationSupport)a[ia])));
                    }
                    WriteEndElement();
                }
            }
            WriteElementString(@"DeviceConnectivityPortType", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@DeviceConnectivityPortType));
            Write12_DisconnectionTimeout(@"DisconnectionTimeout", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DisconnectionTimeout)o.@DisconnectionTimeout), false, false);
            Write30_NetworkAdaptorConfig1(@"NetworkAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::Com.HP.HPXML.DD.NetworkAdaptorConfig1)o.@NetworkAdaptorConfig), false, false);
            Write31_NetworkStatistics(@"NetworkStatistics", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.NetworkStatistics)o.@NetworkStatistics), false, false);
            WriteEndElement(o);
        }

        void Write30_NetworkAdaptorConfig1(string n, string ns, global::Com.HP.HPXML.DD.NetworkAdaptorConfig1 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.NetworkAdaptorConfig1)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"NetworkAdaptorConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10");
            Write2_Version(@"AdaptorFirmwareDateCode", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.Version)o.@AdaptorFirmwareDateCode), false, false);
            if (o.@AutomaticCrossOverModeSpecified) {
                WriteElementString(@"AutomaticCrossOverMode", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@AutomaticCrossOverMode)));
            }
            WriteElementString(@"BOOTP_DHCPv4SuppliedDomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@BOOTP_DHCPv4SuppliedDomainName));
            WriteElementString(@"BOOTP_DHCPv4SuppliedHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@BOOTP_DHCPv4SuppliedHostname));
            WriteElementString(@"CurrentHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@CurrentHostname));
            if (o.@CurrentHostnameConfigByMethodSpecified) {
                WriteElementString(@"CurrentHostnameConfigByMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)o.@CurrentHostnameConfigByMethod)));
            }
            WriteElementString(@"DefaultHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@DefaultHostname));
            WriteElementString(@"DHCPv6SuppliedDomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@DHCPv6SuppliedDomainName));
            WriteElementString(@"DHCPv6SuppliedHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@DHCPv6SuppliedHostname));
            WriteElementString(@"HardwareAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@HardwareAddress));
            {
                global::Com.HP.HPXML.DD.IPVersionConfig1[] a = (global::Com.HP.HPXML.DD.IPVersionConfig1[])o.@IPVersionConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write27_IPVersionConfig1(@"IPVersionConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::Com.HP.HPXML.DD.IPVersionConfig1)a[ia]), false, false);
                    }
                }
            }
            {
                global::Com.HP.HPXML.DD.IPVersionSupport[] a = (global::Com.HP.HPXML.DD.IPVersionSupport[])((global::Com.HP.HPXML.DD.IPVersionSupport[])o.@IPVersionEnabled);
                if (a != null){
                    WriteStartElement(@"IPVersionEnabled", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", null, false);
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"IPVersionSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write14_IPVersionSupport(((global::Com.HP.HPXML.DD.IPVersionSupport)a[ia])));
                    }
                    WriteEndElement();
                }
            }
            if (o.@LinkNegotiationSpecified) {
                WriteElementString(@"LinkNegotiation", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write28_LinkNegotiation(((global::Com.HP.HPXML.DD.LinkNegotiation)o.@LinkNegotiation)));
            }
            if (o.@NumOfCurrentHostnamesSpecified) {
                WriteElementStringRaw(@"NumOfCurrentHostnames", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@NumOfCurrentHostnames)));
            }
            if (o.@PreferredHostnamePrioritySpecified) {
                WriteElementString(@"PreferredHostnamePriority", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write13_ConfigMethod(((global::Com.HP.HPXML.DD.ConfigMethod)o.@PreferredHostnamePriority)));
            }
            if (o.@SpeedDuplexNegotiationModeSpecified) {
                WriteElementString(@"SpeedDuplexNegotiationMode", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write29_PortConfiguration(((global::Com.HP.HPXML.DD.PortConfiguration)o.@SpeedDuplexNegotiationMode)));
            }
            WriteEndElement(o);
        }

        void Write27_IPVersionConfig1(string n, string ns, global::Com.HP.HPXML.DD.IPVersionConfig1 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IPVersionConfig1)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IPVersionConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10");
            WriteElementString(@"IPVersionSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write14_IPVersionSupport(((global::Com.HP.HPXML.DD.IPVersionSupport)o.@IPVersionSupport)));
            {
                global::Com.HP.HPXML.DD.IPConfig1[] a = (global::Com.HP.HPXML.DD.IPConfig1[])o.@IPConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write25_IPConfig1(@"IPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::Com.HP.HPXML.DD.IPConfig1)a[ia]), false, false);
                    }
                }
            }
            if (o.@NetworkStatusSpecified) {
                WriteElementString(@"NetworkStatus", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write26_NetworkStatus(((global::Com.HP.HPXML.DD.NetworkStatus)o.@NetworkStatus)));
            }
            WriteElementString(@"PreferredHostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@PreferredHostname));
            WriteElementString(@"PreferredIPAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@PreferredIPAddress));
            WriteEndElement(o);
        }

        void Write25_IPConfig1(string n, string ns, global::Com.HP.HPXML.DD.IPConfig1 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.IPConfig1)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"IPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10");
            Write15_AddressExpirationLeaseTime(@"AddressExpirationLeaseTime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.AddressExpirationLeaseTime)o.@AddressExpirationLeaseTime), false, false);
            WriteElementString(@"DefaultGateway", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@DefaultGateway));
            Write17_DHCPConfig(@"DHCPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DHCPConfig)o.@DHCPConfig), false, false);
            {
                global::Com.HP.HPXML.DD.DNSConfig[] a = (global::Com.HP.HPXML.DD.DNSConfig[])o.@DNSConfig;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        Write19_DNSConfig(@"DNSConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DNSConfig)a[ia]), false, false);
                    }
                }
            }
            WriteElementString(@"DomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@DomainName));
            Write20_DomainNameConfig(@"DomainNameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.DomainNameConfig)o.@DomainNameConfig), false, false);
            WriteElementString(@"Hostname", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@Hostname));
            Write21_HostnameConfig(@"HostnameConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.HostnameConfig)o.@HostnameConfig), false, false);
            WriteElementString(@"IPAddress", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@IPAddress));
            if (o.@IPAddressPrefixLengthSpecified) {
                WriteElementStringRaw(@"IPAddressPrefixLength", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", System.Xml.XmlConvert.ToString((global::System.Int32)((global::System.Int32)o.@IPAddressPrefixLength)));
            }
            Write22_IPAddressPreferredLifeTime(@"IPAddressPreferredLifetime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime)o.@IPAddressPreferredLifetime), false, false);
            Write23_IPAddressValidLifeTime(@"IPAddressValidLifetime", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.IPAddressValidLifeTime)o.@IPAddressValidLifetime), false, false);
            WriteElementString(@"IPConfigMethod", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@IPConfigMethod));
            WriteElementString(@"IPConfigServer", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@IPConfigServer));
            if (o.@MDNSSupportSpecified) {
                WriteElementString(@"MDNSSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write7_EnableDisable(((global::Com.HP.HPXML.DD.EnableDisable)o.@MDNSSupport)));
            }
            WriteElementString(@"SubnetMask", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@SubnetMask));
            WriteElementString(@"WINSServerName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)o.@WINSServerName));
            Write24_WINSServerConfig(@"WINSServerConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.WINSServerConfig)o.@WINSServerConfig), false, false);
            WriteEndElement(o);
        }

        void Write10_ApplicationConfig1(string n, string ns, global::Com.HP.HPXML.DD.ApplicationConfig1 o, bool isNullable, bool needType) {
            if ((object)o == null) {
                if (isNullable) WriteNullTagLiteral(n, ns);
                return;
            }
            if (!needType) {
                System.Type t = o.GetType();
                if (t == typeof(global::Com.HP.HPXML.DD.ApplicationConfig1)) {
                }
                else {
                    throw CreateUnknownTypeException(o);
                }
            }
            WriteStartElement(n, ns, o, false, null);
            if (needType) WriteXsiType(@"ApplicationConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10");
            WriteElementString(@"ApplicationSupport", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write3_ApplicationSupport(((global::Com.HP.HPXML.DD.ApplicationSupport)o.@ApplicationSupport)));
            {
                global::System.String[] a = (global::System.String[])o.@ApplicationServiceName;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ApplicationServiceName", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::System.String)a[ia]));
                    }
                }
            }
            {
                global::Com.HP.HPXML.DD.ApplicationServiceProtocol[] a = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])o.@ApplicationServiceProtocol;
                if (a != null) {
                    for (int ia = 0; ia < a.Length; ia++) {
                        WriteElementString(@"ApplicationServiceProtocol", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", Write4_ApplicationServiceProtocol(((global::Com.HP.HPXML.DD.ApplicationServiceProtocol)a[ia])));
                    }
                }
            }
            WriteElementString(@"DomainName", @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10", ((global::System.String)o.@DomainName));
            Write9_SNMPConfig(@"SNMPConfig", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.SNMPConfig)o.@SNMPConfig), false, false);
            Write2_Version(@"Version", @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/", ((global::Com.HP.HPXML.DD.Version)o.@Version), false, false);
            WriteEndElement(o);
        }

        protected override void InitCallbacks() {
        }
    }

    public class XmlSerializationReaderIOConfigDyn2 : System.Xml.Serialization.XmlSerializationReader {

        public object Read43_IOConfigDyn() {
            object o = null;
            Reader.MoveToContent();
            if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                if (((object) Reader.LocalName == (object)id1_IOConfigDyn && (object) Reader.NamespaceURI == (object)id2_Item)) {
                    o = Read42_IOConfigDyn2(false, true);
                }
                else {
                    throw CreateUnknownNodeException();
                }
            }
            else {
                UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17:IOConfigDyn");
            }
            return (object)o;
        }

        global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2 Read42_IOConfigDyn2(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id1_IOConfigDyn && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id2_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2 o;
            o = new global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2();
            global::Com.HP.HPXML.DD.IOAdaptorConfig1[] a_1 = null;
            int ca_1 = 0;
            global::Com.HP.HPXML.DD.IOAdaptorConfig2[] a_4 = null;
            int ca_4 = 0;
            bool[] paramsRead = new bool[5];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@IOAdaptorConfig = (global::Com.HP.HPXML.DD.IOAdaptorConfig1[])ShrinkArray(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig1), true);
                o.@IOAdaptorConfig2 = (global::Com.HP.HPXML.DD.IOAdaptorConfig2[])ShrinkArray(a_4, ca_4, typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig2), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations0 = 0;
            int readerCount0 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id3_Version && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@Version = Read2_Version(false, true);
                        paramsRead[0] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id5_IOAdaptorConfig && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        a_1 = (global::Com.HP.HPXML.DD.IOAdaptorConfig1[])EnsureArrayIndex(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig1));a_1[ca_1++] = Read32_IOAdaptorConfig1(false, true);
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id7_HostDomainNameSettings && (object) Reader.NamespaceURI == (object)id8_Item)) {
                        o.@HostDomainNameSettings = Read34_HostDomainNameSettings(false, true);
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id9_NetworkSettings && (object) Reader.NamespaceURI == (object)id8_Item)) {
                        o.@NetworkSettings = Read35_NetworkSettings(false, true);
                        paramsRead[3] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id5_IOAdaptorConfig && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        a_4 = (global::Com.HP.HPXML.DD.IOAdaptorConfig2[])EnsureArrayIndex(a_4, ca_4, typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig2));a_4[ca_4++] = Read41_IOAdaptorConfig2(false, true);
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:IOAdaptorConfig, http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:HostDomainNameSettings, http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:NetworkSettings, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:IOAdaptorConfig");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:IOAdaptorConfig, http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:HostDomainNameSettings, http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:NetworkSettings, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:IOAdaptorConfig");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations0, ref readerCount0);
            }
            o.@IOAdaptorConfig = (global::Com.HP.HPXML.DD.IOAdaptorConfig1[])ShrinkArray(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig1), true);
            o.@IOAdaptorConfig2 = (global::Com.HP.HPXML.DD.IOAdaptorConfig2[])ShrinkArray(a_4, ca_4, typeof(global::Com.HP.HPXML.DD.IOAdaptorConfig2), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.IOAdaptorConfig2 Read41_IOAdaptorConfig2(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id5_IOAdaptorConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id10_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IOAdaptorConfig2 o;
            o = new global::Com.HP.HPXML.DD.IOAdaptorConfig2();
            global::Com.HP.HPXML.DD.ApplicationConfig2[] a_0 = null;
            int ca_0 = 0;
            bool[] paramsRead = new bool[17];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ApplicationConfig = (global::Com.HP.HPXML.DD.ApplicationConfig2[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ApplicationConfig2), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations1 = 0;
            int readerCount1 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id11_ApplicationConfig && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        a_0 = (global::Com.HP.HPXML.DD.ApplicationConfig2[])EnsureArrayIndex(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ApplicationConfig2));a_0[ca_0++] = Read37_ApplicationConfig2(false, true);
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id12_DeviceConnectivityPortType && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@DeviceConnectivityPortType = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id13_DisconnectionTimeout && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DisconnectionTimeout = Read12_DisconnectionTimeout(false, true);
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id14_NetworkAdaptorConfig && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        o.@NetworkAdaptorConfig = Read40_NetworkAdaptorConfig2(false, true);
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id15_NetworkStatistics && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@NetworkStatistics = Read31_NetworkStatistics(false, true);
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id16_AutoIP && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AutoIPSpecified = true;
                        {
                            o.@AutoIP = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id17_Bonjour && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@BonjourSpecified = true;
                        {
                            o.@Bonjour = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[6] = true;
                    }
                    else if (!paramsRead[7] && ((object) Reader.LocalName == (object)id18_BOOTP && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@BOOTPSpecified = true;
                        {
                            o.@BOOTP = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[7] = true;
                    }
                    else if (!paramsRead[8] && ((object) Reader.LocalName == (object)id19_DHCPv4 && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DHCPv4Specified = true;
                        {
                            o.@DHCPv4 = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[8] = true;
                    }
                    else if (!paramsRead[9] && ((object) Reader.LocalName == (object)id20_DHCPv6 && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DHCPv6Specified = true;
                        {
                            o.@DHCPv6 = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[9] = true;
                    }
                    else if (!paramsRead[10] && ((object) Reader.LocalName == (object)id21_IPv4 && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPv4Specified = true;
                        {
                            o.@IPv4 = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[10] = true;
                    }
                    else if (!paramsRead[11] && ((object) Reader.LocalName == (object)id22_IPv6 && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPv6Specified = true;
                        {
                            o.@IPv6 = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[11] = true;
                    }
                    else if (!paramsRead[12] && ((object) Reader.LocalName == (object)id23_LPD && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@LPDSpecified = true;
                        {
                            o.@LPD = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[12] = true;
                    }
                    else if (!paramsRead[13] && ((object) Reader.LocalName == (object)id24_LLMNR && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@LLMNRSpecified = true;
                        {
                            o.@LLMNR = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[13] = true;
                    }
                    else if (!paramsRead[14] && ((object) Reader.LocalName == (object)id25_SLPSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SLPSupportSpecified = true;
                        {
                            o.@SLPSupport = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[14] = true;
                    }
                    else if (!paramsRead[15] && ((object) Reader.LocalName == (object)id26_SNMP && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SNMPSpecified = true;
                        {
                            o.@SNMP = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[15] = true;
                    }
                    else if (!paramsRead[16] && ((object) Reader.LocalName == (object)id27_WSDiscovery && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@WSDiscoverySpecified = true;
                        {
                            o.@WSDiscovery = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[16] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:ApplicationConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DeviceConnectivityPortType, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DisconnectionTimeout, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:NetworkAdaptorConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatistics, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AutoIP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Bonjour, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:BOOTP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPv4, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPv6, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPv4, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPv6, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LPD, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LLMNR, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SLPSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WSDiscovery");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:ApplicationConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DeviceConnectivityPortType, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DisconnectionTimeout, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:NetworkAdaptorConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatistics, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AutoIP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Bonjour, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:BOOTP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPv4, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPv6, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPv4, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPv6, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LPD, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LLMNR, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SLPSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WSDiscovery");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations1, ref readerCount1);
            }
            o.@ApplicationConfig = (global::Com.HP.HPXML.DD.ApplicationConfig2[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ApplicationConfig2), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.EnableDisable Read7_EnableDisable(string s) {
            switch (s) {
                case @"enabled": return global::Com.HP.HPXML.DD.EnableDisable.@enabled;
                case @"disabled": return global::Com.HP.HPXML.DD.EnableDisable.@disabled;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.EnableDisable));
            }
        }

        global::Com.HP.HPXML.DD.NetworkStatistics Read31_NetworkStatistics(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id15_NetworkStatistics && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.NetworkStatistics o;
            o = new global::Com.HP.HPXML.DD.NetworkStatistics();
            bool[] paramsRead = new bool[8];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations2 = 0;
            int readerCount2 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id28_BadPacketsReceived && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@BadPacketsReceivedSpecified = true;
                        {
                            o.@BadPacketsReceived = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id29_FramingErrorsReceived && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@FramingErrorsReceivedSpecified = true;
                        {
                            o.@FramingErrorsReceived = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id30_TotalPacketsReceived && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TotalPacketsReceived = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id31_TotalPacketsTransmitted && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TotalPacketsTransmitted = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id32_TransmitCollisions && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TransmitCollisions = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id33_TransmitLateCollisions && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TransmitLateCollisions = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id34_TotalUnicastPacketsReceived && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TotalUnicastPacketsReceived = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[6] = true;
                    }
                    else if (!paramsRead[7] && ((object) Reader.LocalName == (object)id35_UnsendablePackets && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@UnsendablePackets = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[7] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:BadPacketsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:FramingErrorsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TotalPacketsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TotalPacketsTransmitted, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TransmitCollisions, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TransmitLateCollisions, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TotalUnicastPacketsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:UnsendablePackets");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:BadPacketsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:FramingErrorsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TotalPacketsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TotalPacketsTransmitted, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TransmitCollisions, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TransmitLateCollisions, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TotalUnicastPacketsReceived, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:UnsendablePackets");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations2, ref readerCount2);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.NetworkAdaptorConfig2 Read40_NetworkAdaptorConfig2(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id14_NetworkAdaptorConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id10_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.NetworkAdaptorConfig2 o;
            o = new global::Com.HP.HPXML.DD.NetworkAdaptorConfig2();
            global::Com.HP.HPXML.DD.IPVersionConfig2[] a_10 = null;
            int ca_10 = 0;
            bool[] paramsRead = new bool[15];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@IPVersionConfig = (global::Com.HP.HPXML.DD.IPVersionConfig2[])ShrinkArray(a_10, ca_10, typeof(global::Com.HP.HPXML.DD.IPVersionConfig2), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations3 = 0;
            int readerCount3 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id36_AdaptorFirmwareDateCode && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AdaptorFirmwareDateCode = Read2_Version(false, true);
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id37_AutomaticCrossOverMode && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AutomaticCrossOverModeSpecified = true;
                        {
                            o.@AutomaticCrossOverMode = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id38_BOOTP_DHCPv4SuppliedDomainName && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@BOOTP_DHCPv4SuppliedDomainName = Reader.ReadElementString();
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id39_BOOTP_DHCPv4SuppliedHostname && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@BOOTP_DHCPv4SuppliedHostname = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id40_CurrentHostname && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@CurrentHostname = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id41_CurrentHostnameConfigByMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@CurrentHostnameConfigByMethodSpecified = true;
                        {
                            o.@CurrentHostnameConfigByMethod = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id42_DefaultHostname && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@DefaultHostname = Reader.ReadElementString();
                        }
                        paramsRead[6] = true;
                    }
                    else if (!paramsRead[7] && ((object) Reader.LocalName == (object)id43_DHCPv6SuppliedDomainName && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@DHCPv6SuppliedDomainName = Reader.ReadElementString();
                        }
                        paramsRead[7] = true;
                    }
                    else if (!paramsRead[8] && ((object) Reader.LocalName == (object)id44_DHCPv6SuppliedHostname && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@DHCPv6SuppliedHostname = Reader.ReadElementString();
                        }
                        paramsRead[8] = true;
                    }
                    else if (!paramsRead[9] && ((object) Reader.LocalName == (object)id45_HardwareAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@HardwareAddress = Reader.ReadElementString();
                        }
                        paramsRead[9] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id46_IPVersionConfig && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        a_10 = (global::Com.HP.HPXML.DD.IPVersionConfig2[])EnsureArrayIndex(a_10, ca_10, typeof(global::Com.HP.HPXML.DD.IPVersionConfig2));a_10[ca_10++] = Read39_IPVersionConfig2(false, true);
                    }
                    else if (!paramsRead[11] && ((object) Reader.LocalName == (object)id47_LinkNegotiation && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@LinkNegotiationSpecified = true;
                        {
                            o.@LinkNegotiation = Read28_LinkNegotiation(Reader.ReadElementString());
                        }
                        paramsRead[11] = true;
                    }
                    else if (!paramsRead[12] && ((object) Reader.LocalName == (object)id48_NumOfCurrentHostnames && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@NumOfCurrentHostnamesSpecified = true;
                        {
                            o.@NumOfCurrentHostnames = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[12] = true;
                    }
                    else if (!paramsRead[13] && ((object) Reader.LocalName == (object)id49_PreferredHostnamePriority && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@PreferredHostnamePrioritySpecified = true;
                        {
                            o.@PreferredHostnamePriority = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                        paramsRead[13] = true;
                    }
                    else if (!paramsRead[14] && ((object) Reader.LocalName == (object)id50_SpeedDuplexNegotiationMode && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SpeedDuplexNegotiationModeSpecified = true;
                        {
                            o.@SpeedDuplexNegotiationMode = Read29_PortConfiguration(Reader.ReadElementString());
                        }
                        paramsRead[14] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AdaptorFirmwareDateCode, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AutomaticCrossOverMode, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:BOOTP_DHCPv4SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:BOOTP_DHCPv4SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:CurrentHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:CurrentHostnameConfigByMethod, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DefaultHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DHCPv6SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DHCPv6SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HardwareAddress, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:IPVersionConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LinkNegotiation, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NumOfCurrentHostnames, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredHostnamePriority, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SpeedDuplexNegotiationMode");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AdaptorFirmwareDateCode, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AutomaticCrossOverMode, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:BOOTP_DHCPv4SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:BOOTP_DHCPv4SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:CurrentHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:CurrentHostnameConfigByMethod, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DefaultHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DHCPv6SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DHCPv6SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HardwareAddress, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:IPVersionConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LinkNegotiation, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NumOfCurrentHostnames, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredHostnamePriority, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SpeedDuplexNegotiationMode");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations3, ref readerCount3);
            }
            o.@IPVersionConfig = (global::Com.HP.HPXML.DD.IPVersionConfig2[])ShrinkArray(a_10, ca_10, typeof(global::Com.HP.HPXML.DD.IPVersionConfig2), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.PortConfiguration Read29_PortConfiguration(string s) {
            switch (s) {
                case @"AUTO": return global::Com.HP.HPXML.DD.PortConfiguration.@AUTO;
                case @"10TX_HALF": return global::Com.HP.HPXML.DD.PortConfiguration.@Item10TX_HALF;
                case @"10TX_FULL": return global::Com.HP.HPXML.DD.PortConfiguration.@Item10TX_FULL;
                case @"100TX_HALF": return global::Com.HP.HPXML.DD.PortConfiguration.@Item100TX_HALF;
                case @"100TX_FULL": return global::Com.HP.HPXML.DD.PortConfiguration.@Item100TX_FULL;
                case @"1000TX_HALF": return global::Com.HP.HPXML.DD.PortConfiguration.@Item1000TX_HALF;
                case @"1000TX_FULL": return global::Com.HP.HPXML.DD.PortConfiguration.@Item1000TX_FULL;
                case @"S100": return global::Com.HP.HPXML.DD.PortConfiguration.@S100;
                case @"S200": return global::Com.HP.HPXML.DD.PortConfiguration.@S200;
                case @"S400": return global::Com.HP.HPXML.DD.PortConfiguration.@S400;
                case @"S800": return global::Com.HP.HPXML.DD.PortConfiguration.@S800;
                case @"S1600": return global::Com.HP.HPXML.DD.PortConfiguration.@S1600;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.PortConfiguration));
            }
        }

        global::Com.HP.HPXML.DD.ConfigMethod Read13_ConfigMethod(string s) {
            switch (s) {
                case @"notConfigured": return global::Com.HP.HPXML.DD.ConfigMethod.@notConfigured;
                case @"default": return global::Com.HP.HPXML.DD.ConfigMethod.@default;
                case @"bootP": return global::Com.HP.HPXML.DD.ConfigMethod.@bootP;
                case @"DHCPv4": return global::Com.HP.HPXML.DD.ConfigMethod.@DHCPv4;
                case @"DHCPv6": return global::Com.HP.HPXML.DD.ConfigMethod.@DHCPv6;
                case @"manual": return global::Com.HP.HPXML.DD.ConfigMethod.@manual;
                case @"auto": return global::Com.HP.HPXML.DD.ConfigMethod.@auto;
                case @"autoIP": return global::Com.HP.HPXML.DD.ConfigMethod.@autoIP;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.ConfigMethod));
            }
        }

        global::Com.HP.HPXML.DD.LinkNegotiation Read28_LinkNegotiation(string s) {
            switch (s) {
                case @"auto": return global::Com.HP.HPXML.DD.LinkNegotiation.@auto;
                case @"manual": return global::Com.HP.HPXML.DD.LinkNegotiation.@manual;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.LinkNegotiation));
            }
        }

        global::Com.HP.HPXML.DD.IPVersionConfig2 Read39_IPVersionConfig2(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id46_IPVersionConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id10_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IPVersionConfig2 o;
            o = new global::Com.HP.HPXML.DD.IPVersionConfig2();
            global::Com.HP.HPXML.DD.IPConfig2[] a_1 = null;
            int ca_1 = 0;
            bool[] paramsRead = new bool[5];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@IPConfig = (global::Com.HP.HPXML.DD.IPConfig2[])ShrinkArray(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IPConfig2), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations4 = 0;
            int readerCount4 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id51_IPVersionSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPVersionSupport = Read14_IPVersionSupport(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id52_IPConfig && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        a_1 = (global::Com.HP.HPXML.DD.IPConfig2[])EnsureArrayIndex(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IPConfig2));a_1[ca_1++] = Read38_IPConfig2(false, true);
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id53_NetworkStatus && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@NetworkStatusSpecified = true;
                        {
                            o.@NetworkStatus = Read26_NetworkStatus(Reader.ReadElementString());
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id54_PreferredHostname && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@PreferredHostname = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id55_PreferredIPAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@PreferredIPAddress = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionSupport, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:IPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatus, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:PreferredHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredIPAddress");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionSupport, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:IPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatus, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:PreferredHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredIPAddress");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations4, ref readerCount4);
            }
            o.@IPConfig = (global::Com.HP.HPXML.DD.IPConfig2[])ShrinkArray(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IPConfig2), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.NetworkStatus Read26_NetworkStatus(string s) {
            switch (s) {
                case @"badConfiguration": return global::Com.HP.HPXML.DD.NetworkStatus.@badConfiguration;
                case @"cableDisconnected": return global::Com.HP.HPXML.DD.NetworkStatus.@cableDisconnected;
                case @"disabled": return global::Com.HP.HPXML.DD.NetworkStatus.@disabled;
                case @"duplicateIPAddress": return global::Com.HP.HPXML.DD.NetworkStatus.@duplicateIPAddress;
                case @"init": return global::Com.HP.HPXML.DD.NetworkStatus.@init;
                case @"initNotStarted": return global::Com.HP.HPXML.DD.NetworkStatus.@initNotStarted;
                case @"ready": return global::Com.HP.HPXML.DD.NetworkStatus.@ready;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.NetworkStatus));
            }
        }

        global::Com.HP.HPXML.DD.IPConfig2 Read38_IPConfig2(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id52_IPConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id10_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IPConfig2 o;
            o = new global::Com.HP.HPXML.DD.IPConfig2();
            global::Com.HP.HPXML.DD.DNSConfig[] a_3 = null;
            int ca_3 = 0;
            bool[] paramsRead = new bool[18];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@DNSConfig = (global::Com.HP.HPXML.DD.DNSConfig[])ShrinkArray(a_3, ca_3, typeof(global::Com.HP.HPXML.DD.DNSConfig), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations5 = 0;
            int readerCount5 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id56_AddressExpirationLeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AddressExpirationLeaseTime = Read15_AddressExpirationLeaseTime(false, true);
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id57_DefaultGateway && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@DefaultGateway = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id58_DHCPConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DHCPConfig = Read17_DHCPConfig(false, true);
                        paramsRead[2] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id59_DNSConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        a_3 = (global::Com.HP.HPXML.DD.DNSConfig[])EnsureArrayIndex(a_3, ca_3, typeof(global::Com.HP.HPXML.DD.DNSConfig));a_3[ca_3++] = Read19_DNSConfig(false, true);
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id60_DomainName && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@DomainName = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id61_DomainNameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DomainNameConfig = Read20_DomainNameConfig(false, true);
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id62_Hostname && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@Hostname = Reader.ReadElementString();
                        }
                        paramsRead[6] = true;
                    }
                    else if (!paramsRead[7] && ((object) Reader.LocalName == (object)id63_HostnameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@HostnameConfig = Read21_HostnameConfig(false, true);
                        paramsRead[7] = true;
                    }
                    else if (!paramsRead[8] && ((object) Reader.LocalName == (object)id64_IPAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPAddress = Reader.ReadElementString();
                        }
                        paramsRead[8] = true;
                    }
                    else if (!paramsRead[9] && ((object) Reader.LocalName == (object)id65_IPAddressPrefixLength && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPAddressPrefixLengthSpecified = true;
                        {
                            o.@IPAddressPrefixLength = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[9] = true;
                    }
                    else if (!paramsRead[10] && ((object) Reader.LocalName == (object)id66_IPAddressPreferredLifetime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPAddressPreferredLifetime = Read22_IPAddressPreferredLifeTime(false, true);
                        paramsRead[10] = true;
                    }
                    else if (!paramsRead[11] && ((object) Reader.LocalName == (object)id67_IPAddressValidLifetime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPAddressValidLifetime = Read23_IPAddressValidLifeTime(false, true);
                        paramsRead[11] = true;
                    }
                    else if (!paramsRead[12] && ((object) Reader.LocalName == (object)id68_IPConfigMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPConfigMethod = Reader.ReadElementString();
                        }
                        paramsRead[12] = true;
                    }
                    else if (!paramsRead[13] && ((object) Reader.LocalName == (object)id69_IPConfigServer && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPConfigServer = Reader.ReadElementString();
                        }
                        paramsRead[13] = true;
                    }
                    else if (!paramsRead[14] && ((object) Reader.LocalName == (object)id70_MDNSSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@MDNSSupportSpecified = true;
                        {
                            o.@MDNSSupport = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[14] = true;
                    }
                    else if (!paramsRead[15] && ((object) Reader.LocalName == (object)id71_SubnetMask && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@SubnetMask = Reader.ReadElementString();
                        }
                        paramsRead[15] = true;
                    }
                    else if (!paramsRead[16] && ((object) Reader.LocalName == (object)id72_WINSServerName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@WINSServerName = Reader.ReadElementString();
                        }
                        paramsRead[16] = true;
                    }
                    else if (!paramsRead[17] && ((object) Reader.LocalName == (object)id73_WINSServerConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@WINSServerConfig = Read24_WINSServerConfig(false, true);
                        paramsRead[17] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AddressExpirationLeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DefaultGateway, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DomainNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:Hostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HostnameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddress, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPrefixLength, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPreferredLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressValidLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigServer, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:MDNSSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SubnetMask, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerConfig");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AddressExpirationLeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DefaultGateway, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DomainNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:Hostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HostnameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddress, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPrefixLength, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPreferredLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressValidLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigServer, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:MDNSSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SubnetMask, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerConfig");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations5, ref readerCount5);
            }
            o.@DNSConfig = (global::Com.HP.HPXML.DD.DNSConfig[])ShrinkArray(a_3, ca_3, typeof(global::Com.HP.HPXML.DD.DNSConfig), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.WINSServerConfig Read24_WINSServerConfig(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id73_WINSServerConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.WINSServerConfig o;
            o = new global::Com.HP.HPXML.DD.WINSServerConfig();
            global::Com.HP.HPXML.DD.ConfigMethod[] a_0 = null;
            int ca_0 = 0;
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ConfigMethod = (global::Com.HP.HPXML.DD.ConfigMethod[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations6 = 0;
            int readerCount6 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id74_ConfigMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_0 = (global::Com.HP.HPXML.DD.ConfigMethod[])EnsureArrayIndex(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod));a_0[ca_0++] = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id75_ConfigurationServer && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@ConfigurationServer = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigurationServer");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigurationServer");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations6, ref readerCount6);
            }
            o.@ConfigMethod = (global::Com.HP.HPXML.DD.ConfigMethod[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.IPAddressValidLifeTime Read23_IPAddressValidLifeTime(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id76_IPAddressValidLifeTime && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IPAddressValidLifeTime o;
            o = new global::Com.HP.HPXML.DD.IPAddressValidLifeTime();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations7 = 0;
            int readerCount7 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id77_LeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@LeaseTime = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id78_TimeUnits && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TimeUnits = Read11_TimeUnits(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations7, ref readerCount7);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.TimeUnits Read11_TimeUnits(string s) {
            switch (s) {
                case @"hours": return global::Com.HP.HPXML.DD.TimeUnits.@hours;
                case @"minutes": return global::Com.HP.HPXML.DD.TimeUnits.@minutes;
                case @"seconds": return global::Com.HP.HPXML.DD.TimeUnits.@seconds;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.TimeUnits));
            }
        }

        global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime Read22_IPAddressPreferredLifeTime(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id79_IPAddressPreferredLifeTime && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime o;
            o = new global::Com.HP.HPXML.DD.IPAddressPreferredLifeTime();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations8 = 0;
            int readerCount8 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id77_LeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@LeaseTime = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id78_TimeUnits && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TimeUnits = Read11_TimeUnits(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations8, ref readerCount8);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.HostnameConfig Read21_HostnameConfig(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id63_HostnameConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.HostnameConfig o;
            o = new global::Com.HP.HPXML.DD.HostnameConfig();
            global::Com.HP.HPXML.DD.ConfigMethod[] a_0 = null;
            int ca_0 = 0;
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ConfigMethod = (global::Com.HP.HPXML.DD.ConfigMethod[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations9 = 0;
            int readerCount9 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id74_ConfigMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_0 = (global::Com.HP.HPXML.DD.ConfigMethod[])EnsureArrayIndex(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod));a_0[ca_0++] = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id75_ConfigurationServer && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@ConfigurationServer = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigurationServer");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigurationServer");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations9, ref readerCount9);
            }
            o.@ConfigMethod = (global::Com.HP.HPXML.DD.ConfigMethod[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.DomainNameConfig Read20_DomainNameConfig(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id61_DomainNameConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.DomainNameConfig o;
            o = new global::Com.HP.HPXML.DD.DomainNameConfig();
            global::Com.HP.HPXML.DD.ConfigMethod[] a_0 = null;
            int ca_0 = 0;
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ConfigMethod = (global::Com.HP.HPXML.DD.ConfigMethod[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations10 = 0;
            int readerCount10 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id74_ConfigMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_0 = (global::Com.HP.HPXML.DD.ConfigMethod[])EnsureArrayIndex(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod));a_0[ca_0++] = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id75_ConfigurationServer && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@ConfigurationServer = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigurationServer");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ConfigurationServer");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations10, ref readerCount10);
            }
            o.@ConfigMethod = (global::Com.HP.HPXML.DD.ConfigMethod[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ConfigMethod), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.DNSConfig Read19_DNSConfig(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id59_DNSConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.DNSConfig o;
            o = new global::Com.HP.HPXML.DD.DNSConfig();
            global::Com.HP.HPXML.DD.DNSFeatures[] a_0 = null;
            int ca_0 = 0;
            global::System.String[] a_1 = null;
            int ca_1 = 0;
            bool[] paramsRead = new bool[3];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@DNSFeatures = (global::Com.HP.HPXML.DD.DNSFeatures[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.DNSFeatures), true);
                o.@DNSServerIPAddress = (global::System.String[])ShrinkArray(a_1, ca_1, typeof(global::System.String), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations11 = 0;
            int readerCount11 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id80_DNSFeatures && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_0 = (global::Com.HP.HPXML.DD.DNSFeatures[])EnsureArrayIndex(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.DNSFeatures));a_0[ca_0++] = Read18_DNSFeatures(Reader.ReadElementString());
                        }
                    }
                    else if (((object) Reader.LocalName == (object)id81_DNSServerIPAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_1 = (global::System.String[])EnsureArrayIndex(a_1, ca_1, typeof(global::System.String));a_1[ca_1++] = Reader.ReadElementString();
                        }
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id82_DNSServerSuffix && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@DNSServerSuffix = Reader.ReadElementString();
                        }
                        paramsRead[2] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSFeatures, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSServerIPAddress, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSServerSuffix");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSFeatures, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSServerIPAddress, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSServerSuffix");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations11, ref readerCount11);
            }
            o.@DNSFeatures = (global::Com.HP.HPXML.DD.DNSFeatures[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.DNSFeatures), true);
            o.@DNSServerIPAddress = (global::System.String[])ShrinkArray(a_1, ca_1, typeof(global::System.String), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.DNSFeatures Read18_DNSFeatures(string s) {
            switch (s) {
                case @"RegisterHostNameInDNS": return global::Com.HP.HPXML.DD.DNSFeatures.@RegisterHostNameInDNS;
                case @"DNSSuffixWithHostNameRegistration": return global::Com.HP.HPXML.DD.DNSFeatures.@DNSSuffixWithHostNameRegistration;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.DNSFeatures));
            }
        }

        global::Com.HP.HPXML.DD.DHCPConfig Read17_DHCPConfig(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id58_DHCPConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.DHCPConfig o;
            o = new global::Com.HP.HPXML.DD.DHCPConfig();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations12 = 0;
            int readerCount12 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id83_DHCPLeaseLifeTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DHCPLeaseLifeTime = Read16_DHCPLeaseLifeTime(false, true);
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id84_DHCPServerIPAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@DHCPServerIPAddress = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPLeaseLifeTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPServerIPAddress");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPLeaseLifeTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPServerIPAddress");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations12, ref readerCount12);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.DHCPLeaseLifeTime Read16_DHCPLeaseLifeTime(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id83_DHCPLeaseLifeTime && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.DHCPLeaseLifeTime o;
            o = new global::Com.HP.HPXML.DD.DHCPLeaseLifeTime();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations13 = 0;
            int readerCount13 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id77_LeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@LeaseTime = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id78_TimeUnits && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TimeUnits = Read11_TimeUnits(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations13, ref readerCount13);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.AddressExpirationLeaseTime Read15_AddressExpirationLeaseTime(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id56_AddressExpirationLeaseTime && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.AddressExpirationLeaseTime o;
            o = new global::Com.HP.HPXML.DD.AddressExpirationLeaseTime();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations14 = 0;
            int readerCount14 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id77_LeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@LeaseTime = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id78_TimeUnits && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TimeUnits = Read11_TimeUnits(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations14, ref readerCount14);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.IPVersionSupport Read14_IPVersionSupport(string s) {
            switch (s) {
                case @"ipv4": return global::Com.HP.HPXML.DD.IPVersionSupport.@ipv4;
                case @"ipv6": return global::Com.HP.HPXML.DD.IPVersionSupport.@ipv6;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.IPVersionSupport));
            }
        }

        global::Com.HP.HPXML.DD.Version Read2_Version(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id3_Version && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.Version o;
            o = new global::Com.HP.HPXML.DD.Version();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations15 = 0;
            int readerCount15 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id85_Revision && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@Revision = Reader.ReadElementString();
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id86_Date && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DateSpecified = true;
                        {
                            o.@Date = ToDate(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Revision, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Date");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Revision, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Date");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations15, ref readerCount15);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.DisconnectionTimeout Read12_DisconnectionTimeout(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id13_DisconnectionTimeout && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.DisconnectionTimeout o;
            o = new global::Com.HP.HPXML.DD.DisconnectionTimeout();
            bool[] paramsRead = new bool[2];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations16 = 0;
            int readerCount16 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id77_LeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@LeaseTime = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id78_TimeUnits && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@TimeUnits = Read11_TimeUnits(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:TimeUnits");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations16, ref readerCount16);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.ApplicationConfig2 Read37_ApplicationConfig2(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id11_ApplicationConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id10_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.ApplicationConfig2 o;
            o = new global::Com.HP.HPXML.DD.ApplicationConfig2();
            global::System.String[] a_1 = null;
            int ca_1 = 0;
            global::Com.HP.HPXML.DD.ApplicationServiceProtocol[] a_2 = null;
            int ca_2 = 0;
            bool[] paramsRead = new bool[6];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ApplicationServiceName = (global::System.String[])ShrinkArray(a_1, ca_1, typeof(global::System.String), true);
                o.@ApplicationServiceProtocol = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])ShrinkArray(a_2, ca_2, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations17 = 0;
            int readerCount17 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id87_ApplicationSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@ApplicationSupport = Read3_ApplicationSupport(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id88_ApplicationServiceName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_1 = (global::System.String[])EnsureArrayIndex(a_1, ca_1, typeof(global::System.String));a_1[ca_1++] = Reader.ReadElementString();
                        }
                    }
                    else if (((object) Reader.LocalName == (object)id89_ApplicationServiceProtocol && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_2 = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])EnsureArrayIndex(a_2, ca_2, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol));a_2[ca_2++] = Read4_ApplicationServiceProtocol(Reader.ReadElementString());
                        }
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id60_DomainName && (object) Reader.NamespaceURI == (object)id10_Item)) {
                        {
                            o.@DomainName = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id90_SNMPConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SNMPConfig = Read9_SNMPConfig(false, true);
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id3_Version && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@Version = Read2_Version(false, true);
                        paramsRead[5] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceProtocol, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceProtocol, http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations17, ref readerCount17);
            }
            o.@ApplicationServiceName = (global::System.String[])ShrinkArray(a_1, ca_1, typeof(global::System.String), true);
            o.@ApplicationServiceProtocol = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])ShrinkArray(a_2, ca_2, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.SNMPConfig Read9_SNMPConfig(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id90_SNMPConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else if (((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id91_SNMPConfigWithVersion && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item))
                return Read8_SNMPConfigWithVersion(isNullable, false);
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.SNMPConfig o;
            o = new global::Com.HP.HPXML.DD.SNMPConfig();
            bool[] paramsRead = new bool[5];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations18 = 0;
            int readerCount18 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id92_AccessOption && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AccessOptionSpecified = true;
                        {
                            o.@AccessOption = Read5_AccessOption(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id93_GetCommunityNameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@GetCommunityNameConfigSpecified = true;
                        {
                            o.@GetCommunityNameConfig = Read6_CommunityNameConfig(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id94_SetCommunityNameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SetCommunityNameConfigSpecified = true;
                        {
                            o.@SetCommunityNameConfig = Read6_CommunityNameConfig(Reader.ReadElementString());
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id95_GetCommunityName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@GetCommunityName = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id96_SetCommunityName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@SetCommunityName = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AccessOption, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityName");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AccessOption, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityName");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations18, ref readerCount18);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.CommunityNameConfig Read6_CommunityNameConfig(string s) {
            switch (s) {
                case @"publicAllowed": return global::Com.HP.HPXML.DD.CommunityNameConfig.@publicAllowed;
                case @"publicNotAllowed": return global::Com.HP.HPXML.DD.CommunityNameConfig.@publicNotAllowed;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.CommunityNameConfig));
            }
        }

        global::Com.HP.HPXML.DD.AccessOption Read5_AccessOption(string s) {
            switch (s) {
                case @"readWrite": return global::Com.HP.HPXML.DD.AccessOption.@readWrite;
                case @"readOnly": return global::Com.HP.HPXML.DD.AccessOption.@readOnly;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.AccessOption));
            }
        }

        global::Com.HP.HPXML.DD.SNMPConfigWithVersion Read8_SNMPConfigWithVersion(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id91_SNMPConfigWithVersion && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id4_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.SNMPConfigWithVersion o;
            o = new global::Com.HP.HPXML.DD.SNMPConfigWithVersion();
            bool[] paramsRead = new bool[7];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations19 = 0;
            int readerCount19 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id92_AccessOption && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AccessOptionSpecified = true;
                        {
                            o.@AccessOption = Read5_AccessOption(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id93_GetCommunityNameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@GetCommunityNameConfigSpecified = true;
                        {
                            o.@GetCommunityNameConfig = Read6_CommunityNameConfig(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id94_SetCommunityNameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SetCommunityNameConfigSpecified = true;
                        {
                            o.@SetCommunityNameConfig = Read6_CommunityNameConfig(Reader.ReadElementString());
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id95_GetCommunityName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@GetCommunityName = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id96_SetCommunityName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@SetCommunityName = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id26_SNMP && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SNMPSpecified = true;
                        {
                            o.@SNMP = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id3_Version && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@Version = Read2_Version(false, true);
                        paramsRead[6] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AccessOption, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AccessOption, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:GetCommunityName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SetCommunityName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMP, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations19, ref readerCount19);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.ApplicationServiceProtocol Read4_ApplicationServiceProtocol(string s) {
            switch (s) {
                case @"ftp": return global::Com.HP.HPXML.DD.ApplicationServiceProtocol.@ftp;
                case @"http": return global::Com.HP.HPXML.DD.ApplicationServiceProtocol.@http;
                case @"telnet": return global::Com.HP.HPXML.DD.ApplicationServiceProtocol.@telnet;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol));
            }
        }

        global::Com.HP.HPXML.DD.ApplicationSupport Read3_ApplicationSupport(string s) {
            switch (s) {
                case @"AutoIP": return global::Com.HP.HPXML.DD.ApplicationSupport.@AutoIP;
                case @"Bonjour": return global::Com.HP.HPXML.DD.ApplicationSupport.@Bonjour;
                case @"BOOTP": return global::Com.HP.HPXML.DD.ApplicationSupport.@BOOTP;
                case @"DHCPv4": return global::Com.HP.HPXML.DD.ApplicationSupport.@DHCPv4;
                case @"DHCPv6": return global::Com.HP.HPXML.DD.ApplicationSupport.@DHCPv6;
                case @"LPD": return global::Com.HP.HPXML.DD.ApplicationSupport.@LPD;
                case @"LLMNR": return global::Com.HP.HPXML.DD.ApplicationSupport.@LLMNR;
                case @"MDNS": return global::Com.HP.HPXML.DD.ApplicationSupport.@MDNS;
                case @"networkSupported": return global::Com.HP.HPXML.DD.ApplicationSupport.@networkSupported;
                case @"SLP": return global::Com.HP.HPXML.DD.ApplicationSupport.@SLP;
                case @"SNMP": return global::Com.HP.HPXML.DD.ApplicationSupport.@SNMP;
                case @"wsDiscovery": return global::Com.HP.HPXML.DD.ApplicationSupport.@wsDiscovery;
                case @"wsPrint": return global::Com.HP.HPXML.DD.ApplicationSupport.@wsPrint;
                case @"wsScan": return global::Com.HP.HPXML.DD.ApplicationSupport.@wsScan;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.ApplicationSupport));
            }
        }

        global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.NetworkSettings Read35_NetworkSettings(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id9_NetworkSettings && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id8_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.NetworkSettings o;
            o = new global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.NetworkSettings();
            global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[] a_0 = null;
            int ca_0 = 0;
            bool[] paramsRead = new bool[1];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations20 = 0;
            int readerCount20 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id97_EnabledDefaultSettings && (object) Reader.NamespaceURI == (object)id8_Item)) {
                        if (!ReadNull()) {
                            global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[] a_0_0 = null;
                            int ca_0_0 = 0;
                            if ((Reader.IsEmptyElement)) {
                                Reader.Skip();
                            }
                            else {
                                Reader.ReadStartElement();
                                Reader.MoveToContent();
                                int whileIterations21 = 0;
                                int readerCount21 = ReaderCount;
                                while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                                    if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                                        if (((object) Reader.LocalName == (object)id98_DefaultSetting && (object) Reader.NamespaceURI == (object)id99_Item)) {
                                            {
                                                a_0_0 = (global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])EnsureArrayIndex(a_0_0, ca_0_0, typeof(global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting));a_0_0[ca_0_0++] = Read33_DefaultSetting(Reader.ReadElementString());
                                            }
                                        }
                                        else {
                                            UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21:DefaultSetting");
                                        }
                                    }
                                    else {
                                        UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21:DefaultSetting");
                                    }
                                    Reader.MoveToContent();
                                    CheckReaderCount(ref whileIterations21, ref readerCount21);
                                }
                            ReadEndElement();
                            }
                            o.@EnabledDefaultSettings = (global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])ShrinkArray(a_0_0, ca_0_0, typeof(global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting), false);
                        }
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:EnabledDefaultSettings");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:EnabledDefaultSettings");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations20, ref readerCount20);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting Read33_DefaultSetting(string s) {
            switch (s) {
                case @"FactoryDefault": return global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting.@FactoryDefault;
                case @"GroupDefault": return global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting.@GroupDefault;
                default: throw CreateUnknownConstantException(s, typeof(global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting));
            }
        }

        global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.HostDomainNameSettings Read34_HostDomainNameSettings(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id7_HostDomainNameSettings && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id8_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.HostDomainNameSettings o;
            o = new global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.HostDomainNameSettings();
            global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[] a_0 = null;
            int ca_0 = 0;
            bool[] paramsRead = new bool[1];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations22 = 0;
            int readerCount22 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id97_EnabledDefaultSettings && (object) Reader.NamespaceURI == (object)id8_Item)) {
                        if (!ReadNull()) {
                            global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[] a_0_0 = null;
                            int ca_0_0 = 0;
                            if ((Reader.IsEmptyElement)) {
                                Reader.Skip();
                            }
                            else {
                                Reader.ReadStartElement();
                                Reader.MoveToContent();
                                int whileIterations23 = 0;
                                int readerCount23 = ReaderCount;
                                while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                                    if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                                        if (((object) Reader.LocalName == (object)id98_DefaultSetting && (object) Reader.NamespaceURI == (object)id99_Item)) {
                                            {
                                                a_0_0 = (global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])EnsureArrayIndex(a_0_0, ca_0_0, typeof(global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting));a_0_0[ca_0_0++] = Read33_DefaultSetting(Reader.ReadElementString());
                                            }
                                        }
                                        else {
                                            UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21:DefaultSetting");
                                        }
                                    }
                                    else {
                                        UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21:DefaultSetting");
                                    }
                                    Reader.MoveToContent();
                                    CheckReaderCount(ref whileIterations23, ref readerCount23);
                                }
                            ReadEndElement();
                            }
                            o.@EnabledDefaultSettings = (global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting[])ShrinkArray(a_0_0, ca_0_0, typeof(global::Com.HP.HPXML.DD.LEDMObjects.DefaultSetting), false);
                        }
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:EnabledDefaultSettings");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1:EnabledDefaultSettings");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations22, ref readerCount22);
            }
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.IOAdaptorConfig1 Read32_IOAdaptorConfig1(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id5_IOAdaptorConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id6_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IOAdaptorConfig1 o;
            o = new global::Com.HP.HPXML.DD.IOAdaptorConfig1();
            global::Com.HP.HPXML.DD.ApplicationConfig1[] a_0 = null;
            int ca_0 = 0;
            global::Com.HP.HPXML.DD.ApplicationSupport[] a_1 = null;
            int ca_1 = 0;
            bool[] paramsRead = new bool[6];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ApplicationConfig = (global::Com.HP.HPXML.DD.ApplicationConfig1[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ApplicationConfig1), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations24 = 0;
            int readerCount24 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (((object) Reader.LocalName == (object)id11_ApplicationConfig && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        a_0 = (global::Com.HP.HPXML.DD.ApplicationConfig1[])EnsureArrayIndex(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ApplicationConfig1));a_0[ca_0++] = Read10_ApplicationConfig1(false, true);
                    }
                    else if (((object) Reader.LocalName == (object)id100_ApplicationsEnabled && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        if (!ReadNull()) {
                            global::Com.HP.HPXML.DD.ApplicationSupport[] a_1_0 = null;
                            int ca_1_0 = 0;
                            if ((Reader.IsEmptyElement)) {
                                Reader.Skip();
                            }
                            else {
                                Reader.ReadStartElement();
                                Reader.MoveToContent();
                                int whileIterations25 = 0;
                                int readerCount25 = ReaderCount;
                                while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                                    if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                                        if (((object) Reader.LocalName == (object)id87_ApplicationSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                                            {
                                                a_1_0 = (global::Com.HP.HPXML.DD.ApplicationSupport[])EnsureArrayIndex(a_1_0, ca_1_0, typeof(global::Com.HP.HPXML.DD.ApplicationSupport));a_1_0[ca_1_0++] = Read3_ApplicationSupport(Reader.ReadElementString());
                                            }
                                        }
                                        else {
                                            UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationSupport");
                                        }
                                    }
                                    else {
                                        UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationSupport");
                                    }
                                    Reader.MoveToContent();
                                    CheckReaderCount(ref whileIterations25, ref readerCount25);
                                }
                            ReadEndElement();
                            }
                            o.@ApplicationsEnabled = (global::Com.HP.HPXML.DD.ApplicationSupport[])ShrinkArray(a_1_0, ca_1_0, typeof(global::Com.HP.HPXML.DD.ApplicationSupport), false);
                        }
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id12_DeviceConnectivityPortType && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@DeviceConnectivityPortType = Reader.ReadElementString();
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id13_DisconnectionTimeout && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DisconnectionTimeout = Read12_DisconnectionTimeout(false, true);
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id14_NetworkAdaptorConfig && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        o.@NetworkAdaptorConfig = Read30_NetworkAdaptorConfig1(false, true);
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id15_NetworkStatistics && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@NetworkStatistics = Read31_NetworkStatistics(false, true);
                        paramsRead[5] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:ApplicationConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationsEnabled, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DeviceConnectivityPortType, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DisconnectionTimeout, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:NetworkAdaptorConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatistics");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:ApplicationConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationsEnabled, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DeviceConnectivityPortType, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DisconnectionTimeout, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:NetworkAdaptorConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatistics");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations24, ref readerCount24);
            }
            o.@ApplicationConfig = (global::Com.HP.HPXML.DD.ApplicationConfig1[])ShrinkArray(a_0, ca_0, typeof(global::Com.HP.HPXML.DD.ApplicationConfig1), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.NetworkAdaptorConfig1 Read30_NetworkAdaptorConfig1(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id14_NetworkAdaptorConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id6_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.NetworkAdaptorConfig1 o;
            o = new global::Com.HP.HPXML.DD.NetworkAdaptorConfig1();
            global::Com.HP.HPXML.DD.IPVersionConfig1[] a_10 = null;
            int ca_10 = 0;
            global::Com.HP.HPXML.DD.IPVersionSupport[] a_11 = null;
            int ca_11 = 0;
            bool[] paramsRead = new bool[16];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@IPVersionConfig = (global::Com.HP.HPXML.DD.IPVersionConfig1[])ShrinkArray(a_10, ca_10, typeof(global::Com.HP.HPXML.DD.IPVersionConfig1), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations26 = 0;
            int readerCount26 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id36_AdaptorFirmwareDateCode && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AdaptorFirmwareDateCode = Read2_Version(false, true);
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id37_AutomaticCrossOverMode && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AutomaticCrossOverModeSpecified = true;
                        {
                            o.@AutomaticCrossOverMode = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id38_BOOTP_DHCPv4SuppliedDomainName && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@BOOTP_DHCPv4SuppliedDomainName = Reader.ReadElementString();
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id39_BOOTP_DHCPv4SuppliedHostname && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@BOOTP_DHCPv4SuppliedHostname = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id40_CurrentHostname && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@CurrentHostname = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id41_CurrentHostnameConfigByMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@CurrentHostnameConfigByMethodSpecified = true;
                        {
                            o.@CurrentHostnameConfigByMethod = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id42_DefaultHostname && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@DefaultHostname = Reader.ReadElementString();
                        }
                        paramsRead[6] = true;
                    }
                    else if (!paramsRead[7] && ((object) Reader.LocalName == (object)id43_DHCPv6SuppliedDomainName && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@DHCPv6SuppliedDomainName = Reader.ReadElementString();
                        }
                        paramsRead[7] = true;
                    }
                    else if (!paramsRead[8] && ((object) Reader.LocalName == (object)id44_DHCPv6SuppliedHostname && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@DHCPv6SuppliedHostname = Reader.ReadElementString();
                        }
                        paramsRead[8] = true;
                    }
                    else if (!paramsRead[9] && ((object) Reader.LocalName == (object)id45_HardwareAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@HardwareAddress = Reader.ReadElementString();
                        }
                        paramsRead[9] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id46_IPVersionConfig && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        a_10 = (global::Com.HP.HPXML.DD.IPVersionConfig1[])EnsureArrayIndex(a_10, ca_10, typeof(global::Com.HP.HPXML.DD.IPVersionConfig1));a_10[ca_10++] = Read27_IPVersionConfig1(false, true);
                    }
                    else if (((object) Reader.LocalName == (object)id101_IPVersionEnabled && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        if (!ReadNull()) {
                            global::Com.HP.HPXML.DD.IPVersionSupport[] a_11_0 = null;
                            int ca_11_0 = 0;
                            if ((Reader.IsEmptyElement)) {
                                Reader.Skip();
                            }
                            else {
                                Reader.ReadStartElement();
                                Reader.MoveToContent();
                                int whileIterations27 = 0;
                                int readerCount27 = ReaderCount;
                                while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                                    if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                                        if (((object) Reader.LocalName == (object)id51_IPVersionSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                                            {
                                                a_11_0 = (global::Com.HP.HPXML.DD.IPVersionSupport[])EnsureArrayIndex(a_11_0, ca_11_0, typeof(global::Com.HP.HPXML.DD.IPVersionSupport));a_11_0[ca_11_0++] = Read14_IPVersionSupport(Reader.ReadElementString());
                                            }
                                        }
                                        else {
                                            UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionSupport");
                                        }
                                    }
                                    else {
                                        UnknownNode(null, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionSupport");
                                    }
                                    Reader.MoveToContent();
                                    CheckReaderCount(ref whileIterations27, ref readerCount27);
                                }
                            ReadEndElement();
                            }
                            o.@IPVersionEnabled = (global::Com.HP.HPXML.DD.IPVersionSupport[])ShrinkArray(a_11_0, ca_11_0, typeof(global::Com.HP.HPXML.DD.IPVersionSupport), false);
                        }
                    }
                    else if (!paramsRead[12] && ((object) Reader.LocalName == (object)id47_LinkNegotiation && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@LinkNegotiationSpecified = true;
                        {
                            o.@LinkNegotiation = Read28_LinkNegotiation(Reader.ReadElementString());
                        }
                        paramsRead[12] = true;
                    }
                    else if (!paramsRead[13] && ((object) Reader.LocalName == (object)id48_NumOfCurrentHostnames && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@NumOfCurrentHostnamesSpecified = true;
                        {
                            o.@NumOfCurrentHostnames = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[13] = true;
                    }
                    else if (!paramsRead[14] && ((object) Reader.LocalName == (object)id49_PreferredHostnamePriority && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@PreferredHostnamePrioritySpecified = true;
                        {
                            o.@PreferredHostnamePriority = Read13_ConfigMethod(Reader.ReadElementString());
                        }
                        paramsRead[14] = true;
                    }
                    else if (!paramsRead[15] && ((object) Reader.LocalName == (object)id50_SpeedDuplexNegotiationMode && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SpeedDuplexNegotiationModeSpecified = true;
                        {
                            o.@SpeedDuplexNegotiationMode = Read29_PortConfiguration(Reader.ReadElementString());
                        }
                        paramsRead[15] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AdaptorFirmwareDateCode, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AutomaticCrossOverMode, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:BOOTP_DHCPv4SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:BOOTP_DHCPv4SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:CurrentHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:CurrentHostnameConfigByMethod, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DefaultHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DHCPv6SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DHCPv6SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HardwareAddress, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:IPVersionConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionEnabled, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LinkNegotiation, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NumOfCurrentHostnames, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredHostnamePriority, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SpeedDuplexNegotiationMode");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AdaptorFirmwareDateCode, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AutomaticCrossOverMode, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:BOOTP_DHCPv4SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:BOOTP_DHCPv4SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:CurrentHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:CurrentHostnameConfigByMethod, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DefaultHostname, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DHCPv6SuppliedDomainName, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DHCPv6SuppliedHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HardwareAddress, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:IPVersionConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionEnabled, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:LinkNegotiation, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NumOfCurrentHostnames, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredHostnamePriority, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SpeedDuplexNegotiationMode");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations26, ref readerCount26);
            }
            o.@IPVersionConfig = (global::Com.HP.HPXML.DD.IPVersionConfig1[])ShrinkArray(a_10, ca_10, typeof(global::Com.HP.HPXML.DD.IPVersionConfig1), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.IPVersionConfig1 Read27_IPVersionConfig1(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id46_IPVersionConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id6_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IPVersionConfig1 o;
            o = new global::Com.HP.HPXML.DD.IPVersionConfig1();
            global::Com.HP.HPXML.DD.IPConfig1[] a_1 = null;
            int ca_1 = 0;
            bool[] paramsRead = new bool[5];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@IPConfig = (global::Com.HP.HPXML.DD.IPConfig1[])ShrinkArray(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IPConfig1), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations28 = 0;
            int readerCount28 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id51_IPVersionSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPVersionSupport = Read14_IPVersionSupport(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id52_IPConfig && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        a_1 = (global::Com.HP.HPXML.DD.IPConfig1[])EnsureArrayIndex(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IPConfig1));a_1[ca_1++] = Read25_IPConfig1(false, true);
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id53_NetworkStatus && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@NetworkStatusSpecified = true;
                        {
                            o.@NetworkStatus = Read26_NetworkStatus(Reader.ReadElementString());
                        }
                        paramsRead[2] = true;
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id54_PreferredHostname && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@PreferredHostname = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id55_PreferredIPAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@PreferredIPAddress = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionSupport, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:IPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatus, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:PreferredHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredIPAddress");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPVersionSupport, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:IPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:NetworkStatus, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:PreferredHostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:PreferredIPAddress");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations28, ref readerCount28);
            }
            o.@IPConfig = (global::Com.HP.HPXML.DD.IPConfig1[])ShrinkArray(a_1, ca_1, typeof(global::Com.HP.HPXML.DD.IPConfig1), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.IPConfig1 Read25_IPConfig1(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id52_IPConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id6_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.IPConfig1 o;
            o = new global::Com.HP.HPXML.DD.IPConfig1();
            global::Com.HP.HPXML.DD.DNSConfig[] a_3 = null;
            int ca_3 = 0;
            bool[] paramsRead = new bool[18];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@DNSConfig = (global::Com.HP.HPXML.DD.DNSConfig[])ShrinkArray(a_3, ca_3, typeof(global::Com.HP.HPXML.DD.DNSConfig), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations29 = 0;
            int readerCount29 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id56_AddressExpirationLeaseTime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@AddressExpirationLeaseTime = Read15_AddressExpirationLeaseTime(false, true);
                        paramsRead[0] = true;
                    }
                    else if (!paramsRead[1] && ((object) Reader.LocalName == (object)id57_DefaultGateway && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@DefaultGateway = Reader.ReadElementString();
                        }
                        paramsRead[1] = true;
                    }
                    else if (!paramsRead[2] && ((object) Reader.LocalName == (object)id58_DHCPConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DHCPConfig = Read17_DHCPConfig(false, true);
                        paramsRead[2] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id59_DNSConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        a_3 = (global::Com.HP.HPXML.DD.DNSConfig[])EnsureArrayIndex(a_3, ca_3, typeof(global::Com.HP.HPXML.DD.DNSConfig));a_3[ca_3++] = Read19_DNSConfig(false, true);
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id60_DomainName && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@DomainName = Reader.ReadElementString();
                        }
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id61_DomainNameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@DomainNameConfig = Read20_DomainNameConfig(false, true);
                        paramsRead[5] = true;
                    }
                    else if (!paramsRead[6] && ((object) Reader.LocalName == (object)id62_Hostname && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@Hostname = Reader.ReadElementString();
                        }
                        paramsRead[6] = true;
                    }
                    else if (!paramsRead[7] && ((object) Reader.LocalName == (object)id63_HostnameConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@HostnameConfig = Read21_HostnameConfig(false, true);
                        paramsRead[7] = true;
                    }
                    else if (!paramsRead[8] && ((object) Reader.LocalName == (object)id64_IPAddress && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPAddress = Reader.ReadElementString();
                        }
                        paramsRead[8] = true;
                    }
                    else if (!paramsRead[9] && ((object) Reader.LocalName == (object)id65_IPAddressPrefixLength && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPAddressPrefixLengthSpecified = true;
                        {
                            o.@IPAddressPrefixLength = System.Xml.XmlConvert.ToInt32(Reader.ReadElementString());
                        }
                        paramsRead[9] = true;
                    }
                    else if (!paramsRead[10] && ((object) Reader.LocalName == (object)id66_IPAddressPreferredLifetime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPAddressPreferredLifetime = Read22_IPAddressPreferredLifeTime(false, true);
                        paramsRead[10] = true;
                    }
                    else if (!paramsRead[11] && ((object) Reader.LocalName == (object)id67_IPAddressValidLifetime && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@IPAddressValidLifetime = Read23_IPAddressValidLifeTime(false, true);
                        paramsRead[11] = true;
                    }
                    else if (!paramsRead[12] && ((object) Reader.LocalName == (object)id68_IPConfigMethod && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPConfigMethod = Reader.ReadElementString();
                        }
                        paramsRead[12] = true;
                    }
                    else if (!paramsRead[13] && ((object) Reader.LocalName == (object)id69_IPConfigServer && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@IPConfigServer = Reader.ReadElementString();
                        }
                        paramsRead[13] = true;
                    }
                    else if (!paramsRead[14] && ((object) Reader.LocalName == (object)id70_MDNSSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@MDNSSupportSpecified = true;
                        {
                            o.@MDNSSupport = Read7_EnableDisable(Reader.ReadElementString());
                        }
                        paramsRead[14] = true;
                    }
                    else if (!paramsRead[15] && ((object) Reader.LocalName == (object)id71_SubnetMask && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@SubnetMask = Reader.ReadElementString();
                        }
                        paramsRead[15] = true;
                    }
                    else if (!paramsRead[16] && ((object) Reader.LocalName == (object)id72_WINSServerName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@WINSServerName = Reader.ReadElementString();
                        }
                        paramsRead[16] = true;
                    }
                    else if (!paramsRead[17] && ((object) Reader.LocalName == (object)id73_WINSServerConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@WINSServerConfig = Read24_WINSServerConfig(false, true);
                        paramsRead[17] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AddressExpirationLeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DefaultGateway, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DomainNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:Hostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HostnameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddress, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPrefixLength, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPreferredLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressValidLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigServer, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:MDNSSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SubnetMask, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerConfig");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:AddressExpirationLeaseTime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DefaultGateway, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DHCPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DNSConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:DomainNameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:Hostname, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:HostnameConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddress, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPrefixLength, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressPreferredLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPAddressValidLifetime, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigMethod, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:IPConfigServer, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:MDNSSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SubnetMask, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:WINSServerConfig");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations29, ref readerCount29);
            }
            o.@DNSConfig = (global::Com.HP.HPXML.DD.DNSConfig[])ShrinkArray(a_3, ca_3, typeof(global::Com.HP.HPXML.DD.DNSConfig), true);
            ReadEndElement();
            return o;
        }

        global::Com.HP.HPXML.DD.ApplicationConfig1 Read10_ApplicationConfig1(bool isNullable, bool checkType) {
            System.Xml.XmlQualifiedName xsiType = checkType ? GetXsiType() : null;
            bool isNull = false;
            if (isNullable) isNull = ReadNull();
            if (checkType) {
            if (xsiType == null || ((object) ((System.Xml.XmlQualifiedName)xsiType).Name == (object)id11_ApplicationConfig && (object) ((System.Xml.XmlQualifiedName)xsiType).Namespace == (object)id6_Item)) {
            }
            else
                throw CreateUnknownTypeException((System.Xml.XmlQualifiedName)xsiType);
            }
            if (isNull) return null;
            global::Com.HP.HPXML.DD.ApplicationConfig1 o;
            o = new global::Com.HP.HPXML.DD.ApplicationConfig1();
            global::System.String[] a_1 = null;
            int ca_1 = 0;
            global::Com.HP.HPXML.DD.ApplicationServiceProtocol[] a_2 = null;
            int ca_2 = 0;
            bool[] paramsRead = new bool[6];
            while (Reader.MoveToNextAttribute()) {
                if (!IsXmlnsAttribute(Reader.Name)) {
                    UnknownNode((object)o);
                }
            }
            Reader.MoveToElement();
            if (Reader.IsEmptyElement) {
                Reader.Skip();
                o.@ApplicationServiceName = (global::System.String[])ShrinkArray(a_1, ca_1, typeof(global::System.String), true);
                o.@ApplicationServiceProtocol = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])ShrinkArray(a_2, ca_2, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol), true);
                return o;
            }
            Reader.ReadStartElement();
            Reader.MoveToContent();
            int whileIterations30 = 0;
            int readerCount30 = ReaderCount;
            while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && Reader.NodeType != System.Xml.XmlNodeType.None) {
                if (Reader.NodeType == System.Xml.XmlNodeType.Element) {
                    if (!paramsRead[0] && ((object) Reader.LocalName == (object)id87_ApplicationSupport && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            o.@ApplicationSupport = Read3_ApplicationSupport(Reader.ReadElementString());
                        }
                        paramsRead[0] = true;
                    }
                    else if (((object) Reader.LocalName == (object)id88_ApplicationServiceName && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_1 = (global::System.String[])EnsureArrayIndex(a_1, ca_1, typeof(global::System.String));a_1[ca_1++] = Reader.ReadElementString();
                        }
                    }
                    else if (((object) Reader.LocalName == (object)id89_ApplicationServiceProtocol && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        {
                            a_2 = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])EnsureArrayIndex(a_2, ca_2, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol));a_2[ca_2++] = Read4_ApplicationServiceProtocol(Reader.ReadElementString());
                        }
                    }
                    else if (!paramsRead[3] && ((object) Reader.LocalName == (object)id60_DomainName && (object) Reader.NamespaceURI == (object)id6_Item)) {
                        {
                            o.@DomainName = Reader.ReadElementString();
                        }
                        paramsRead[3] = true;
                    }
                    else if (!paramsRead[4] && ((object) Reader.LocalName == (object)id90_SNMPConfig && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@SNMPConfig = Read9_SNMPConfig(false, true);
                        paramsRead[4] = true;
                    }
                    else if (!paramsRead[5] && ((object) Reader.LocalName == (object)id3_Version && (object) Reader.NamespaceURI == (object)id4_Item)) {
                        o.@Version = Read2_Version(false, true);
                        paramsRead[5] = true;
                    }
                    else {
                        UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceProtocol, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version");
                    }
                }
                else {
                    UnknownNode((object)o, @"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationSupport, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:ApplicationServiceProtocol, http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10:DomainName, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:SNMPConfig, http://www.hp.com/schemas/imaging/con/dictionaries/1.0/:Version");
                }
                Reader.MoveToContent();
                CheckReaderCount(ref whileIterations30, ref readerCount30);
            }
            o.@ApplicationServiceName = (global::System.String[])ShrinkArray(a_1, ca_1, typeof(global::System.String), true);
            o.@ApplicationServiceProtocol = (global::Com.HP.HPXML.DD.ApplicationServiceProtocol[])ShrinkArray(a_2, ca_2, typeof(global::Com.HP.HPXML.DD.ApplicationServiceProtocol), true);
            ReadEndElement();
            return o;
        }

        protected override void InitCallbacks() {
        }

        string id1_IOConfigDyn;
        string id41_CurrentHostnameConfigByMethod;
        string id52_IPConfig;
        string id48_NumOfCurrentHostnames;
        string id69_IPConfigServer;
        string id44_DHCPv6SuppliedHostname;
        string id17_Bonjour;
        string id14_NetworkAdaptorConfig;
        string id58_DHCPConfig;
        string id34_TotalUnicastPacketsReceived;
        string id10_Item;
        string id71_SubnetMask;
        string id27_WSDiscovery;
        string id16_AutoIP;
        string id9_NetworkSettings;
        string id94_SetCommunityNameConfig;
        string id3_Version;
        string id61_DomainNameConfig;
        string id43_DHCPv6SuppliedDomainName;
        string id74_ConfigMethod;
        string id64_IPAddress;
        string id12_DeviceConnectivityPortType;
        string id98_DefaultSetting;
        string id2_Item;
        string id29_FramingErrorsReceived;
        string id68_IPConfigMethod;
        string id56_AddressExpirationLeaseTime;
        string id11_ApplicationConfig;
        string id5_IOAdaptorConfig;
        string id66_IPAddressPreferredLifetime;
        string id36_AdaptorFirmwareDateCode;
        string id23_LPD;
        string id46_IPVersionConfig;
        string id53_NetworkStatus;
        string id18_BOOTP;
        string id93_GetCommunityNameConfig;
        string id38_BOOTP_DHCPv4SuppliedDomainName;
        string id95_GetCommunityName;
        string id21_IPv4;
        string id92_AccessOption;
        string id8_Item;
        string id96_SetCommunityName;
        string id84_DHCPServerIPAddress;
        string id24_LLMNR;
        string id55_PreferredIPAddress;
        string id31_TotalPacketsTransmitted;
        string id19_DHCPv4;
        string id80_DNSFeatures;
        string id86_Date;
        string id62_Hostname;
        string id32_TransmitCollisions;
        string id57_DefaultGateway;
        string id63_HostnameConfig;
        string id39_BOOTP_DHCPv4SuppliedHostname;
        string id60_DomainName;
        string id59_DNSConfig;
        string id89_ApplicationServiceProtocol;
        string id13_DisconnectionTimeout;
        string id72_WINSServerName;
        string id47_LinkNegotiation;
        string id91_SNMPConfigWithVersion;
        string id82_DNSServerSuffix;
        string id87_ApplicationSupport;
        string id65_IPAddressPrefixLength;
        string id75_ConfigurationServer;
        string id42_DefaultHostname;
        string id45_HardwareAddress;
        string id30_TotalPacketsReceived;
        string id7_HostDomainNameSettings;
        string id25_SLPSupport;
        string id15_NetworkStatistics;
        string id100_ApplicationsEnabled;
        string id40_CurrentHostname;
        string id83_DHCPLeaseLifeTime;
        string id28_BadPacketsReceived;
        string id101_IPVersionEnabled;
        string id76_IPAddressValidLifeTime;
        string id26_SNMP;
        string id54_PreferredHostname;
        string id35_UnsendablePackets;
        string id70_MDNSSupport;
        string id81_DNSServerIPAddress;
        string id49_PreferredHostnamePriority;
        string id33_TransmitLateCollisions;
        string id88_ApplicationServiceName;
        string id79_IPAddressPreferredLifeTime;
        string id22_IPv6;
        string id20_DHCPv6;
        string id4_Item;
        string id73_WINSServerConfig;
        string id37_AutomaticCrossOverMode;
        string id51_IPVersionSupport;
        string id90_SNMPConfig;
        string id85_Revision;
        string id99_Item;
        string id67_IPAddressValidLifetime;
        string id77_LeaseTime;
        string id50_SpeedDuplexNegotiationMode;
        string id97_EnabledDefaultSettings;
        string id6_Item;
        string id78_TimeUnits;

        protected override void InitIDs() {
            id1_IOConfigDyn = Reader.NameTable.Add(@"IOConfigDyn");
            id41_CurrentHostnameConfigByMethod = Reader.NameTable.Add(@"CurrentHostnameConfigByMethod");
            id52_IPConfig = Reader.NameTable.Add(@"IPConfig");
            id48_NumOfCurrentHostnames = Reader.NameTable.Add(@"NumOfCurrentHostnames");
            id69_IPConfigServer = Reader.NameTable.Add(@"IPConfigServer");
            id44_DHCPv6SuppliedHostname = Reader.NameTable.Add(@"DHCPv6SuppliedHostname");
            id17_Bonjour = Reader.NameTable.Add(@"Bonjour");
            id14_NetworkAdaptorConfig = Reader.NameTable.Add(@"NetworkAdaptorConfig");
            id58_DHCPConfig = Reader.NameTable.Add(@"DHCPConfig");
            id34_TotalUnicastPacketsReceived = Reader.NameTable.Add(@"TotalUnicastPacketsReceived");
            id10_Item = Reader.NameTable.Add(@"http://www.hp.com/schemas/imaging/con/dictionaries/2009/04/06");
            id71_SubnetMask = Reader.NameTable.Add(@"SubnetMask");
            id27_WSDiscovery = Reader.NameTable.Add(@"WSDiscovery");
            id16_AutoIP = Reader.NameTable.Add(@"AutoIP");
            id9_NetworkSettings = Reader.NameTable.Add(@"NetworkSettings");
            id94_SetCommunityNameConfig = Reader.NameTable.Add(@"SetCommunityNameConfig");
            id3_Version = Reader.NameTable.Add(@"Version");
            id61_DomainNameConfig = Reader.NameTable.Add(@"DomainNameConfig");
            id43_DHCPv6SuppliedDomainName = Reader.NameTable.Add(@"DHCPv6SuppliedDomainName");
            id74_ConfigMethod = Reader.NameTable.Add(@"ConfigMethod");
            id64_IPAddress = Reader.NameTable.Add(@"IPAddress");
            id12_DeviceConnectivityPortType = Reader.NameTable.Add(@"DeviceConnectivityPortType");
            id98_DefaultSetting = Reader.NameTable.Add(@"DefaultSetting");
            id2_Item = Reader.NameTable.Add(@"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17");
            id29_FramingErrorsReceived = Reader.NameTable.Add(@"FramingErrorsReceived");
            id68_IPConfigMethod = Reader.NameTable.Add(@"IPConfigMethod");
            id56_AddressExpirationLeaseTime = Reader.NameTable.Add(@"AddressExpirationLeaseTime");
            id11_ApplicationConfig = Reader.NameTable.Add(@"ApplicationConfig");
            id5_IOAdaptorConfig = Reader.NameTable.Add(@"IOAdaptorConfig");
            id66_IPAddressPreferredLifetime = Reader.NameTable.Add(@"IPAddressPreferredLifetime");
            id36_AdaptorFirmwareDateCode = Reader.NameTable.Add(@"AdaptorFirmwareDateCode");
            id23_LPD = Reader.NameTable.Add(@"LPD");
            id46_IPVersionConfig = Reader.NameTable.Add(@"IPVersionConfig");
            id53_NetworkStatus = Reader.NameTable.Add(@"NetworkStatus");
            id18_BOOTP = Reader.NameTable.Add(@"BOOTP");
            id93_GetCommunityNameConfig = Reader.NameTable.Add(@"GetCommunityNameConfig");
            id38_BOOTP_DHCPv4SuppliedDomainName = Reader.NameTable.Add(@"BOOTP_DHCPv4SuppliedDomainName");
            id95_GetCommunityName = Reader.NameTable.Add(@"GetCommunityName");
            id21_IPv4 = Reader.NameTable.Add(@"IPv4");
            id92_AccessOption = Reader.NameTable.Add(@"AccessOption");
            id8_Item = Reader.NameTable.Add(@"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2007/11/1");
            id96_SetCommunityName = Reader.NameTable.Add(@"SetCommunityName");
            id84_DHCPServerIPAddress = Reader.NameTable.Add(@"DHCPServerIPAddress");
            id24_LLMNR = Reader.NameTable.Add(@"LLMNR");
            id55_PreferredIPAddress = Reader.NameTable.Add(@"PreferredIPAddress");
            id31_TotalPacketsTransmitted = Reader.NameTable.Add(@"TotalPacketsTransmitted");
            id19_DHCPv4 = Reader.NameTable.Add(@"DHCPv4");
            id80_DNSFeatures = Reader.NameTable.Add(@"DNSFeatures");
            id86_Date = Reader.NameTable.Add(@"Date");
            id62_Hostname = Reader.NameTable.Add(@"Hostname");
            id32_TransmitCollisions = Reader.NameTable.Add(@"TransmitCollisions");
            id57_DefaultGateway = Reader.NameTable.Add(@"DefaultGateway");
            id63_HostnameConfig = Reader.NameTable.Add(@"HostnameConfig");
            id39_BOOTP_DHCPv4SuppliedHostname = Reader.NameTable.Add(@"BOOTP_DHCPv4SuppliedHostname");
            id60_DomainName = Reader.NameTable.Add(@"DomainName");
            id59_DNSConfig = Reader.NameTable.Add(@"DNSConfig");
            id89_ApplicationServiceProtocol = Reader.NameTable.Add(@"ApplicationServiceProtocol");
            id13_DisconnectionTimeout = Reader.NameTable.Add(@"DisconnectionTimeout");
            id72_WINSServerName = Reader.NameTable.Add(@"WINSServerName");
            id47_LinkNegotiation = Reader.NameTable.Add(@"LinkNegotiation");
            id91_SNMPConfigWithVersion = Reader.NameTable.Add(@"SNMPConfigWithVersion");
            id82_DNSServerSuffix = Reader.NameTable.Add(@"DNSServerSuffix");
            id87_ApplicationSupport = Reader.NameTable.Add(@"ApplicationSupport");
            id65_IPAddressPrefixLength = Reader.NameTable.Add(@"IPAddressPrefixLength");
            id75_ConfigurationServer = Reader.NameTable.Add(@"ConfigurationServer");
            id42_DefaultHostname = Reader.NameTable.Add(@"DefaultHostname");
            id45_HardwareAddress = Reader.NameTable.Add(@"HardwareAddress");
            id30_TotalPacketsReceived = Reader.NameTable.Add(@"TotalPacketsReceived");
            id7_HostDomainNameSettings = Reader.NameTable.Add(@"HostDomainNameSettings");
            id25_SLPSupport = Reader.NameTable.Add(@"SLPSupport");
            id15_NetworkStatistics = Reader.NameTable.Add(@"NetworkStatistics");
            id100_ApplicationsEnabled = Reader.NameTable.Add(@"ApplicationsEnabled");
            id40_CurrentHostname = Reader.NameTable.Add(@"CurrentHostname");
            id83_DHCPLeaseLifeTime = Reader.NameTable.Add(@"DHCPLeaseLifeTime");
            id28_BadPacketsReceived = Reader.NameTable.Add(@"BadPacketsReceived");
            id101_IPVersionEnabled = Reader.NameTable.Add(@"IPVersionEnabled");
            id76_IPAddressValidLifeTime = Reader.NameTable.Add(@"IPAddressValidLifeTime");
            id26_SNMP = Reader.NameTable.Add(@"SNMP");
            id54_PreferredHostname = Reader.NameTable.Add(@"PreferredHostname");
            id35_UnsendablePackets = Reader.NameTable.Add(@"UnsendablePackets");
            id70_MDNSSupport = Reader.NameTable.Add(@"MDNSSupport");
            id81_DNSServerIPAddress = Reader.NameTable.Add(@"DNSServerIPAddress");
            id49_PreferredHostnamePriority = Reader.NameTable.Add(@"PreferredHostnamePriority");
            id33_TransmitLateCollisions = Reader.NameTable.Add(@"TransmitLateCollisions");
            id88_ApplicationServiceName = Reader.NameTable.Add(@"ApplicationServiceName");
            id79_IPAddressPreferredLifeTime = Reader.NameTable.Add(@"IPAddressPreferredLifeTime");
            id22_IPv6 = Reader.NameTable.Add(@"IPv6");
            id20_DHCPv6 = Reader.NameTable.Add(@"DHCPv6");
            id4_Item = Reader.NameTable.Add(@"http://www.hp.com/schemas/imaging/con/dictionaries/1.0/");
            id73_WINSServerConfig = Reader.NameTable.Add(@"WINSServerConfig");
            id37_AutomaticCrossOverMode = Reader.NameTable.Add(@"AutomaticCrossOverMode");
            id51_IPVersionSupport = Reader.NameTable.Add(@"IPVersionSupport");
            id90_SNMPConfig = Reader.NameTable.Add(@"SNMPConfig");
            id85_Revision = Reader.NameTable.Add(@"Revision");
            id99_Item = Reader.NameTable.Add(@"http://www.hp.com/schemas/imaging/con/ledm/2007/09/21");
            id67_IPAddressValidLifetime = Reader.NameTable.Add(@"IPAddressValidLifetime");
            id77_LeaseTime = Reader.NameTable.Add(@"LeaseTime");
            id50_SpeedDuplexNegotiationMode = Reader.NameTable.Add(@"SpeedDuplexNegotiationMode");
            id97_EnabledDefaultSettings = Reader.NameTable.Add(@"EnabledDefaultSettings");
            id6_Item = Reader.NameTable.Add(@"http://www.hp.com/schemas/imaging/con/dictionaries/2008/10/10");
            id78_TimeUnits = Reader.NameTable.Add(@"TimeUnits");
        }
    }

    public abstract class XmlSerializer1 : System.Xml.Serialization.XmlSerializer {
        protected override System.Xml.Serialization.XmlSerializationReader CreateReader() {
            return new XmlSerializationReaderIOConfigDyn2();
        }
        protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter() {
            return new XmlSerializationWriterIOConfigDyn2();
        }
    }

    public sealed class IOConfigDyn2Serializer : XmlSerializer1 {

        public override System.Boolean CanDeserialize(System.Xml.XmlReader xmlReader) {
            return xmlReader.IsStartElement(@"IOConfigDyn", @"http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17");
        }

        protected override void Serialize(object objectToSerialize, System.Xml.Serialization.XmlSerializationWriter writer) {
            ((XmlSerializationWriterIOConfigDyn2)writer).Write43_IOConfigDyn(objectToSerialize);
        }

        protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) {
            return ((XmlSerializationReaderIOConfigDyn2)reader).Read43_IOConfigDyn();
        }
    }

    public class XmlSerializerContract : global::System.Xml.Serialization.XmlSerializerImplementation {
        public override global::System.Xml.Serialization.XmlSerializationReader Reader { get { return new XmlSerializationReaderIOConfigDyn2(); } }
        public override global::System.Xml.Serialization.XmlSerializationWriter Writer { get { return new XmlSerializationWriterIOConfigDyn2(); } }
        System.Collections.Hashtable readMethods = null;
        public override System.Collections.Hashtable ReadMethods {
            get {
                if (readMethods == null) {
                    System.Collections.Hashtable _tmp = new System.Collections.Hashtable();
                    _tmp[@"Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2:http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17:IOConfigDyn:False:"] = @"Read43_IOConfigDyn";
                    if (readMethods == null) readMethods = _tmp;
                }
                return readMethods;
            }
        }
        System.Collections.Hashtable writeMethods = null;
        public override System.Collections.Hashtable WriteMethods {
            get {
                if (writeMethods == null) {
                    System.Collections.Hashtable _tmp = new System.Collections.Hashtable();
                    _tmp[@"Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2:http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17:IOConfigDyn:False:"] = @"Write43_IOConfigDyn";
                    if (writeMethods == null) writeMethods = _tmp;
                }
                return writeMethods;
            }
        }
        System.Collections.Hashtable typedSerializers = null;
        public override System.Collections.Hashtable TypedSerializers {
            get {
                if (typedSerializers == null) {
                    System.Collections.Hashtable _tmp = new System.Collections.Hashtable();
                    _tmp.Add(@"Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2:http://www.hp.com/schemas/imaging/con/ledm/ioconfigdyn/2009/03/17:IOConfigDyn:False:", new IOConfigDyn2Serializer());
                    if (typedSerializers == null) typedSerializers = _tmp;
                }
                return typedSerializers;
            }
        }
        public override System.Boolean CanSerialize(System.Type type) {
            if (type == typeof(global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2)) return true;
            return false;
        }
        public override System.Xml.Serialization.XmlSerializer GetSerializer(System.Type type) {
            if (type == typeof(global::Com.HP.HPXML.DD.LEDMObjects.IOConfig.IOConfigDyn2)) return new IOConfigDyn2Serializer();
            return null;
        }
    }
}
HP有什么程序一直不停的下载,编译,然后又被杀毒软件干掉,有懂行的看看HP的代码这是在干啥?

猜你喜欢

转载自blog.csdn.net/peihexian/article/details/78925505
今日推荐