blob: 98c916a0db7631094dc6630bc467c266867ec62e [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.oxm.mappings.namespaces;
import org.eclipse.persistence.oxm.NamespaceResolver;
import org.eclipse.persistence.oxm.XMLDescriptor;
import org.eclipse.persistence.oxm.mappings.XMLAnyCollectionMapping;
import org.eclipse.persistence.oxm.mappings.XMLAnyObjectMapping;
import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
import org.eclipse.persistence.oxm.schema.XMLSchemaClassPathReference;
public class ChildAndGeneratedPrefixClashProject extends org.eclipse.persistence.sessions.Project {
public ChildAndGeneratedPrefixClashProject() {
super();
this.addDescriptor(getRootDescriptor());
this.addDescriptor(getCompanyDescriptor());
this.addDescriptor(getDepartmentDescriptor());
this.addDescriptor(getTeamDescriptor());
}
private XMLDescriptor getRootDescriptor() {
XMLDescriptor xmlDescriptor = new XMLDescriptor();
xmlDescriptor.setJavaClass(Root.class);
xmlDescriptor.setDefaultRootElement("aaa:root");
//XMLCompositeCollectionMapping companiesMapping = new XMLCompositeCollectionMapping();
XMLAnyCollectionMapping companiesMapping = new XMLAnyCollectionMapping();
companiesMapping.setAttributeName("companies");
companiesMapping.setXPath("aaa:companies");
companiesMapping.setUseXMLRoot(true);
//companiesMapping.setReferenceClass(Company.class);
xmlDescriptor.addMapping(companiesMapping);
NamespaceResolver nsResolver = new NamespaceResolver();
nsResolver.put("aaa", "http://www.example.com/aaa");
xmlDescriptor.setNamespaceResolver(nsResolver);
return xmlDescriptor;
}
private XMLDescriptor getCompanyDescriptor() {
XMLDescriptor xmlDescriptor = new XMLDescriptor();
xmlDescriptor.setJavaClass(Company.class);
XMLDirectMapping nameMapping = new XMLDirectMapping();
nameMapping.setAttributeName("companyName");
nameMapping.setXPath("aaa:companyname/text()");
xmlDescriptor.addMapping(nameMapping);
//XMLCompositeCollectionMapping departmentsMapping = new XMLCompositeCollectionMapping();
XMLAnyCollectionMapping departmentsMapping = new XMLAnyCollectionMapping();
departmentsMapping.setAttributeName("departments");
departmentsMapping.setXPath("aaa:departments");
departmentsMapping.setUseXMLRoot(true);
//departmentsMapping.setReferenceClass(Department.class);
xmlDescriptor.addMapping(departmentsMapping);
NamespaceResolver nsResolver = new NamespaceResolver();
nsResolver.put("aaa", "http://www.example.com/aaa");
xmlDescriptor.setNamespaceResolver(nsResolver);
XMLSchemaClassPathReference ref = new XMLSchemaClassPathReference();
ref.setSchemaContext("/aaa:company");
ref.setType(XMLSchemaClassPathReference.COMPLEX_TYPE);
xmlDescriptor.setSchemaReference(ref);
return xmlDescriptor;
}
private XMLDescriptor getDepartmentDescriptor() {
XMLDescriptor xmlDescriptor = new XMLDescriptor();
xmlDescriptor.setJavaClass(Department.class);
xmlDescriptor.setDefaultRootElement("aaa:department");
XMLDirectMapping nameMapping = new XMLDirectMapping();
nameMapping.setAttributeName("deptName");
nameMapping.setXPath("aaa:deptName/text()");
xmlDescriptor.addMapping(nameMapping);
// XMLAnyCollectionMapping teamsMapping = new XMLAnyCollectionMapping();
XMLCompositeCollectionMapping teamsMapping = new XMLCompositeCollectionMapping();
teamsMapping.setAttributeName("teams");
teamsMapping.setXPath("aaa:teams/aaa:team");
teamsMapping.setReferenceClass(Team.class);
//steamsMapping.setUseXMLRoot(true);
xmlDescriptor.addMapping(teamsMapping);
NamespaceResolver nsResolver = new NamespaceResolver();
nsResolver.put("aaa", "http://www.example.com/aaa");
xmlDescriptor.setNamespaceResolver(nsResolver);
XMLSchemaClassPathReference ref = new XMLSchemaClassPathReference();
ref.setSchemaContext("/aaa:dept");
ref.setType(XMLSchemaClassPathReference.COMPLEX_TYPE);
xmlDescriptor.setSchemaReference(ref);
return xmlDescriptor;
}
private XMLDescriptor getTeamDescriptor() {
XMLDescriptor xmlDescriptor = new XMLDescriptor();
xmlDescriptor.setJavaClass(Team.class);
xmlDescriptor.setDefaultRootElement("aaa:team");
XMLDirectMapping nameMapping = new XMLDirectMapping();
nameMapping.setAttributeName("teamName");
nameMapping.setXPath("ns0:teamName/text()");
xmlDescriptor.addMapping(nameMapping);
XMLSchemaClassPathReference ref = new XMLSchemaClassPathReference();
ref.setSchemaContext("/aaa:team");
ref.setType(XMLSchemaClassPathReference.COMPLEX_TYPE);
xmlDescriptor.setSchemaReference(ref);
NamespaceResolver nsResolver = new NamespaceResolver();
nsResolver.put("aaa", "http://www.example.com/aaa");
nsResolver.put("ns0", "http://www.example.com/teamNS0");
nsResolver.put("ns1", "http://www.example.com/teamNS1");
xmlDescriptor.setNamespaceResolver(nsResolver);
return xmlDescriptor;
}
}