Code:
/ DotNET / DotNET / 8.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
- NamedElement.cs
- SafePEFileHandle.cs
- RequestCacheManager.cs
- UnmanagedMemoryStream.cs
- PersonalizationProviderHelper.cs
- HttpModuleActionCollection.cs
- PermissionAttributes.cs
- Ops.cs
- SecurityPermission.cs
- ArraySegment.cs
- Memoizer.cs
- RefreshEventArgs.cs
- OutputCacheSection.cs
- WebReference.cs
- TreeViewHitTestInfo.cs
- RegexCompiler.cs
- HttpRequestBase.cs
- MailMessage.cs
- AspNetSynchronizationContext.cs
- DataRecordInternal.cs
- DiagnosticsConfigurationHandler.cs
- ICspAsymmetricAlgorithm.cs
- ColumnMapTranslator.cs
- XmlUtf8RawTextWriter.cs
- CustomTypeDescriptor.cs
- LiteralDesigner.cs
- ListViewGroup.cs
- HttpServerVarsCollection.cs
- RoutingConfiguration.cs
- BStrWrapper.cs
- JulianCalendar.cs
- FocusTracker.cs
- PrintDialogDesigner.cs
- XmlSchemaComplexContentRestriction.cs
- _SSPISessionCache.cs
- ProtocolsConfigurationEntry.cs
- XmlSchemaValidationException.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- TimelineCollection.cs
- UnaryExpression.cs
- HttpListenerRequest.cs
- Int32Rect.cs
- OperationFormatStyle.cs
- FolderLevelBuildProvider.cs
- Variant.cs
- ProtocolViolationException.cs
- SqlXml.cs
- BaseValidator.cs
- PopupControlService.cs
- Base64Encoding.cs
- OrderByQueryOptionExpression.cs
- WebPartHelpVerb.cs
- GenerateScriptTypeAttribute.cs
- ProcessRequestArgs.cs
- SafeEventHandle.cs
- FormView.cs
- ListBindingHelper.cs
- TextBreakpoint.cs
- HandlerMappingMemo.cs
- SerializerDescriptor.cs
- StrictAndMessageFilter.cs
- ComponentCommands.cs
- DecoderReplacementFallback.cs
- SamlAction.cs
- WebDisplayNameAttribute.cs
- CodeTypeReferenceExpression.cs
- BulletedList.cs
- Ray3DHitTestResult.cs
- SamlAssertionKeyIdentifierClause.cs
- WeakReference.cs
- KnownBoxes.cs
- WS2007HttpBindingCollectionElement.cs
- MetadataCacheItem.cs
- KeySplineConverter.cs
- CharacterBufferReference.cs
- SQLMoneyStorage.cs
- Viewport3DAutomationPeer.cs
- FixedNode.cs
- FixedDocumentSequencePaginator.cs
- LinkedResource.cs
- MachineKeySection.cs
- FileDialogPermission.cs
- ListItemCollection.cs
- ReceiveActivityDesigner.cs
- sqlinternaltransaction.cs
- FocusChangedEventArgs.cs
- ListBoxItemWrapperAutomationPeer.cs
- XmlQueryContext.cs
- TextParagraphView.cs
- MetadataFile.cs
- WebServiceClientProxyGenerator.cs
- NetSectionGroup.cs
- CustomError.cs
- FixedDSBuilder.cs
- ProfileManager.cs
- AspCompat.cs
- AndCondition.cs
- PerformanceCounterTraceRecord.cs
- WebConfigurationHost.cs
- TableRow.cs