首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XSOM从元素获取minOccurs属性

使用XSOM从元素获取minOccurs属性
EN

Stack Overflow用户
提问于 2010-01-20 01:03:02
回答 2查看 3.9K关注 0票数 3

如何使用XSOM解析器从元素中获取minOccurs属性?我见过这个获取与复杂类型相关的属性的示例:

代码语言:javascript
复制
private void getAttributes(XSComplexType xsComplexType){
    Collection<? extends XSAttributeUse> c = xsComplexType.getAttributeUses();
    Iterator<? extends XSAttributeUse> i = c.iterator();while(i.hasNext()){
        XSAttributeDecl attributeDecl = i.next().getDecl();
        System.out.println("type: "+attributeDecl.getType());
        System.out.println("name:"+attributeDecl.getName());
    }
}

但是,似乎找不到正确的方法将其从an元素中删除,例如:

代码语言:javascript
复制
<xs:element name="StartDate" type="CommonDateType" minOccurs="0"/>

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-01-20 01:56:33

这并不是很直观,但是XSElementDecl来自于XSParticles。我能够使用以下代码检索相应的属性:

代码语言:javascript
复制
public boolean isOptional(final String elementName) {
    for (final Entry<String, XSComplexType> entry : getComplexTypes().entrySet()) {
        final XSContentType content = entry.getValue().getContentType();
        final XSParticle particle = content.asParticle();
        if (null != particle) {
            final XSTerm term = particle.getTerm();
            if (term.isModelGroup()) {
                final XSParticle[] particles = term.asModelGroup().getChildren();
                for (final XSParticle p : particles) {
                    final XSTerm pterm = p.getTerm();
                    if (pterm.isElementDecl()) {
                        final XSElementDecl e = pterm.asElementDecl();
                        if (0 == e.getName().compareToIgnoreCase(elementName)) {
                            return p.getMinOccurs() == 0;
                        }
                    }
                }
             }
          }
    }
    return true;
}
票数 3
EN

Stack Overflow用户

发布于 2012-12-07 17:37:17

xsom中,元素声明是XSElementDecl类型。为了获得元素的最小和最大出现次数,您需要获取ParticleImpl。也就是说,

代码语言:javascript
复制
public int getMinOccurrence(XSElementDecl element){

 int min=((ParticleImpl)element.getType()).getMinOccurs();
 return min; 

}

参考:XSOM Particle ref

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2095294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档