Search in sources :

Example 1 with XSElementDecl

use of com.sun.xml.xsom.XSElementDecl in project midpoint by Evolveum.

the class SchemaProcessor method getComplexTypeToElementName.

private Map<QName, List<QName>> getComplexTypeToElementName(ClassOutline classOutline) {
    Map<QName, List<QName>> complexTypeToElementName = new HashMap<QName, List<QName>>();
    XSSchemaSet schemaSet = classOutline.target.getSchemaComponent().getRoot();
    for (XSSchema schema : schemaSet.getSchemas()) {
        Map<String, XSElementDecl> elemDecls = schema.getElementDecls();
        for (Entry<String, XSElementDecl> entry : elemDecls.entrySet()) {
            XSElementDecl decl = entry.getValue();
            XSType xsType = decl.getType();
            if (xsType.getName() == null) {
                continue;
            }
            QName type = new QName(xsType.getTargetNamespace(), xsType.getName());
            List<QName> qnames = complexTypeToElementName.get(type);
            if (qnames == null) {
                qnames = new ArrayList<QName>();
                complexTypeToElementName.put(type, qnames);
            }
            qnames.add(new QName(decl.getTargetNamespace(), decl.getName()));
        }
    }
    return complexTypeToElementName;
}
Also used : HashMap(java.util.HashMap) QName(javax.xml.namespace.QName) XSSchemaSet(com.sun.xml.xsom.XSSchemaSet) XSSchema(com.sun.xml.xsom.XSSchema) XSType(com.sun.xml.xsom.XSType) PrismReferenceArrayList(com.evolveum.midpoint.prism.xjc.PrismReferenceArrayList) List(java.util.List) ArrayList(java.util.ArrayList) PrismContainerArrayList(com.evolveum.midpoint.prism.xjc.PrismContainerArrayList) XSElementDecl(com.sun.xml.xsom.XSElementDecl)

Example 2 with XSElementDecl

use of com.sun.xml.xsom.XSElementDecl in project atlasmap by atlasmap.

the class SchemaInspector method printSchemaSet.

private void printSchemaSet(XSSchemaSet schemaSet) throws Exception {
    if (schemaSet == null) {
        throw new XmlInspectionException("Schema set is null");
    }
    XSSchema schema = rootNamespace != null ? schemaSet.getSchema(rootNamespace) : schemaSet.getSchema("");
    // we only care about declared elements...
    Iterator<XSElementDecl> jtr = schema.iterateElementDecls();
    while (jtr.hasNext()) {
        XSElementDecl e = jtr.next();
        String rootName = getNameNS(e);
        if (e.getType().isComplexType()) {
            XmlComplexType rootComplexType = getXmlComplexType();
            rootComplexType.setName(rootName);
            rootComplexType.setPath("/" + rootName);
            rootComplexType.setFieldType(FieldType.COMPLEX);
            xmlDocument.getFields().getField().add(rootComplexType);
            printComplexType(e.getType().asComplexType(), "/" + rootName, rootComplexType);
        } else if (e.getType().isSimpleType()) {
            XmlField xmlField = AtlasXmlModelFactory.createXmlField();
            xmlField.setName(rootName);
            xmlField.setPath("/" + rootName);
            xmlDocument.getFields().getField().add(xmlField);
            printSimpleType(e.getType().asSimpleType(), xmlField);
        }
    }
}
Also used : XmlComplexType(io.atlasmap.xml.v2.XmlComplexType) XmlField(io.atlasmap.xml.v2.XmlField) XSElementDecl(com.sun.xml.xsom.XSElementDecl) XSSchema(com.sun.xml.xsom.XSSchema)

Example 3 with XSElementDecl

use of com.sun.xml.xsom.XSElementDecl in project narayana by jbosstm.

the class NBFSchemaParser method parse.

public boolean parse(String fname) {
    boolean rc = false;
    try {
        flds.clear();
        XSOMParser parser = new XSOMParser();
        parser.parse(fname);
        XSSchemaSet xsSchema = parser.getResult();
        XSSchema schema = xsSchema.getSchema(1);
        File file = new File(fname);
        XSElementDecl element = schema.getElementDecl(file.getName().replace(".xsd", ""));
        if (element != null) {
            log.debug("element is " + element.getName());
            bufferName = element.getName();
            XSType xtype = element.getType();
            if (xtype.isComplexType()) {
                findElementType(xtype.asComplexType());
                rc = true;
            }
        }
    } catch (Exception e) {
        log.error("parse " + fname + " failed with " + e.getMessage(), e);
    }
    return rc;
}
Also used : XSType(com.sun.xml.xsom.XSType) XSOMParser(com.sun.xml.xsom.parser.XSOMParser) XSSchemaSet(com.sun.xml.xsom.XSSchemaSet) XSElementDecl(com.sun.xml.xsom.XSElementDecl) File(java.io.File) XSSchema(com.sun.xml.xsom.XSSchema)

Example 4 with XSElementDecl

use of com.sun.xml.xsom.XSElementDecl in project atlasmap by atlasmap.

the class SchemaTreeTraverser method schema.

/* (non-Javadoc)
     * @see com.sun.xml.xsom.visitor.XSVisitor#schema(com.sun.xml.xsom.XSSchema)
     */
public void schema(XSSchema s) {
    // QUICK HACK: don't print the built-in components
    if (s.getTargetNamespace().equals(Const.schemaNamespace)) {
        return;
    }
    SchemaTreeNode newNode = new SchemaTreeNode("Schema " + s.getLocator().getSystemId(), s.getLocator());
    this.currNode = newNode;
    this.model.addSchemaNode(newNode);
    for (XSAttGroupDecl groupDecl : s.getAttGroupDecls().values()) {
        attGroupDecl(groupDecl);
    }
    for (XSAttributeDecl attrDecl : s.getAttributeDecls().values()) {
        attributeDecl(attrDecl);
    }
    for (XSComplexType complexType : s.getComplexTypes().values()) {
        complexType(complexType);
    }
    for (XSElementDecl elementDecl : s.getElementDecls().values()) {
        elementDecl(elementDecl);
    }
    for (XSModelGroupDecl modelGroupDecl : s.getModelGroupDecls().values()) {
        modelGroupDecl(modelGroupDecl);
    }
    for (XSSimpleType simpleType : s.getSimpleTypes().values()) {
        simpleType(simpleType);
    }
}
Also used : XSAttGroupDecl(com.sun.xml.xsom.XSAttGroupDecl) XSSimpleType(com.sun.xml.xsom.XSSimpleType) XSComplexType(com.sun.xml.xsom.XSComplexType) XSModelGroupDecl(com.sun.xml.xsom.XSModelGroupDecl) XSAttributeDecl(com.sun.xml.xsom.XSAttributeDecl) XSElementDecl(com.sun.xml.xsom.XSElementDecl)

Example 5 with XSElementDecl

use of com.sun.xml.xsom.XSElementDecl in project atlasmap by atlasmap.

the class SchemaWriter method particle.

public void particle(XSParticle part) {
    BigInteger i;
    StringBuilder buf = new StringBuilder();
    i = part.getMaxOccurs();
    if (i.equals(BigInteger.valueOf(XSParticle.UNBOUNDED)))
        buf.append(" maxOccurs=\"unbounded\"");
    else if (!i.equals(BigInteger.ONE))
        buf.append(" maxOccurs=\"").append(i).append('\"');
    i = part.getMinOccurs();
    if (!i.equals(BigInteger.ONE))
        buf.append(" minOccurs=\"").append(i).append('\"');
    final String extraAtts = buf.toString();
    part.getTerm().visit(new XSTermVisitor() {

        public void elementDecl(XSElementDecl decl) {
            if (decl.isLocal())
                SchemaWriter.this.elementDecl(decl, extraAtts);
            else {
                // reference
                println(MessageFormat.format("<element ref=\"'{'{0}'}'{1}\"{2}/>", decl.getTargetNamespace(), decl.getName(), extraAtts));
            }
        }

        public void modelGroupDecl(XSModelGroupDecl decl) {
            // reference
            println(MessageFormat.format("<group ref=\"'{'{0}'}'{1}\"{2}/>", decl.getTargetNamespace(), decl.getName(), extraAtts));
        }

        public void modelGroup(XSModelGroup group) {
            SchemaWriter.this.modelGroup(group, extraAtts);
        }

        public void wildcard(XSWildcard wc) {
            SchemaWriter.this.wildcard("any", wc, extraAtts);
        }
    });
}
Also used : XSModelGroupDecl(com.sun.xml.xsom.XSModelGroupDecl) BigInteger(java.math.BigInteger) XSElementDecl(com.sun.xml.xsom.XSElementDecl) XSWildcard(com.sun.xml.xsom.XSWildcard) XSTermVisitor(com.sun.xml.xsom.visitor.XSTermVisitor) XSModelGroup(com.sun.xml.xsom.XSModelGroup)

Aggregations

XSElementDecl (com.sun.xml.xsom.XSElementDecl)11 XSSchema (com.sun.xml.xsom.XSSchema)5 XSModelGroupDecl (com.sun.xml.xsom.XSModelGroupDecl)4 XSSchemaSet (com.sun.xml.xsom.XSSchemaSet)4 XSModelGroup (com.sun.xml.xsom.XSModelGroup)3 XSType (com.sun.xml.xsom.XSType)3 XSAttGroupDecl (com.sun.xml.xsom.XSAttGroupDecl)2 XSAttributeDecl (com.sun.xml.xsom.XSAttributeDecl)2 XSComplexType (com.sun.xml.xsom.XSComplexType)2 XSSimpleType (com.sun.xml.xsom.XSSimpleType)2 XSWildcard (com.sun.xml.xsom.XSWildcard)2 XSTermVisitor (com.sun.xml.xsom.visitor.XSTermVisitor)2 XmlComplexType (io.atlasmap.xml.v2.XmlComplexType)2 XmlField (io.atlasmap.xml.v2.XmlField)2 BigInteger (java.math.BigInteger)2 ArrayList (java.util.ArrayList)2 PrismContainerArrayList (com.evolveum.midpoint.prism.xjc.PrismContainerArrayList)1 PrismReferenceArrayList (com.evolveum.midpoint.prism.xjc.PrismReferenceArrayList)1 XSContentType (com.sun.xml.xsom.XSContentType)1 XSParticle (com.sun.xml.xsom.XSParticle)1