public void wirtexmlroot(xmlwriter writer)
{
writeroot(writer);
writexml(writer);
}
private void writeroot(xmlwriter writer)
{
writer.writeprocessinginstruction("xml",this._declaration);
// writer.writedoctype
}
public void writexml(xmlwriter writer)
{
if(this._prefix!="")
writer.writestartelement(this._prefix+":"+tag);
else
writer.writestartelement(tag);
//if(this._nametable!=null)
if(attributes!=null)
{
foreach(object key in attributes.keys)
{
writer.writeattributestring(key as string,attributes[key] as string);
}
}
if(value!=null)
{
writer.writestring(value);
}
else
{
if(elements!=null)
{
foreach(object item in elements)
{
baseserializeelement inner=(baseserializeelement)item;
inner.writexml(writer);
}
}
}
writer.writeendelement();
}
//
// public system.xml.schema.xmlschema getschema()
// {
// // todo: 添加 anyelement.getschema 实现
// return null;
// }
public void readxml(xmlreader reader)
{
readxml(reader,false);
}
private void readroot(xmlreader reader)
{
while(reader.read())
{
if(reader.eof)
return;
switch(reader.nodetype)
{
case xmlnodetype.xmldeclaration:
this._isroot=true;
this._declaration=reader.value;
break;
// case xmlnodetype.comment:
// addcomment(reader.value);
// break;
case xmlnodetype.documenttype:
this._documenttype=reader.value;
break;
case xmlnodetype.element:
return;
default:
break;
}
}
}
// public void addcomment(string comment)
// {
// _comments.add(comment);
// }
public void readxml(system.xml.xmlreader reader,bool isroot)
{
if(reader.nodetype==xmlnodetype.none||isroot)
{
readroot(reader);
}