Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / Dom / XmlDeclaration.cs / 1 / XmlDeclaration.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml {
using System.Text;
using System.Diagnostics;
// Represents the xml declaration nodes:
public class XmlDeclaration : XmlLinkedNode {
const string YES = "yes";
const string NO = "no";
const string VERNUM = "1.0";
private string encoding;
private string standalone;
protected internal XmlDeclaration( string version, string encoding, string standalone, XmlDocument doc ) : base( doc ) {
if ( version != VERNUM )
throw new ArgumentException( Res.GetString( Res.Xdom_Version ) );
if( ( standalone != null ) && ( standalone.Length > 0 ) )
if ( ( standalone != YES ) && ( standalone != NO ) )
throw new ArgumentException( Res.GetString(Res.Xdom_standalone, standalone) );
this.Encoding = encoding;
this.Standalone = standalone;
}
// The version attribute (1.0) for
public string Version {
get { return VERNUM; }
}
// Specifies the value of the encoding attribute, as for
//
public string Encoding {
get { return this.encoding; }
set { this.encoding = ( (value == null) ? String.Empty : value ); }
}
// Specifies the value of the standalone attribute.
public string Standalone {
get { return this.standalone; }
set {
if ( value == null )
this.standalone = String.Empty;
else if ( value.Length == 0 || value == YES || value == NO )
this.standalone = value;
else
throw new ArgumentException( Res.GetString(Res.Xdom_standalone, value) );
}
}
public override String Value {
get { return InnerText; }
set { InnerText = value; }
}
// Gets or sets the concatenated values of the node and
// all its children.
public override string InnerText {
get {
StringBuilder strb = new StringBuilder("version=\"" + Version + "\"");
if ( Encoding.Length > 0 ) {
strb.Append(" encoding=\"");
strb.Append(Encoding);
strb.Append("\"");
}
if ( Standalone.Length > 0 ) {
strb.Append(" standalone=\"");
strb.Append(Standalone);
strb.Append("\"");
}
return strb.ToString();
}
set {
string tempVersion = null;
string tempEncoding = null;
string tempStandalone = null;
string orgEncoding = this.Encoding;
string orgStandalone = this.Standalone;
XmlLoader.ParseXmlDeclarationValue( value, out tempVersion, out tempEncoding, out tempStandalone );
try {
if ( tempVersion != null && tempVersion != VERNUM )
throw new ArgumentException(Res.GetString(Res.Xdom_Version));
if ( tempEncoding != null )
Encoding = tempEncoding;
if ( tempStandalone != null )
Standalone = tempStandalone;
}
catch {
Encoding = orgEncoding;
Standalone = orgStandalone;
throw;
}
}
}
//override methods and properties from XmlNode
// Gets the name of the node.
public override String Name {
get {
return "xml";
}
}
// Gets the name of the current node without the namespace prefix.
public override string LocalName {
get { return Name;}
}
// Gets the type of the current node.
public override XmlNodeType NodeType {
get { return XmlNodeType.XmlDeclaration;}
}
// Creates a duplicate of this node.
public override XmlNode CloneNode(bool deep) {
Debug.Assert( OwnerDocument != null );
return OwnerDocument.CreateXmlDeclaration( Version, Encoding, Standalone );
}
// Saves the node to the specified XmlWriter.
public override void WriteTo(XmlWriter w) {
w.WriteProcessingInstruction(Name, InnerText);
}
// Saves all the children of the node to the specified XmlWriter.
public override void WriteContentTo(XmlWriter w) {
// Intentionally do nothing since the node doesn't have children.
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MailWriter.cs
- diagnosticsswitches.cs
- AdobeCFFWrapper.cs
- CodeDomConfigurationHandler.cs
- DataGridViewSelectedRowCollection.cs
- Boolean.cs
- TokenizerHelper.cs
- InternalUserCancelledException.cs
- CompoundFileIOPermission.cs
- TransformValueSerializer.cs
- DataRecordObjectView.cs
- EventMappingSettingsCollection.cs
- AndCondition.cs
- SqlEnums.cs
- PointLightBase.cs
- TypeUtil.cs
- DbConnectionPoolIdentity.cs
- NetStream.cs
- XamlSerializer.cs
- PageCatalogPart.cs
- ResourceKey.cs
- EntitySqlQueryCacheKey.cs
- CodeObjectCreateExpression.cs
- ForceCopyBuildProvider.cs
- StructuredProperty.cs
- DataGridSortCommandEventArgs.cs
- PerformanceCounterPermissionAttribute.cs
- SecurityKeyIdentifier.cs
- DefaultObjectMappingItemCollection.cs
- ObjectContextServiceProvider.cs
- StructureChangedEventArgs.cs
- BuildProviderAppliesToAttribute.cs
- RandomNumberGenerator.cs
- PathBox.cs
- PartManifestEntry.cs
- ActivityDefaults.cs
- LowerCaseStringConverter.cs
- TableAdapterManagerGenerator.cs
- GlyphInfoList.cs
- ImageButton.cs
- XPathAxisIterator.cs
- DependencyPropertyValueSerializer.cs
- NetCodeGroup.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SafePointer.cs
- WebPartEventArgs.cs
- Viewport3DAutomationPeer.cs
- StatusBar.cs
- COAUTHIDENTITY.cs
- ViewSimplifier.cs
- DataGridViewRowConverter.cs
- TemplateNodeContextMenu.cs
- ErrorTableItemStyle.cs
- TextPattern.cs
- ConfigurationValue.cs
- DBSqlParser.cs
- SqlSelectClauseBuilder.cs
- DynamicField.cs
- XmlNamespaceDeclarationsAttribute.cs
- UIHelper.cs
- XmlSchemaSimpleContentRestriction.cs
- ListBase.cs
- ReadOnlyDictionary.cs
- UIAgentAsyncParams.cs
- DesignerSerializationVisibilityAttribute.cs
- BuildProvidersCompiler.cs
- DateTimeConstantAttribute.cs
- mediaeventshelper.cs
- SimpleHandlerFactory.cs
- LocationSectionRecord.cs
- MultipleViewPatternIdentifiers.cs
- MonitorWrapper.cs
- RenderContext.cs
- SqlMultiplexer.cs
- GridItemPattern.cs
- SynchronizationContext.cs
- SQLInt64.cs
- NamedPermissionSet.cs
- TextTabProperties.cs
- LocalIdCollection.cs
- DrawingState.cs
- BamlReader.cs
- HashAlgorithm.cs
- CoreSwitches.cs
- SerializationInfoEnumerator.cs
- InstanceOwnerQueryResult.cs
- SchemaObjectWriter.cs
- TypedTableBaseExtensions.cs
- SHA256Managed.cs
- CfgParser.cs
- TreeBuilder.cs
- GridSplitter.cs
- PaintEvent.cs
- GenericsInstances.cs
- GridItemPattern.cs
- PriorityRange.cs
- HttpStreamFormatter.cs
- ConditionalAttribute.cs
- BrowserCapabilitiesFactoryBase.cs
- UriSectionData.cs