104 lines
2.5 KiB
C#
104 lines
2.5 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Security;
|
|
|
|
namespace Mono.Xml
|
|
{
|
|
// Token: 0x020000C7 RID: 199
|
|
[CLSCompliant(false)]
|
|
public class SecurityParser : MiniParser, MiniParser.IReader, MiniParser.IHandler
|
|
{
|
|
// Token: 0x060006FB RID: 1787 RVA: 0x00026AEC File Offset: 0x00024CEC
|
|
public SecurityParser()
|
|
{
|
|
this.stack = new Stack();
|
|
}
|
|
|
|
// Token: 0x060006FC RID: 1788 RVA: 0x00026B00 File Offset: 0x00024D00
|
|
public void LoadXml(string xml)
|
|
{
|
|
this.root = null;
|
|
this.xmldoc = xml;
|
|
this.pos = 0;
|
|
this.stack.Clear();
|
|
base.Parse(this, this);
|
|
}
|
|
|
|
// Token: 0x060006FD RID: 1789 RVA: 0x00026B38 File Offset: 0x00024D38
|
|
public SecurityElement ToXml()
|
|
{
|
|
return this.root;
|
|
}
|
|
|
|
// Token: 0x060006FE RID: 1790 RVA: 0x00026B40 File Offset: 0x00024D40
|
|
public int Read()
|
|
{
|
|
if (this.pos >= this.xmldoc.Length)
|
|
{
|
|
return -1;
|
|
}
|
|
return (int)this.xmldoc[this.pos++];
|
|
}
|
|
|
|
// Token: 0x060006FF RID: 1791 RVA: 0x00026B84 File Offset: 0x00024D84
|
|
public void OnStartParsing(MiniParser parser)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06000700 RID: 1792 RVA: 0x00026B88 File Offset: 0x00024D88
|
|
public void OnStartElement(string name, MiniParser.IAttrList attrs)
|
|
{
|
|
SecurityElement securityElement = new SecurityElement(name);
|
|
if (this.root == null)
|
|
{
|
|
this.root = securityElement;
|
|
this.current = securityElement;
|
|
}
|
|
else
|
|
{
|
|
SecurityElement securityElement2 = (SecurityElement)this.stack.Peek();
|
|
securityElement2.AddChild(securityElement);
|
|
}
|
|
this.stack.Push(securityElement);
|
|
this.current = securityElement;
|
|
int length = attrs.Length;
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
this.current.AddAttribute(attrs.GetName(i), SecurityElement.Escape(attrs.GetValue(i)));
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000701 RID: 1793 RVA: 0x00026C1C File Offset: 0x00024E1C
|
|
public void OnEndElement(string name)
|
|
{
|
|
this.current = (SecurityElement)this.stack.Pop();
|
|
}
|
|
|
|
// Token: 0x06000702 RID: 1794 RVA: 0x00026C34 File Offset: 0x00024E34
|
|
public void OnChars(string ch)
|
|
{
|
|
this.current.Text = SecurityElement.Escape(ch);
|
|
}
|
|
|
|
// Token: 0x06000703 RID: 1795 RVA: 0x00026C48 File Offset: 0x00024E48
|
|
public void OnEndParsing(MiniParser parser)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0400035F RID: 863
|
|
private SecurityElement root;
|
|
|
|
// Token: 0x04000360 RID: 864
|
|
private string xmldoc;
|
|
|
|
// Token: 0x04000361 RID: 865
|
|
private int pos;
|
|
|
|
// Token: 0x04000362 RID: 866
|
|
private SecurityElement current;
|
|
|
|
// Token: 0x04000363 RID: 867
|
|
private Stack stack;
|
|
}
|
|
}
|