1900 {
1901 string text =
"http://www.w3.org/2000/xmlns/";
1904 {
1906 }
1907 int num = 0;
1909 {
1910 if (!reader.Read())
1911 {
1912 return;
1913 }
1914 num++;
1915 }
1916 do
1917 {
1918 switch (reader.NodeType)
1919 {
1920 case XmlNodeType.Element:
1921 {
1922 writer.WriteStartElement(reader.Prefix, reader.LocalName, reader.NamespaceURI);
1924 while (reader.MoveToNextAttribute())
1925 {
1926 if ((
object)reader.NamespaceURI ==
text)
1927 {
1928 if (reader.Prefix.Length == 0)
1929 {
1930 writer.WriteAttributeString(
"",
"xmlns",
text, reader.Value);
1931 }
1932 else
1933 {
1934 writer.WriteAttributeString(
"xmlns", reader.LocalName,
text, reader.Value);
1935 }
1936 }
1937 else
1938 {
1939 writer.WriteStartAttribute(reader.Prefix, reader.LocalName, reader.NamespaceURI);
1940 writer.WriteString(reader.Value);
1941 writer.WriteEndAttribute();
1942 }
1943 }
1944 reader.MoveToElement();
1946 {
1947 writer.WriteEndElement();
1948 }
1949 else
1950 {
1951 num++;
1952 }
1953 break;
1954 }
1955 case XmlNodeType.EndElement:
1956 writer.WriteFullEndElement();
1957 num--;
1958 break;
1959 case XmlNodeType.Text:
1960 case XmlNodeType.CDATA:
1961 writer.WriteString(reader.Value);
1962 break;
1963 case XmlNodeType.Whitespace:
1964 case XmlNodeType.SignificantWhitespace:
1965 writer.WriteString(reader.Value);
1966 break;
1967 case XmlNodeType.Comment:
1968 writer.WriteComment(reader.Value);
1969 break;
1970 case XmlNodeType.ProcessingInstruction:
1971 writer.WriteProcessingInstruction(reader.LocalName, reader.Value);
1972 break;
1973 case XmlNodeType.EntityReference:
1974 reader.ResolveEntity();
1975 break;
1976 case XmlNodeType.Attribute:
1977 if ((
object)reader.NamespaceURI ==
text)
1978 {
1979 if (reader.Prefix.Length == 0)
1980 {
1981 writer.WriteAttributeString(
"",
"xmlns",
text, reader.Value);
1982 }
1983 else
1984 {
1985 writer.WriteAttributeString(
"xmlns", reader.LocalName,
text, reader.Value);
1986 }
1987 }
1988 else
1989 {
1990 writer.WriteStartAttribute(reader.Prefix, reader.LocalName, reader.NamespaceURI);
1991 writer.WriteString(reader.Value);
1992 writer.WriteEndAttribute();
1993 }
1994 break;
1995 }
1996 }
1997 while (reader.Read() && num > 0);
1998 }
static string Xml_InvalidOperation