有没有办法检查XmlSchemaParticle是否为EmptyParticle?

时间:2011-03-15 16:59:18

标签: c# xml xsd

我在这里遇到困难,是否有正确的方式检查XmlSchemaParticle是否为EmptyParticle

XmlSchemaParticle.EmptyParticle似乎是XmlSchemaParticle的私有内部类。

我现在正在做的是particle.GetType().Name == "EmptyParticle",我觉得它很难看。

还有其他选择吗?

4 个答案:

答案 0 :(得分:2)

我今天遇到了同样的问题。我通过检查XmlSchemaComplexType.ContentType属性来解决这个问题:

public bool HasEmptyParticle(XmlSchemaComplexType type)
{
    return type.ContentTypeParticle != null && type.ContentType == XmlSchemaContentType.Empty;
}

答案 1 :(得分:1)

我和你一样尝试过同样的解决方案,但这很麻烦。即将尝试:http://www.c-sharpcorner.com/Forums/Thread/54685/detecting-xmlschemacomplextype-contentparticletype-is-equal.aspx

答案 2 :(得分:1)

我认为您应该将ContentTypeParticle MaxOccurs == 0与{{1}}视为空。

答案 3 :(得分:0)

我知道这已经过时了,但是如果您检查了ContentTypeParticle是否不公开会怎样。

if(!type.ContentTypeParticle.GetType()。IsPublic) {

}

我知道你是专门测试空的,但是我们可以假设内部/私有对象类型反映为空吗?