1 //------------------------------------------------------------------------------
2 // <copyright file="ValidatingReaderNodeData.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 //------------------------------------------------------------------------------
11 using System.Collections;
12 using System.Xml.Schema;
13 using System.Diagnostics;
14 using System.Globalization;
16 namespace System.Xml {
18 internal class ValidatingReaderNodeData {
25 string originalStringValue; // Original value
27 AttributePSVIInfo attributePSVIInfo; //Used only for default attributes
33 public ValidatingReaderNodeData() {
34 Clear(XmlNodeType.None);
37 public ValidatingReaderNodeData(XmlNodeType nodeType) {
41 public string LocalName {
50 public string Namespace {
59 public string Prefix {
68 public string GetAtomizedNameWPrefix(XmlNameTable nameTable) {
69 if (nameWPrefix == null) {
70 if (prefix.Length == 0 ) {
71 nameWPrefix = localName;
74 nameWPrefix = nameTable.Add ( string.Concat (prefix,":", localName));
89 public string RawValue {
98 public string OriginalStringValue {
100 return originalStringValue;
103 originalStringValue = value;
107 public XmlNodeType NodeType {
116 public AttributePSVIInfo AttInfo {
118 return attributePSVIInfo;
121 attributePSVIInfo = value;
125 public int LineNumber {
131 public int LinePosition {
137 internal void Clear( XmlNodeType nodeType ) {
138 this.nodeType = nodeType;
139 localName = string.Empty;
140 prefix = string.Empty;
141 namespaceUri = string.Empty;
142 rawValue = string.Empty;
143 if (attributePSVIInfo != null) {
144 attributePSVIInfo.Reset();
151 internal void ClearName() {
152 localName = string.Empty;
153 prefix = string.Empty;
154 namespaceUri = string.Empty;
157 internal void SetLineInfo( int lineNo, int linePos ) {
158 this.lineNo = lineNo;
159 this.linePos = linePos;
162 internal void SetLineInfo( IXmlLineInfo lineInfo ) {
163 if (lineInfo != null) {
164 this.lineNo = lineInfo.LineNumber;
165 this.linePos = lineInfo.LinePosition;
169 internal void SetItemData(string localName, string prefix, string ns, string value) {
170 this.localName = localName;
171 this.prefix = prefix;
176 internal void SetItemData(string localName, string prefix, string ns, int depth) {
177 this.localName = localName;
178 this.prefix = prefix;
181 rawValue = string.Empty;
184 internal void SetItemData(string value) {
185 SetItemData(value, value);
188 internal void SetItemData(string value, string originalStringValue) {
190 this.originalStringValue = originalStringValue;