Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Dom / XmlDeclaration.cs / 1305376 / 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";
private string version;
private string encoding;
private string standalone;
protected internal XmlDeclaration( string version, string encoding, string standalone, XmlDocument doc ) : base( doc ) {
if ( !IsValidXmlVersion( version ) )
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;
this.Version = version;
}
// The version attribute for
public string Version {
get { return this.version; }
internal set { this.version = value; }
}
// 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;
string orgVersion = this.Version;
XmlLoader.ParseXmlDeclarationValue( value, out tempVersion, out tempEncoding, out tempStandalone );
try {
if ( tempVersion != null && !IsValidXmlVersion(tempVersion) )
throw new ArgumentException(Res.GetString(Res.Xdom_Version));
Version = tempVersion;
if ( tempEncoding != null )
Encoding = tempEncoding;
if ( tempStandalone != null )
Standalone = tempStandalone;
}
catch {
Encoding = orgEncoding;
Standalone = orgStandalone;
Version = orgVersion;
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.
}
private bool IsValidXmlVersion(string ver) {
return ver.Length >= 3 && ver[0] == '1' && ver[1] == '.' && XmlCharType.IsOnlyDigits(ver, 2, ver.Length - 2);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// 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";
private string version;
private string encoding;
private string standalone;
protected internal XmlDeclaration( string version, string encoding, string standalone, XmlDocument doc ) : base( doc ) {
if ( !IsValidXmlVersion( version ) )
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;
this.Version = version;
}
// The version attribute for
public string Version {
get { return this.version; }
internal set { this.version = value; }
}
// 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;
string orgVersion = this.Version;
XmlLoader.ParseXmlDeclarationValue( value, out tempVersion, out tempEncoding, out tempStandalone );
try {
if ( tempVersion != null && !IsValidXmlVersion(tempVersion) )
throw new ArgumentException(Res.GetString(Res.Xdom_Version));
Version = tempVersion;
if ( tempEncoding != null )
Encoding = tempEncoding;
if ( tempStandalone != null )
Standalone = tempStandalone;
}
catch {
Encoding = orgEncoding;
Standalone = orgStandalone;
Version = orgVersion;
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.
}
private bool IsValidXmlVersion(string ver) {
return ver.Length >= 3 && ver[0] == '1' && ver[1] == '.' && XmlCharType.IsOnlyDigits(ver, 2, ver.Length - 2);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextTrailingWordEllipsis.cs
- TileBrush.cs
- DataGridViewComboBoxCell.cs
- WSSecurityPolicy.cs
- GorillaCodec.cs
- ResourcesBuildProvider.cs
- Win32.cs
- PasswordBoxAutomationPeer.cs
- UseAttributeSetsAction.cs
- WsdlHelpGeneratorElement.cs
- InstrumentationTracker.cs
- VariableModifiersHelper.cs
- OrderByBuilder.cs
- EdmFunctionAttribute.cs
- WebPartMenu.cs
- MLangCodePageEncoding.cs
- XmlUtil.cs
- DocumentPage.cs
- ListDesigner.cs
- ErrorStyle.cs
- SQLBytes.cs
- SystemGatewayIPAddressInformation.cs
- WebPartMenu.cs
- TypeConverterAttribute.cs
- UriSection.cs
- DataViewManagerListItemTypeDescriptor.cs
- VoiceObjectToken.cs
- TextDecorations.cs
- KeyProperty.cs
- StylusEditingBehavior.cs
- Block.cs
- ContextBase.cs
- Hex.cs
- PlatformCulture.cs
- GuidTagList.cs
- MinimizableAttributeTypeConverter.cs
- DBNull.cs
- DataGridViewCellFormattingEventArgs.cs
- MostlySingletonList.cs
- MetricEntry.cs
- XsdDateTime.cs
- SchemaImporter.cs
- DataShape.cs
- DoubleLinkListEnumerator.cs
- QueueProcessor.cs
- IUnknownConstantAttribute.cs
- Interlocked.cs
- Root.cs
- NonSerializedAttribute.cs
- TransactionContextValidator.cs
- PageAdapter.cs
- FrameworkElementFactory.cs
- QilTernary.cs
- DesignerWebPartChrome.cs
- SoapElementAttribute.cs
- keycontainerpermission.cs
- WorkflowViewService.cs
- FixedHyperLink.cs
- PreservationFileWriter.cs
- SuppressIldasmAttribute.cs
- DataBindingExpressionBuilder.cs
- OleDbDataReader.cs
- RegexCapture.cs
- SecurityContext.cs
- BamlReader.cs
- ModuleBuilderData.cs
- SessionPageStateSection.cs
- ChangePassword.cs
- PageThemeBuildProvider.cs
- RemoteTokenFactory.cs
- StructuralObject.cs
- DtdParser.cs
- FontResourceCache.cs
- WebPartZoneCollection.cs
- GeometryGroup.cs
- PathFigureCollection.cs
- DocumentViewerBase.cs
- ObjectSet.cs
- KeySplineConverter.cs
- KeySpline.cs
- CompoundFileDeflateTransform.cs
- HtmlImage.cs
- ListBoxAutomationPeer.cs
- Crc32.cs
- PointAnimation.cs
- OdbcEnvironmentHandle.cs
- ControlParser.cs
- MatchingStyle.cs
- TableRow.cs
- X509IssuerSerialKeyIdentifierClause.cs
- Int16Storage.cs
- Module.cs
- DSASignatureDeformatter.cs
- UInt32.cs
- ObservableDictionary.cs
- CompressEmulationStream.cs
- TargetParameterCountException.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AsyncOperation.cs
- AspCompat.cs