最近用c#写Xml Schema代码,找了很久也找不到如何在已有的complextype中插入新的element,最后我充分发挥自己的聪明才智,哈哈,终于从...中找到了灵感。


XmlSchemaSet xmlSSet;
foreach( XmlSchema schema in xmlSSet.Schemas())
{
XmlSchemaElement  xmlSchRootElement = (XmlSchemaElement )schema.Items[0];//schema里面只能看到根节点元素,complextype里面的东西需要下一步提取
XmlSchemaComplexType xmlSchComlex = (XmlSchemaComplexType)xmlSchRootElement.ElementSchemaType;//这一步最关键,找到complextype的对象
XmlSchemaSequece xmlSchSeq = (XmlSchemaSequece)xmlSchComlex.Particle;//找到相应的元素
XmlSchemaElement  xmlSchNewE =new XmlSchemaElement  ();

xmlSchNewE.Name ="name";

xmlSchNewE.SchemaTypeName = new XmlQualifiedName("unsignedByte",http://www.w3.org/2001/XMLSchema);

try

{

xmlSeq.Items.Insert(0,xmlSchNewE);//0为索引,自已改

xmlSSet.Reprocess(schema);//这个是为了保障更改后xmlSSet重新识别

}

catch()

...
 
 
}