Examples of XPathFragment


Examples of org.eclipse.persistence.internal.oxm.XPathFragment

            ctype = buildComplexType(true, refDesc, schemaForNamespace, workingSchema, properties, descriptors);
        } else {
            element.setType(getSchemaTypeString(refDesc.getSchemaReference().getSchemaContextAsQName(workingSchema.getNamespaceResolver()), workingSchema));
        }

        XPathFragment frag = ((XMLField) mapping.getField()).getXPathFragment();
        String fragUri = frag.getNamespaceURI();
        if (fragUri != null) {
            // may need to add a global element
            Schema s = getSchema(fragUri, null, schemaForNamespace, properties);
            String targetNS = workingSchema.getTargetNamespace();
            if ((s.isElementFormDefault() && !fragUri.equals(targetNS)) || (!s.isElementFormDefault() && !fragUri.equals(""))) {
                if (s.getTopLevelElements().get(frag.getShortName()) == null) {
                    Element globalElement = new Element();
                    globalElement.setName(frag.getLocalName());
                    if (ctype != null) {
                        globalElement.setComplexType(ctype);
                    } else {
                        globalElement.setType(getSchemaTypeString(refDesc.getSchemaReference().getSchemaContextAsQName(workingSchema.getNamespaceResolver()), workingSchema));
                    }
                    s.getTopLevelElements().put(frag.getShortName(), globalElement);
                }
                element = new Element();
                element.setMinOccurs(Occurs.ZERO);
                element.setMaxOccurs(Occurs.UNBOUNDED);
                element.setRef(frag.getShortName());
            } else {
                element.setComplexType(ctype);
            }
        } else if (ctype != null) {
            element.setComplexType(ctype);
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

     * @param mapping
     * @param schemaType
     * @return
     */
    protected Attribute buildAttribute(XMLDirectMapping mapping, String schemaType) {
        XPathFragment frag = ((XMLField) mapping.getField()).getXPathFragment();
        Attribute attr = new Attribute();
        attr.setName(frag.getShortName());
        attr.setType(schemaType);
        return attr;
    }
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

        super.setName(xPath);

        if (hasPath(xPath)) {
            buildFragments(xPath);
        } else {
            XPathFragment xPathFragment = new XPathFragment(xPath);
            setXPathFragment(xPathFragment);
            setLastXPathFragment(xPathFragment);
        }
    }
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

    private void buildFragments(String xpathString) {
        StringTokenizer st = new StringTokenizer(xpathString, "/");
        String next;
        int i = 0;
        XPathFragment currentXPathFragment = null;
        XPathFragment nextXPathFragment = null;

        //If the first character is a / we do not want the string tokenizer to get
        //rid of it because it indicates that we doing something at the root.
        if (xpathString.startsWith("/")) {
            next = st.nextToken();
            next = "/" + next;
            currentXPathFragment = new XPathFragment(next);
            setXPathFragment(currentXPathFragment);
            i++;
        }

        while (st.hasMoreTokens()) {
            next = st.nextToken();
            if (null != next) {
                if (next.equals(XPathFragment.TEXT)) {
                    nextXPathFragment = new XPathFragment(XPathFragment.TEXT);
                } else {
                    nextXPathFragment = new XPathFragment(next);
                }
                if (0 == i) {
                    setXPathFragment(nextXPathFragment);
                } else {
                    currentXPathFragment.setNextFragment(nextXPathFragment);
                    if (nextXPathFragment.isAttribute() || nextXPathFragment.nameIsText()) {
                        currentXPathFragment.setHasText(true);
                    }
                }
                currentXPathFragment = nextXPathFragment;
                i++;
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

    public void add(DatabaseField key, Object value) {
        if (null == value) {
            return;
        }
        XMLField xmlField = convertToXMLField(key);
        XPathFragment lastFragment = xmlField.getLastXPathFragment();
        XMLConversionManager xcm = (XMLConversionManager) session.getDatasourcePlatform().getConversionManager();
        if (lastFragment.nameIsText()) {
            String stringValue = (String)xcm.convertObject(value, String.class);
            characters(stringValue);
        } else if (lastFragment.isAttribute()) {
            String stringValue = (String)xcm.convertObject(value, String.class);
            attribute(lastFragment, xmlField.getNamespaceResolver(), stringValue);
        } else {
            element(lastFragment.getNamespaceURI(), lastFragment.getXPath(), lastFragment.getShortName());
        }
    }
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

    public XPathFragment openStartGroupingElements(NamespaceResolver namespaceResolver) {
        if (null == groupingElements) {
            return null;
        }
        XPathNode xPathNode;
        XPathFragment xPathFragment = null;
        int groupingElementsSize = groupingElements.size();
        for (int x = 0; x < groupingElementsSize; x++) {
            xPathNode = (XPathNode)groupingElements.get(x);
            xPathFragment = xPathNode.getXPathFragment();
            openStartElement(xPathFragment, namespaceResolver);
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

        if (null != xmlSchemaReference) {
            String schemaContext = xmlSchemaReference.getSchemaContext();
            if ((xmlSchemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) || (xmlSchemaReference.getType() == XMLSchemaReference.SIMPLE_TYPE)) {
                if ((null != schemaContext) && (schemaContext.lastIndexOf('/') == 0)) {
                    schemaContext = schemaContext.substring(1, schemaContext.length());
                    XPathFragment typeFragment = new XPathFragment(schemaContext);
                    if (null != xmlDescriptor.getNamespaceResolver()) {
                        typeFragment.setNamespaceURI(xmlDescriptor.getNamespaceResolver().resolveNamespacePrefix(typeFragment.getPrefix()));
                    }
                    this.descriptorsByGlobalType.put(typeFragment, xmlDescriptor);
                } else {
                    QName qname = xmlSchemaReference.getSchemaContextAsQName();
                    if (qname != null) {
                        if (xmlDescriptor.isWrapper() && xmlDescriptor.getJavaClassName().contains("ObjectWrapper")) {
                            return;
                        }
                        XPathFragment typeFragment = new XPathFragment();
                        typeFragment.setLocalName(qname.getLocalPart());
                        typeFragment.setNamespaceURI(qname.getNamespaceURI());
                        this.descriptorsByGlobalType.put(typeFragment, xmlDescriptor);
                    }
                }
            }
        }
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

            Object object, Session session, NamespaceResolver namespaceResolver) {
        // Handle attributes - XSI_NIL, ABSENT_NODE have the same behavior
        if (xPathFragment.isAttribute()) {
            // Write out an empty attribute
            if (getMarshalNullRepresentation().equals(XMLNullRepresentationType.EMPTY_NODE)) {
                XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
                // We mutate the null into an empty string
                marshalRecord.attribute(xPathFragment, namespaceResolver, EMPTY_STRING);
                marshalRecord.closeStartGroupingElements(groupingFragment);
                return true;
            } else {
                // XSI_NIL attributes are invalid - and are ignored
                // ABSENT_NODE - Write out nothing
                return false;
            }
        } else {
            // Nillable: write out xsi:nil="true" attribute in empty element     
            if (getMarshalNullRepresentation().equals(XMLNullRepresentationType.XSI_NIL)) {
                String xsiPrefix = processNamespaceResolverForXSIPrefix(namespaceResolver);
                StringBuilder qName = new StringBuilder('@'); // Unsynchronized
                qName.append(xsiPrefix).append(COLON_W_SCHEMA_NIL_ATTRIBUTE);
                XPathFragment nilFragment = new XPathFragment(qName.toString());
                XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
                marshalRecord.attribute(nilFragment, namespaceResolver, TRUE);
                marshalRecord.closeStartGroupingElements(groupingFragment);
                return true;
            } else {
                // EMPTY_NODE - Write out empty element
                if (getMarshalNullRepresentation().equals(XMLNullRepresentationType.EMPTY_NODE)) {
                    XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
                    marshalRecord.closeStartGroupingElements(groupingFragment);
                    return true;
                } else {
                    // ABSENT_NODE - Write out nothing
                    return false;
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

     */
    public boolean compositeObjectMarshal(XPathFragment xPathFragment, MarshalRecord marshalRecord, //
            Object object, Session session, NamespaceResolver namespaceResolver) {
        // Nillable
        if (getMarshalNullRepresentation().equals(XMLNullRepresentationType.XSI_NIL)) {
            XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
            marshalRecord.closeStartGroupingElements(groupingFragment);
            marshalRecord.openStartElement(xPathFragment, namespaceResolver);
            String xsiPrefix = processNamespaceResolverForXSIPrefix(namespaceResolver);
            XPathFragment nilFragment = new XPathFragment('@' + xsiPrefix + COLON_W_SCHEMA_NIL_ATTRIBUTE);
            marshalRecord.attribute(nilFragment, namespaceResolver, TRUE);
            marshalRecord.closeStartElement();
            marshalRecord.endElement(xPathFragment, namespaceResolver);
            return true;
        } else {
            // Optional and Required
            // This call is really only valid when using DOM - TBD false
            // Write out empty element - we need to differentiate between
            // object=null and object=new Object() with null fields and 0-numeric primitive values
            // EMPTY_NODE - Write out empty element - Required
            if (getMarshalNullRepresentation().equals(XMLNullRepresentationType.EMPTY_NODE)) {
                XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
                marshalRecord.closeStartGroupingElements(groupingFragment);
                marshalRecord.openStartElement(xPathFragment, namespaceResolver);
                marshalRecord.closeStartElement();
                marshalRecord.endElement(xPathFragment, namespaceResolver);
                return true;
View Full Code Here

Examples of org.eclipse.persistence.internal.oxm.XPathFragment

        // get the parent above the text() node     
        XPathNode parentNode = xPathNode.getParent();

        // isset nillable only       
        if (isNullRepresentedByXsiNil() || getMarshalNullRepresentation().equals(XMLNullRepresentationType.XSI_NIL)) {
            XPathFragment xPathFragment = new XPathFragment();
            xPathFragment.setXPath('@' + XMLConstants.SCHEMA_NIL_ATTRIBUTE);
            xPathFragment.setNamespaceURI(XMLConstants.SCHEMA_INSTANCE_URL);
            NodeValue aNodeValue = new NillableNodeValue(nullCapableValue);
            parentNode.addChild(xPathFragment, aNodeValue, null);
        } else {
            NodeValue aNodeValue = new OptionalNodeValue(nullCapableValue);
            parentNode.setNodeValue(aNodeValue);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.