gpt4 book ai didi

java - 使用 XSOM 从元素获取 minOccurs 属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:25 25 4
gpt4 key购买 nike

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

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());
}
}

但是,似乎无法找出将其从元素中移除的正确方法,例如:

<xs:element name="StartDate" type="CommonDateType" minOccurs="0"/>

谢谢!

最佳答案

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

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;
}

关于java - 使用 XSOM 从元素获取 minOccurs 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2095294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com