componentProperty.getXSDType().toString());
}
} else {
// The property has a complex schema type so we fluff up a schema
// and use that to validate the property value
XSDefinition xsdDefinition = (XSDefinition)componentProperty.getXSDDefinition();
if (xsdDefinition != null) {
try {
// create schema factory for XML schema
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Document schemaDom = xsdDefinition.getSchema().getSchemaDocument();
String valueSchema = null;
Schema schema = null;
if (componentProperty.getXSDType().getNamespaceURI().equals(Constants.SCA11_NS)){
// include the referenced schema as it's already in the OASIS namespace
valueSchema = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> " +
"<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" "+
"xmlns:sca=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\" "+
"xmlns:__tmp=\"" + componentProperty.getXSDType().getNamespaceURI() + "\" "+
"targetNamespace=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\" " +
"elementFormDefault=\"qualified\">" +
"<include schemaLocation=\"" + xsdDefinition.getLocation() + "\"/>" +
// "<element name=\"value\" type=\"" + "__tmp:" + componentProperty.getXSDType().getLocalPart() + "\"/>" +
"</schema>";
// Source sources[] = {new StreamSource(new StringReader(valueSchema))};
Source sources[] = {new DOMSource(schemaDom)};
schema = factory.newSchema(sources);