Added providerHost in language module and remove name.
Added default uri/schemaUri/etc on namespace contexts. Added default for id/tag of Element. Added attribute aliases to xsd output. Added name alias for id on namespace. Added tag alias for id on element.
This commit is contained in:
parent
d271edb1ee
commit
8f2408a207
|
@ -28,6 +28,7 @@ import java.util.logging.Logger;
|
|||
import org.x4o.xml.conv.ObjectConverter;
|
||||
import org.x4o.xml.conv.text.ClassConverter;
|
||||
|
||||
import org.x4o.xml.eld.lang.AttributeAliasElement;
|
||||
import org.x4o.xml.eld.lang.BeanElement;
|
||||
import org.x4o.xml.eld.lang.DescriptionElement;
|
||||
import org.x4o.xml.eld.lang.ElementClassAddParentElement;
|
||||
|
@ -61,8 +62,8 @@ import org.x4o.xml.lang.X4OLanguageModuleLoaderException;
|
|||
public class EldModuleLoaderCore implements X4OLanguageModuleLoader {
|
||||
|
||||
private Logger logger = null;
|
||||
private static final String PP_CEL_PROVIDER = "cel.x4o.org";
|
||||
private static final String PP_CEL_XMLNS = "http://"+PP_CEL_PROVIDER+"/xml/ns/";
|
||||
private static final String PP_CEL_PROVIDER_HOST = "cel.x4o.org";
|
||||
private static final String PP_CEL_XMLNS = "http://"+PP_CEL_PROVIDER_HOST+"/xml/ns/";
|
||||
private static final String PP_CEL_XSD_FILE = "-1.0.xsd";
|
||||
private static final String CEL_CORE = "cel-core";
|
||||
private static final String CEL_ROOT = "cel-root";
|
||||
|
@ -107,6 +108,8 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader {
|
|||
ElementNamespaceContext namespaceRoot = createNamespaceContext(language,CEL_ROOT,CEL_ROOT_URI,CEL_ROOT_XSD_URI,CEL_ROOT_XSD_FILE,CEL_ROOT);
|
||||
namespaceRoot.setLanguageRoot(true); // Only define single language root so xsd is (mostly) not cicle import.
|
||||
ElementClass rootElement = createElementClass(language,"module",language.getLanguageConfiguration().getDefaultElementLanguageModule(),ModuleElement.class,"The module tag is the root xml element for ELD language.");
|
||||
rootElement.addElementClassAttribute(createElementClassAttribute(language,"id",true,null));
|
||||
rootElement.addElementClassAttribute(createElementClassAttribute(language,"providerHost",true,null));
|
||||
namespaceRoot.addElementClass(rootElement);
|
||||
startAndAddNamespace(language,languageModule,namespaceRoot);
|
||||
}
|
||||
|
@ -121,6 +124,12 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader {
|
|||
ElementClass ec = null;
|
||||
|
||||
namespace.addElementClass(createElementClass(language,"attribute",language.getLanguageConfiguration().getDefaultElementClassAttribute(),null,"Defines xml element attribute."));
|
||||
|
||||
ec = createElementClass(language,"attributeAlias",null,AttributeAliasElement.class,"Adds an attribute alias.");
|
||||
ec.addElementClassAttribute(createElementClassAttribute(language,"name",true,null));
|
||||
ec.addElementParent(CEL_CORE_URI, "attribute");
|
||||
namespace.addElementClass(ec);
|
||||
|
||||
namespace.addElementClass(createElementClass(language,"classConverter",ClassConverter.class,null,"Converts string attribute to java class instance."));
|
||||
|
||||
ec = createElementClass(language,"namespace",language.getLanguageConfiguration().getDefaultElementNamespaceContext(),null,"Defines an xml namespace.");
|
||||
|
@ -184,10 +193,10 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader {
|
|||
|
||||
private void configLanguageModule(X4OLanguageModule languageModule) {
|
||||
languageModule.setId("cel-module");
|
||||
languageModule.setName("Core Element Languag Module");
|
||||
languageModule.setProviderName(PP_CEL_PROVIDER);
|
||||
languageModule.setProviderName("Core Element Languag Module");
|
||||
languageModule.setProviderHost(PP_CEL_PROVIDER_HOST);
|
||||
languageModule.setDescription("Core Element Language Module Loader");
|
||||
languageModule.setSourceResource(this.getClass().getSimpleName()); // todo check if oke.
|
||||
languageModule.setSourceResource(this.getClass().getSimpleName()); //TODO: check if oke.
|
||||
}
|
||||
|
||||
private void startAndAddNamespace(X4OLanguageLocal language,X4OLanguageModule languageModule,ElementNamespaceContext namespace) throws X4OLanguageModuleLoaderException {
|
||||
|
@ -230,7 +239,7 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader {
|
|||
private ElementClass createElementClass(X4OLanguage language,String tag,Class<?> objectClass,Class<?> elementClass,String description) throws X4OLanguageModuleLoaderException {
|
||||
try {
|
||||
ElementClass result = (ElementClass)X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementClass());
|
||||
result.setTag(tag);
|
||||
result.setId(tag);
|
||||
result.setObjectClass(objectClass);
|
||||
result.setElementClass(elementClass);
|
||||
result.setDescription(description);
|
||||
|
|
|
@ -44,7 +44,7 @@ public class AttributeAliasElement extends AbstractElement {
|
|||
public void doElementEnd() throws ElementException {
|
||||
String alias = getAttributes().get("name");
|
||||
if (alias==null) {
|
||||
throw new ElementException("'name' attribute is not set on: "+getElementClass().getTag());
|
||||
throw new ElementException("'name' attribute is not set on: "+getElementClass().getId());
|
||||
}
|
||||
if (getParent().getElementObject() instanceof ElementClassAttribute) {
|
||||
((ElementClassAttribute)getParent().getElementObject()).addAttributeAlias(alias);
|
||||
|
|
|
@ -43,7 +43,7 @@ public class ElementClassAddParentElement extends AbstractElement {
|
|||
public void doElementEnd() throws ElementException {
|
||||
String tag = getAttributes().get("tag");
|
||||
if (tag==null) {
|
||||
throw new ElementException("'tag' attribute is not set on: "+getElementClass().getTag());
|
||||
throw new ElementException("'tag' attribute is not set on: "+getElementClass().getId());
|
||||
}
|
||||
String namespaceUri = getAttributes().get("uri");
|
||||
if (namespaceUri==null) {
|
||||
|
|
|
@ -100,6 +100,48 @@ public class ElementModuleBindingHandler extends AbstractElementBindingHandler<
|
|||
}
|
||||
if (childObject instanceof ElementNamespaceContext) {
|
||||
ElementNamespaceContext elementNamespaceContext = (ElementNamespaceContext)childObject;
|
||||
|
||||
if (elementNamespaceContext.getId()==null) {
|
||||
throw new NullPointerException("Can add ElementNamespaceContext without id.");
|
||||
}
|
||||
// TODO: no language here so move to EL default on eld attribute tag
|
||||
if (elementNamespaceContext.getId()!=null) {
|
||||
StringBuffer buf = new StringBuffer(30);
|
||||
for (char c:elementNamespaceContext.getId().toLowerCase().toCharArray()) {
|
||||
if (Character.isLetter(c)) {buf.append(c);}
|
||||
if (Character.isDigit(c)) {buf.append(c);}
|
||||
if ('-'==c) {buf.append(c);}
|
||||
}
|
||||
String id = buf.toString();
|
||||
elementNamespaceContext.setId(id);
|
||||
}
|
||||
if (elementNamespaceContext.getUri()==null) {
|
||||
elementNamespaceContext.setUri(
|
||||
"http://"+languageModule.getProviderHost()+
|
||||
"/xml/ns/"+x4oParsingContext.getLanguageName()+
|
||||
"-"+elementNamespaceContext.getId());
|
||||
}
|
||||
if (elementNamespaceContext.getSchemaUri()==null) {
|
||||
elementNamespaceContext.setSchemaUri(
|
||||
"http://"+languageModule.getProviderHost()+
|
||||
"/xml/ns/"+x4oParsingContext.getLanguageName()+
|
||||
"-"+elementNamespaceContext.getId()+
|
||||
"-"+x4oParsingContext.getLanguageVersion()+
|
||||
".xsd"
|
||||
);
|
||||
}
|
||||
if (elementNamespaceContext.getSchemaResource()==null) {
|
||||
elementNamespaceContext.setSchemaResource(
|
||||
x4oParsingContext.getLanguageName()+
|
||||
"-"+elementNamespaceContext.getId()+
|
||||
"-"+x4oParsingContext.getLanguageVersion()+
|
||||
".xsd"
|
||||
);
|
||||
}
|
||||
if (elementNamespaceContext.getSchemaPrefix()==null) {
|
||||
elementNamespaceContext.setSchemaPrefix(elementNamespaceContext.getId());
|
||||
}
|
||||
|
||||
try {
|
||||
elementNamespaceContext.setElementNamespaceInstanceProvider((ElementNamespaceInstanceProvider)X4OLanguageClassLoader.newInstance(childElement.getLanguageContext().getLanguage().getLanguageConfiguration().getDefaultElementNamespaceInstanceProvider()));
|
||||
} catch (Exception e) {
|
||||
|
|
|
@ -60,7 +60,11 @@ public class ElementNamespaceContextBindingHandler extends AbstractElementBindin
|
|||
*/
|
||||
public void bindChild(Element childElement,ElementNamespaceContext parent, Object childObject) throws ElementBindingHandlerException {
|
||||
if (childObject instanceof ElementClass) {
|
||||
parent.addElementClass((ElementClass)childObject);
|
||||
ElementClass elementClass = (ElementClass)childObject;
|
||||
if (elementClass.getId()==null && elementClass.getObjectClass()!=null) {
|
||||
elementClass.setId(elementClass.getObjectClass().getSimpleName()); // TODO: move to defaults layer
|
||||
}
|
||||
parent.addElementClass(elementClass);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ public class SkipPhaseElement extends AbstractElement {
|
|||
public void doElementEnd() throws ElementException {
|
||||
String phase = getAttributes().get("name");
|
||||
if (phase==null) {
|
||||
throw new ElementException("'name' attribute is not set on: "+getElementClass().getTag());
|
||||
throw new ElementException("'name' attribute is not set on: "+getElementClass().getId());
|
||||
}
|
||||
if (getParent().getElementObject() instanceof ElementClass) {
|
||||
((ElementClass)getParent().getElementObject()).addSkipPhase(phase);
|
||||
|
|
|
@ -38,7 +38,9 @@ import org.x4o.xml.element.ElementBindingHandler;
|
|||
import org.x4o.xml.element.ElementClass;
|
||||
import org.x4o.xml.element.ElementClassAttribute;
|
||||
import org.x4o.xml.element.ElementInterface;
|
||||
import org.x4o.xml.element.ElementMetaBase;
|
||||
import org.x4o.xml.element.ElementNamespaceContext;
|
||||
import org.x4o.xml.io.XMLConstants;
|
||||
import org.x4o.xml.lang.X4OLanguageModule;
|
||||
import org.x4o.xml.lang.X4OLanguage;
|
||||
import org.xml.sax.SAXException;
|
||||
|
@ -149,13 +151,11 @@ public class EldXsdXmlWriter {
|
|||
public void startSchema(ElementNamespaceContext ns) throws SAXException {
|
||||
|
||||
xmlWriter.startDocument();
|
||||
writeIgnorableWhitespace(XMLConstants.CHAR_NEWLINE);
|
||||
writeComment(COMMENT_SEPERATOR);
|
||||
writeIgnorableWhitespace(XMLConstants.CHAR_NEWLINE);
|
||||
|
||||
// this is a mess;
|
||||
char[] msg;
|
||||
msg = "\n".toCharArray();
|
||||
xmlWriter.ignorableWhitespace(msg,0,msg.length);
|
||||
msg = COMMENT_SEPERATOR.toCharArray();
|
||||
xmlWriter.comment(msg,0,msg.length);
|
||||
String desc = "Automatic generated schema for language: "+language.getLanguageName();
|
||||
int space = COMMENT_SEPERATOR.length()-desc.length()-(2*COMMENT_TEXT.length())-4;
|
||||
StringBuffer b = new StringBuffer(COMMENT_SEPERATOR.length());
|
||||
|
@ -168,17 +168,10 @@ public class EldXsdXmlWriter {
|
|||
}
|
||||
b.append(COMMENT_TEXT);
|
||||
b.append(" ");
|
||||
|
||||
msg = "\n".toCharArray();
|
||||
xmlWriter.ignorableWhitespace(msg,0,msg.length);
|
||||
msg = b.toString().toCharArray();
|
||||
xmlWriter.comment(msg,0,msg.length);
|
||||
msg = "\n".toCharArray();
|
||||
xmlWriter.ignorableWhitespace(msg,0,msg.length);
|
||||
msg = COMMENT_SEPERATOR.toCharArray();
|
||||
xmlWriter.comment(msg,0,msg.length);
|
||||
msg = "\n".toCharArray();
|
||||
xmlWriter.ignorableWhitespace(msg,0,msg.length);
|
||||
writeComment(b.toString());
|
||||
writeIgnorableWhitespace(XMLConstants.CHAR_NEWLINE);
|
||||
writeComment(COMMENT_SEPERATOR);
|
||||
writeIgnorableWhitespace(XMLConstants.CHAR_NEWLINE);
|
||||
|
||||
X4OLanguageModule module = null;
|
||||
for (X4OLanguageModule elm:language.getLanguageModules()) {
|
||||
|
@ -190,19 +183,15 @@ public class EldXsdXmlWriter {
|
|||
}
|
||||
|
||||
b = new StringBuffer(COMMENT_SEPERATOR.length());
|
||||
b.append("\n\tProviderName:\t");
|
||||
b.append(module.getProviderName());
|
||||
b.append("\n\tModuleName:\t\t");
|
||||
b.append(module.getName());
|
||||
b.append("\n\tNamespaces:\t\t");
|
||||
b.append(module.getElementNamespaceContexts().size());
|
||||
b.append("\n\tNamespace:\t\t");
|
||||
b.append(ns.getUri());
|
||||
b.append("\n\tCreated on:\t\t");
|
||||
b.append(new Date());
|
||||
b.append("\n\tID:\t\t"); b.append(module.getId());
|
||||
b.append("\n\tProviderName:\t"); b.append(module.getProviderName());
|
||||
b.append("\n\tProviderHost:\t"); b.append(module.getProviderHost());
|
||||
b.append("\n\tNamespaces:\t\t"); b.append(module.getElementNamespaceContexts().size());
|
||||
b.append("\n\tUri:\t\t\t"); b.append(ns.getUri());
|
||||
b.append("\n\tUri schema:\t"); b.append(ns.getSchemaUri());
|
||||
b.append("\n\tCreated on:\t\t"); b.append(new Date());
|
||||
b.append("\n");
|
||||
msg = b.toString().toCharArray();
|
||||
xmlWriter.comment(msg,0,msg.length);
|
||||
writeComment(b.toString());
|
||||
|
||||
|
||||
xmlWriter.startPrefixMapping("", SCHEMA_URI);
|
||||
|
@ -234,6 +223,7 @@ public class EldXsdXmlWriter {
|
|||
|
||||
public void endSchema() throws SAXException {
|
||||
xmlWriter.endElement (SCHEMA_URI, "schema" , "");
|
||||
writeIgnorableWhitespace(XMLConstants.CHAR_NEWLINE);
|
||||
xmlWriter.endDocument();
|
||||
}
|
||||
|
||||
|
@ -241,13 +231,13 @@ public class EldXsdXmlWriter {
|
|||
|
||||
AttributesImpl atts = new AttributesImpl();
|
||||
if (nsWrite.getLanguageRoot()!=null && nsWrite.getLanguageRoot()) {
|
||||
atts.addAttribute ("", "name", "", "", ec.getTag());
|
||||
atts.addAttribute ("", "name", "", "", ec.getId());
|
||||
xmlWriter.startElement (SCHEMA_URI, "element", "", atts); // Only in the language root xsd there is an element.
|
||||
|
||||
atts = new AttributesImpl();
|
||||
xmlWriter.startElement (SCHEMA_URI, "complexType", "", atts);
|
||||
} else {
|
||||
atts.addAttribute ("", "name", "", "", ec.getTag()+"Type");
|
||||
atts.addAttribute ("", "name", "", "", ec.getId()+"Type");
|
||||
xmlWriter.startElement (SCHEMA_URI, "complexType", "", atts);
|
||||
}
|
||||
|
||||
|
@ -289,8 +279,15 @@ public class EldXsdXmlWriter {
|
|||
if (eca.getRequired()!=null && eca.getRequired()) {
|
||||
atts.addAttribute ("", "use", "", "", "required");
|
||||
}
|
||||
xmlWriter.startElement (SCHEMA_URI, "attribute", "", atts);
|
||||
xmlWriter.endElement(SCHEMA_URI, "attribute", "");
|
||||
writeElementAttribute(eca,atts);
|
||||
|
||||
for (String alias:eca.getAttributeAliases()) {
|
||||
attrNames.add(alias);
|
||||
atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "name", "", "", alias);
|
||||
atts.addAttribute ("", "type", "", "", "string");
|
||||
writeElementAttribute(null,atts);
|
||||
}
|
||||
}
|
||||
|
||||
for (X4OLanguageModule mod:language.getLanguageModules()) {
|
||||
|
@ -299,16 +296,13 @@ public class EldXsdXmlWriter {
|
|||
atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "name", "", "", eah.getAttributeName());
|
||||
atts.addAttribute ("", "type", "", "", "string");
|
||||
xmlWriter.startElement (SCHEMA_URI, "attribute", "", atts);
|
||||
xmlWriter.endElement(SCHEMA_URI, "attribute", "");
|
||||
writeElementAttribute(eah,atts);
|
||||
}
|
||||
}
|
||||
|
||||
if (ec.getAutoAttributes()!=null && ec.getAutoAttributes()==false) {
|
||||
// oke, reverse this if and rm whitespace.
|
||||
char[] msg;
|
||||
msg = " ".toCharArray();
|
||||
xmlWriter.ignorableWhitespace(msg,0,msg.length);
|
||||
writeIgnorableWhitespace(" ");
|
||||
|
||||
} else {
|
||||
|
||||
|
@ -374,8 +368,8 @@ public class EldXsdXmlWriter {
|
|||
List<String> refElements = new ArrayList<String>(20);
|
||||
for (ElementClass checkClass:ns.getElementClasses()) {
|
||||
List<String> parents = checkClass.getElementParents(nsWrite.getUri());
|
||||
if (parents!=null && parents.contains(ecWrite.getTag())) {
|
||||
refElements.add(checkClass.getTag());
|
||||
if (parents!=null && parents.contains(ecWrite.getId())) {
|
||||
refElements.add(checkClass.getId());
|
||||
continue;
|
||||
}
|
||||
if (checkClass.getObjectClass()==null) {
|
||||
|
@ -383,8 +377,8 @@ public class EldXsdXmlWriter {
|
|||
}
|
||||
for (ElementInterface ei:language.findElementInterfaces(checkClass.getObjectClass())) {
|
||||
parents = ei.getElementParents(nsWrite.getUri());
|
||||
if (parents!=null && parents.contains(ecWrite.getTag())) {
|
||||
refElements.add(checkClass.getTag());
|
||||
if (parents!=null && parents.contains(ecWrite.getId())) {
|
||||
refElements.add(checkClass.getId());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -395,7 +389,7 @@ public class EldXsdXmlWriter {
|
|||
Class<?> checkObjectClass = checkClass.getObjectClass();
|
||||
List<ElementBindingHandler> b = language.findElementBindingHandlers(objectClass,checkObjectClass);
|
||||
if (b.isEmpty()==false) {
|
||||
refElements.add(checkClass.getTag());
|
||||
refElements.add(checkClass.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -429,23 +423,57 @@ public class EldXsdXmlWriter {
|
|||
return; // is done in writeElementClass
|
||||
}
|
||||
AttributesImpl atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "name", "", "", ec.getTag());
|
||||
atts.addAttribute ("", "type", "", "", "this:"+ec.getTag()+"Type");
|
||||
xmlWriter.startElement(SCHEMA_URI, "element", "", atts); // Only in the language root xsd there is an element.
|
||||
|
||||
if (ec.getDescription()!=null) {
|
||||
atts = new AttributesImpl();
|
||||
xmlWriter.startElement(SCHEMA_URI, "annotation", "", atts);
|
||||
atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "xml:lang", "", "", "en");
|
||||
xmlWriter.startElement(SCHEMA_URI, "documentation", "", atts);
|
||||
char[] msg = ec.getDescription().toCharArray();
|
||||
xmlWriter.characters(msg,0,msg.length);
|
||||
xmlWriter.endElement(SCHEMA_URI, "documentation", "");
|
||||
xmlWriter.endElement(SCHEMA_URI, "annotation", "");
|
||||
}
|
||||
|
||||
|
||||
atts.addAttribute ("", "name", "", "", ec.getId());
|
||||
atts.addAttribute ("", "type", "", "", "this:"+ec.getId()+"Type");
|
||||
xmlWriter.startElement(SCHEMA_URI, "element", "", atts);
|
||||
writeElementMetaBase(ec);
|
||||
xmlWriter.endElement(SCHEMA_URI, "element", "");
|
||||
}
|
||||
|
||||
private void writeElementAttribute(ElementMetaBase base,AttributesImpl atts) throws SAXException {
|
||||
xmlWriter.startElement (SCHEMA_URI, "attribute", "", atts);
|
||||
writeElementMetaBase(base);
|
||||
xmlWriter.endElement(SCHEMA_URI, "attribute", "");
|
||||
}
|
||||
|
||||
private void writeElementMetaBase(ElementMetaBase base) throws SAXException {
|
||||
if (base==null) {
|
||||
return;
|
||||
}
|
||||
if (base.getDescription()==null) {
|
||||
return;
|
||||
}
|
||||
AttributesImpl atts = new AttributesImpl();
|
||||
xmlWriter.startElement(SCHEMA_URI, "annotation", "", atts);
|
||||
atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "xml:lang", "", "", "en");
|
||||
xmlWriter.startElement(SCHEMA_URI, "documentation", "", atts);
|
||||
writeCharacters(base.getDescription());
|
||||
xmlWriter.endElement(SCHEMA_URI, "documentation", "");
|
||||
xmlWriter.endElement(SCHEMA_URI, "annotation", "");
|
||||
}
|
||||
|
||||
private void writeCharacters(String text) throws SAXException {
|
||||
if (text==null) {
|
||||
return;
|
||||
}
|
||||
char[] msg = text.toCharArray();
|
||||
xmlWriter.characters(msg,0,msg.length);
|
||||
}
|
||||
|
||||
private void writeComment(String text) throws SAXException {
|
||||
if (text==null) {
|
||||
return;
|
||||
}
|
||||
char[] msg = text.toCharArray();
|
||||
xmlWriter.comment(msg,0,msg.length);
|
||||
}
|
||||
|
||||
private void writeIgnorableWhitespace(String text) throws SAXException {
|
||||
if (text==null) {
|
||||
return;
|
||||
}
|
||||
char[] msg = text.toCharArray();
|
||||
xmlWriter.ignorableWhitespace(msg,0,msg.length);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,6 @@ import java.util.List;
|
|||
*/
|
||||
public abstract class AbstractElementClass extends AbstractElementClassBase implements ElementClass {
|
||||
|
||||
private String tag = null;
|
||||
private Class<?> objectClass = null;
|
||||
private Class<?> elementClass = null;
|
||||
private Boolean autoAttributes = true;
|
||||
|
@ -47,20 +46,6 @@ public abstract class AbstractElementClass extends AbstractElementClassBase impl
|
|||
skipPhases = new ArrayList<String>(3);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ElementClass#getTag()
|
||||
*/
|
||||
public String getTag() {
|
||||
return tag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ElementClass#setTag(String)
|
||||
*/
|
||||
public void setTag(String tag) {
|
||||
this.tag = tag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ElementClass#getElementClass()
|
||||
*/
|
||||
|
|
|
@ -81,10 +81,10 @@ public abstract class AbstractElementNamespaceContext extends AbstractElementMet
|
|||
* @see org.x4o.xml.element.ElementNamespaceContext#addElementClass(org.x4o.xml.element.ElementClass)
|
||||
*/
|
||||
public void addElementClass(ElementClass elementClass) {
|
||||
if (elementClass.getTag()==null) {
|
||||
throw new NullPointerException("ElementClass not correctly configured getTag is null.");
|
||||
if (elementClass.getId()==null) {
|
||||
throw new NullPointerException("ElementClass not correctly configured getId is null.");
|
||||
}
|
||||
elementClasses.put(elementClass.getTag(), elementClass);
|
||||
elementClasses.put(elementClass.getId(), elementClass);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,19 +33,7 @@ import java.util.List;
|
|||
* @version 1.0 Aug 11, 2005
|
||||
*/
|
||||
public interface ElementClass extends ElementClassBase {
|
||||
|
||||
/**
|
||||
* Gets the xml tag the Element should handle.
|
||||
* @return the tag
|
||||
*/
|
||||
String getTag();
|
||||
|
||||
/**
|
||||
* Sets the XML tag the Element should handle.
|
||||
* @param tag the tag to set
|
||||
*/
|
||||
void setTag(String tag);
|
||||
|
||||
/**
|
||||
* Gets the ElementClass.
|
||||
* @return the elementClass
|
||||
|
|
|
@ -171,17 +171,17 @@ public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
|||
}
|
||||
|
||||
String elementUri = findElementUri(element);
|
||||
writer.startElement(elementUri, element.getElementClass().getTag(), "", atts);
|
||||
writer.startElement(elementUri, element.getElementClass().getId(), "", atts);
|
||||
for (Element e:element.getChilderen()) {
|
||||
writeTree(writer,e);
|
||||
}
|
||||
writer.endElement(elementUri, element.getElementClass().getTag(), "");
|
||||
writer.endElement(elementUri, element.getElementClass().getId(), "");
|
||||
}
|
||||
|
||||
private String findElementUri(Element e) {
|
||||
for (X4OLanguageModule mod:getLanguageContext().getLanguage().getLanguageModules()) {
|
||||
for (ElementNamespaceContext c:mod.getElementNamespaceContexts()) {
|
||||
ElementClass ec = c.getElementClass(e.getElementClass().getTag());
|
||||
ElementClass ec = c.getElementClass(e.getElementClass().getId());
|
||||
if (ec!=null) {
|
||||
return c.getUri();
|
||||
}
|
||||
|
|
|
@ -220,8 +220,9 @@ public class X4ODebugWriter {
|
|||
for (X4OLanguageModule module:elementLanguage.getLanguage().getLanguageModules()) {
|
||||
AttributesImpl atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "className", "", "", module.getClass().getName());
|
||||
atts.addAttribute ("", "name", "", "", module.getName());
|
||||
atts.addAttribute ("", "id", "", "", module.getId());
|
||||
atts.addAttribute ("", "providerName", "", "", module.getProviderName());
|
||||
atts.addAttribute ("", "providerHost", "", "", module.getProviderHost());
|
||||
if (module.getLanguageModuleLoader()==null) {
|
||||
atts.addAttribute ("", "elementLanguageModuleLoaderClassName", "", "", "null");
|
||||
} else {
|
||||
|
@ -366,12 +367,12 @@ public class X4ODebugWriter {
|
|||
private StringBuffer getElementPath(Element element,StringBuffer buff) {
|
||||
if (element.getParent()==null) {
|
||||
buff.append('/'); // root slash
|
||||
buff.append(element.getElementClass().getTag());
|
||||
buff.append(element.getElementClass().getId());
|
||||
return buff;
|
||||
}
|
||||
buff = getElementPath(element.getParent(),buff);
|
||||
buff.append('/');
|
||||
buff.append(element.getElementClass().getTag());
|
||||
buff.append(element.getElementClass().getId());
|
||||
return buff;
|
||||
}
|
||||
|
||||
|
@ -435,7 +436,9 @@ public class X4ODebugWriter {
|
|||
|
||||
private void debugElementClass(ElementClass elementClass) throws SAXException {
|
||||
AttributesImpl atts = new AttributesImpl();
|
||||
atts.addAttribute ("", "tag", "", "", elementClass.getTag());
|
||||
atts.addAttribute ("", "id", "", "", elementClass.getId());
|
||||
atts.addAttribute ("", "autoAttributes", "", "", ""+elementClass.getAutoAttributes());
|
||||
//atts.addAttribute ("", "schemaContentBase", "", "", ""+elementClass.getSchemaContentBase());
|
||||
atts.addAttribute ("", "description", "", "", elementClass.getDescription());
|
||||
atts.addAttribute ("", "objectClassName", "", "", ""+elementClass.getObjectClass());
|
||||
atts.addAttribute ("", "className", "", "", elementClass.getClass().getName());
|
||||
|
|
|
@ -182,7 +182,7 @@ public class X4OTagHandler extends DefaultHandler2 {
|
|||
logger.finest("XMLTAG-END: "+namespaceUri+":"+tag);
|
||||
}
|
||||
if (overrideSaxHandler!=null) {
|
||||
if (overrideSaxElement.getElementClass().getTag().equals(tag)) {
|
||||
if (overrideSaxElement.getElementClass().getId().equals(tag)) {
|
||||
overrideSaxHandler.endDocument();
|
||||
overrideSaxHandler = null;
|
||||
overrideSaxElement = null; // elementStack code make sure doElementEnd is runned on override element.
|
||||
|
@ -229,7 +229,7 @@ public class X4OTagHandler extends DefaultHandler2 {
|
|||
try {
|
||||
e.doCharacters(text);
|
||||
} catch (ElementException ee) {
|
||||
throw new SAXParseException("Error while doCharacters element: '"+e.getElementClass().getTag()+"' "+ee.getMessage(),locator,ee);
|
||||
throw new SAXParseException("Error while doCharacters element: '"+e.getElementClass().getId()+"' "+ee.getMessage(),locator,ee);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -254,7 +254,7 @@ public class X4OTagHandler extends DefaultHandler2 {
|
|||
try {
|
||||
e.doIgnorableWhitespace(text);
|
||||
} catch (ElementException ee) {
|
||||
throw new SAXParseException("Error while doIgnorableWhitespace element: '"+e.getElementClass().getTag()+"' "+ee.getMessage(),locator,ee);
|
||||
throw new SAXParseException("Error while doIgnorableWhitespace element: '"+e.getElementClass().getId()+"' "+ee.getMessage(),locator,ee);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -279,7 +279,7 @@ public class X4OTagHandler extends DefaultHandler2 {
|
|||
try {
|
||||
e.doComment(text);
|
||||
} catch (ElementException ee) {
|
||||
throw new SAXParseException("Error while doComment element: '"+e.getElementClass().getTag()+"' "+ee.getMessage(),locator,ee);
|
||||
throw new SAXParseException("Error while doComment element: '"+e.getElementClass().getId()+"' "+ee.getMessage(),locator,ee);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -45,23 +45,15 @@ import org.x4o.xml.element.ElementNamespaceContext;
|
|||
public abstract class AbstractX4OLanguageModule extends AbstractElementMetaBase implements X4OLanguageModule {
|
||||
|
||||
private Logger logger = null;
|
||||
|
||||
private String name=null;
|
||||
private String providerName=null;
|
||||
private String providerHost=null;
|
||||
private String sourceResource = null;
|
||||
|
||||
/** The globalAttribute handlers */
|
||||
private List<ElementAttributeHandler> elementAttributeHandlers = null;
|
||||
|
||||
/** The binding rules */
|
||||
private List<ElementBindingHandler> elementBindingHandlers = null;
|
||||
|
||||
private List<ElementConfiguratorGlobal> elementConfiguratorGlobals = null;
|
||||
|
||||
private List<ElementInterface> elementInterfaces = null;
|
||||
|
||||
private Map<String,ElementNamespaceContext> elementNamespaceContexts = null;
|
||||
|
||||
private X4OLanguageModuleLoader elementLanguageModuleLoader = null;
|
||||
|
||||
/**
|
||||
|
@ -76,35 +68,35 @@ public abstract class AbstractX4OLanguageModule extends AbstractElementMetaBase
|
|||
elementInterfaces = new ArrayList<ElementInterface>(20);
|
||||
elementNamespaceContexts = new HashMap<String,ElementNamespaceContext>(10);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name the name to set
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the providerName
|
||||
*/
|
||||
public String getProviderName() {
|
||||
return providerName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param providerName the providerName to set
|
||||
*/
|
||||
public void setProviderName(String providerName) {
|
||||
this.providerName = providerName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the providerHost
|
||||
*/
|
||||
public String getProviderHost() {
|
||||
return providerHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param providerHost the providerHost to set
|
||||
*/
|
||||
public void setProviderHost(String providerHost) {
|
||||
this.providerHost = providerHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.lang.X4OLanguageModule#addElementAttributeHandler(ElementAttributeHandler)
|
||||
*/
|
||||
|
@ -208,20 +200,6 @@ public abstract class AbstractX4OLanguageModule extends AbstractElementMetaBase
|
|||
if (elementNamespaceContext.getUri()==null) {
|
||||
throw new NullPointerException("Can add ElementNamespaceContext without uri.");
|
||||
}
|
||||
if (elementNamespaceContext.getId()==null) {
|
||||
StringBuffer buf = new StringBuffer(30);
|
||||
for (char c:elementNamespaceContext.getUri().toLowerCase().toCharArray()) {
|
||||
if (Character.isLetter(c)) {buf.append(c);}
|
||||
if (Character.isDigit(c)) {buf.append(c);}
|
||||
}
|
||||
String id = buf.toString();
|
||||
if (id.startsWith("http")) {id = id.substring(4);}
|
||||
elementNamespaceContext.setId(id);
|
||||
}
|
||||
// TODO: no language here so move to EL default on eld attribute tag
|
||||
//if (elementNamespaceContext.getSchemaUri()==null) {
|
||||
// elementNamespaceContext.setSchemaUri(elementNamespaceContext.getUri()+elementNamespaceContext.)
|
||||
//}
|
||||
logger.fine("Adding namespaceUri: "+elementNamespaceContext.getUri());
|
||||
elementNamespaceContexts.put(elementNamespaceContext.getUri(), elementNamespaceContext);
|
||||
}
|
||||
|
|
|
@ -140,7 +140,7 @@ public class DefaultX4OLanguage implements X4OLanguageLocal {
|
|||
for (ElementClass ec:nsContext.getElementClasses()) {
|
||||
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
||||
try {
|
||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(context, ec.getTag());
|
||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(context, ec.getId());
|
||||
} catch (ElementNamespaceInstanceProviderException e) {
|
||||
throw new RuntimeException(e.getMessage(),e); // TODO: fix me
|
||||
}
|
||||
|
|
|
@ -41,16 +41,6 @@ import org.x4o.xml.element.ElementNamespaceContext;
|
|||
*/
|
||||
public interface X4OLanguageModule extends ElementMetaBase {
|
||||
|
||||
/**
|
||||
* @return the Name.
|
||||
*/
|
||||
String getName();
|
||||
|
||||
/**
|
||||
* @param name the module name to set.
|
||||
*/
|
||||
void setName(String name);
|
||||
|
||||
/**
|
||||
* @return the providerName.
|
||||
*/
|
||||
|
@ -61,6 +51,16 @@ public interface X4OLanguageModule extends ElementMetaBase {
|
|||
*/
|
||||
void setProviderName(String providerName);
|
||||
|
||||
/**
|
||||
* @return the providerHost
|
||||
*/
|
||||
public String getProviderHost();
|
||||
|
||||
/**
|
||||
* @param providerHost the providerHost to set
|
||||
*/
|
||||
public void setProviderHost(String providerHost);
|
||||
|
||||
/**
|
||||
* Adds an ElementAttributeHandler.
|
||||
* @param elementAttributeHandler Adds an ElmentAttributeHandler.
|
||||
|
|
|
@ -981,11 +981,11 @@ public class X4OPhaseLanguageRead {
|
|||
handler.startPrefixMapping(prefix, nameSpace);
|
||||
startedPrefix.add(prefix);
|
||||
}
|
||||
handler.startElement (nameSpace, element.getElementClass().getTag(), "", atts);
|
||||
handler.startElement (nameSpace, element.getElementClass().getId(), "", atts);
|
||||
for (Element e:element.getAllChilderen()) {
|
||||
printXML(e);
|
||||
}
|
||||
handler.endElement (nameSpace, element.getElementClass().getTag(), "");
|
||||
handler.endElement (nameSpace, element.getElementClass().getId(), "");
|
||||
}
|
||||
};
|
||||
return result;
|
||||
|
|
|
@ -144,7 +144,7 @@ public class X4OPhaseLanguageWrite {
|
|||
if (nsContext.getLanguageRoot()!=null && nsContext.getLanguageRoot()) {
|
||||
for (ElementClass ec:nsContext.getElementClasses()) {
|
||||
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(languageContext, ec.getTag());
|
||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(languageContext, ec.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -154,7 +154,7 @@ public class X4OPhaseLanguageWrite {
|
|||
for (ElementNamespaceContext nsContext:modContext.getElementNamespaceContexts()) {
|
||||
for (ElementClass ec:nsContext.getElementClasses()) {
|
||||
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(languageContext, ec.getTag());
|
||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(languageContext, ec.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: cel ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: cel ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<!--
|
||||
ProviderName: cel.x4o.org
|
||||
ModuleName: Core Element Languag Module
|
||||
ID: cel-module
|
||||
ProviderName: Core Element Languag Module
|
||||
ProviderHost: cel.x4o.org
|
||||
Namespaces: 2
|
||||
Namespace: http://cel.x4o.org/xml/ns/cel-core
|
||||
Created on: Sat Apr 27 20:01:59 CEST 2013
|
||||
Created on: Sun Apr 28 11:41:33 CEST 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:this="http://cel.x4o.org/xml/ns/cel-core"
|
||||
|
@ -19,8 +20,8 @@
|
|||
</choice>
|
||||
<attribute name="uri" type="string" use="required"/>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="prefixMapping" type="string"/>
|
||||
<attribute name="languageRoot" type="boolean"/>
|
||||
<attribute name="prefixMapping" type="string"/>
|
||||
<attribute name="elementNamespaceInstanceProvider" type="string"/>
|
||||
<attribute name="schemaUri" type="string"/>
|
||||
<attribute name="schemaResource" type="string"/>
|
||||
|
@ -44,7 +45,6 @@
|
|||
</choice>
|
||||
<attribute name="objectClass" type="string"/>
|
||||
<attribute name="elementClass" type="string"/>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="schemaContentComplex" type="boolean"/>
|
||||
<attribute name="schemaContentMixed" type="boolean"/>
|
||||
<attribute name="schemaContentBase" type="string"/>
|
||||
|
@ -60,6 +60,11 @@
|
|||
<attribute name="configAction" type="string"/>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="attributeAliasType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="name" type="string" use="required"/>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="configuratorType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
|
@ -77,17 +82,18 @@
|
|||
</complexType>
|
||||
<complexType name="attributeType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="attributeAlias" type="this:attributeAliasType"/>
|
||||
<element name="classConverter" type="this:classConverterType"/>
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="runConverters" type="boolean"/>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
<attribute name="runBeanValue" type="boolean"/>
|
||||
<attribute name="runResolveEL" type="boolean"/>
|
||||
<attribute name="writeOrder" type="integer"/>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
<attribute name="runConverters" type="boolean"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
</complexType>
|
||||
|
@ -144,6 +150,12 @@
|
|||
</documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="attributeAlias" type="this:attributeAliasType">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">Adds an attribute alias.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="configurator" type="this:configuratorType">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">Define generic configurator for language.
|
||||
|
@ -186,4 +198,4 @@
|
|||
</documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
</schema>
|
||||
</schema>
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: cel ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: cel ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<!--
|
||||
ProviderName: cel.x4o.org
|
||||
ModuleName: Core Element Languag Module
|
||||
ID: cel-module
|
||||
ProviderName: Core Element Languag Module
|
||||
ProviderHost: cel.x4o.org
|
||||
Namespaces: 2
|
||||
Namespace: http://cel.x4o.org/xml/ns/cel-root
|
||||
Created on: Sat Apr 27 20:01:59 CEST 2013
|
||||
Created on: Sun Apr 28 11:41:33 CEST 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:cel-core="http://cel.x4o.org/xml/ns/cel-core"
|
||||
|
@ -23,12 +24,12 @@
|
|||
<element ref="cel-core:elementInterface"/>
|
||||
<element ref="cel-core:namespace"/>
|
||||
</choice>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="providerHost" type="string" use="required"/>
|
||||
<attribute name="sourceResource" type="string"/>
|
||||
<attribute name="languageModuleLoader" type="string"/>
|
||||
<attribute name="providerName" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
</complexType>
|
||||
</element>
|
||||
</schema>
|
||||
</schema>
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: eld ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: eld ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<!--
|
||||
ProviderName: eld.x4o.org
|
||||
ModuleName: Element Language Definition
|
||||
ID: eld-module
|
||||
ProviderName: Element Language Definition
|
||||
ProviderHost: eld.x4o.org
|
||||
Namespaces: 3
|
||||
Namespace: http://eld.x4o.org/xml/ns/eld-conv
|
||||
Created on: Sat Apr 27 20:06:33 CEST 2013
|
||||
Uri: http://eld.x4o.org/xml/ns/eld-conv
|
||||
Uri schema: http://eld.x4o.org/xml/ns/eld-conv-0.8.xsd
|
||||
Created on: Sun Apr 28 11:56:32 CEST 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:this="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
|
@ -25,7 +27,12 @@
|
|||
</complexType>
|
||||
<complexType name="beanConverterType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="bean.class" type="string"/>
|
||||
<attribute name="bean.class" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class name of the converter to load.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="stringSplitConverterStepType">
|
||||
|
@ -42,10 +49,30 @@
|
|||
<element name="stringSplitConverter" type="this:stringSplitConverterType"/>
|
||||
<element name="urlConverter" type="this:urlConverterType"/>
|
||||
</choice>
|
||||
<attribute name="toMethod" type="string"/>
|
||||
<attribute name="fromOrder" type="string" use="required"/>
|
||||
<attribute name="fromMethod" type="string" use="required"/>
|
||||
<attribute name="toOrder" type="string" use="required"/>
|
||||
<attribute name="toMethod" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The convert 'to' method step.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="fromOrder" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The convert 'from' order.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="fromMethod" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The convert 'from' method step.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="toOrder" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The convert 'to' order.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
</complexType>
|
||||
<complexType name="doubleConverterType">
|
||||
|
@ -61,11 +88,36 @@
|
|||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="stringSplitConverterStep" type="this:stringSplitConverterStepType"/>
|
||||
</choice>
|
||||
<attribute name="useNativeType" type="string"/>
|
||||
<attribute name="singleToMethod" type="string"/>
|
||||
<attribute name="splitSize" type="string" use="required"/>
|
||||
<attribute name="split" type="string" use="required"/>
|
||||
<attribute name="classTo" type="string" use="required"/>
|
||||
<attribute name="useNativeType" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">Set to true to convert to native data type.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="singleToMethod" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">Shortcut to use only this method for the 'to' convert.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="splitSize" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The split value expected size.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="split" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The split regex.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="classTo" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class name to convert the string to.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</complexType>
|
||||
<complexType name="integerConverterType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
|
@ -98,4 +150,4 @@
|
|||
<element name="floatConverter" type="this:floatConverterType"/>
|
||||
<element name="characterConverter" type="this:characterConverterType"/>
|
||||
<element name="enumConverter" type="this:enumConverterType"/>
|
||||
</schema>
|
||||
</schema>
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: eld ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: eld ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<!--
|
||||
ProviderName: eld.x4o.org
|
||||
ModuleName: Element Language Definition
|
||||
ID: eld-module
|
||||
ProviderName: Element Language Definition
|
||||
ProviderHost: eld.x4o.org
|
||||
Namespaces: 3
|
||||
Namespace: http://eld.x4o.org/xml/ns/eld-lang
|
||||
Created on: Sat Apr 27 20:06:33 CEST 2013
|
||||
Uri: http://eld.x4o.org/xml/ns/eld-lang
|
||||
Uri schema: http://eld.x4o.org/xml/ns/eld-lang-0.8.xsd
|
||||
Created on: Sun Apr 28 11:56:32 CEST 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
|
@ -19,15 +21,20 @@
|
|||
<element name="description" type="this:descriptionType"/>
|
||||
<element name="element" type="this:elementType"/>
|
||||
</choice>
|
||||
<attribute name="uri" type="string" use="required"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The namespace id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="prefixMapping" type="string"/>
|
||||
<attribute name="languageRoot" type="boolean"/>
|
||||
<attribute name="elementNamespaceInstanceProvider" type="string"/>
|
||||
<attribute name="uri" type="string"/>
|
||||
<attribute name="schemaUri" type="string"/>
|
||||
<attribute name="schemaResource" type="string"/>
|
||||
<attribute name="schemaPrefix" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
<attribute name="prefixMapping" type="string"/>
|
||||
<attribute name="languageRoot" type="boolean"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
<complexType name="descriptionType">
|
||||
|
@ -39,7 +46,12 @@
|
|||
</complexType>
|
||||
<complexType name="elementSkipPhaseType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="name" type="string" use="required"/>
|
||||
<attribute name="name" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The name of the phase to skip.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="elementType">
|
||||
|
@ -52,60 +64,145 @@
|
|||
<element name="elementParent" type="this:elementParentType"/>
|
||||
<element name="elementSkipPhase" type="this:elementSkipPhaseType"/>
|
||||
</choice>
|
||||
<attribute name="objectClass" type="string"/>
|
||||
<attribute name="elementClass" type="string"/>
|
||||
<attribute name="id" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The attribute id. (with tag as alias)
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="schemaContentMixed" type="boolean"/>
|
||||
<attribute name="objectClass" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class of the wrapped object.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="elementClass" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">An custom element class to config object.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="schemaContentComplex" type="boolean"/>
|
||||
<attribute name="autoAttributes" type="boolean"/>
|
||||
<attribute name="schemaContentMixed" type="boolean"/>
|
||||
<attribute name="schemaContentBase" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
<complexType name="attributeAliasType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="name" type="string" use="required"/>
|
||||
<attribute name="name" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The alias name to add to the attribute.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="configuratorGlobalType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="bean.class" type="string" use="required"/>
|
||||
<attribute name="configAction" type="string"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The global element configurator id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="bean.class" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class of the element configurator.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="configAction" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">If set to true then run in config phase.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="configuratorType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="bean.class" type="string" use="required"/>
|
||||
<attribute name="configAction" type="string"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The element configurator id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="bean.class" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class of the global element configurator.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="configAction" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">If set to true then run in config phase.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="attributeFromBodyType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="bodyType" type="string"/>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="name" type="string" use="required"/>
|
||||
<attribute name="bodyType" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">See org.x4o.xml.element.Element.ElementType for options defaults to 'characters'.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The id for this configurator.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="name" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The attribute name to fill the value.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</complexType>
|
||||
<complexType name="attributeHandlerType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="attributeHandlerNextAttribute" type="this:attributeHandlerNextAttributeType"/>
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="attributeName" type="string" use="required"/>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="bean.class" type="string" use="required"/>
|
||||
<attribute name="attributeName" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The xml attribute name.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The atttribute handler id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="bean.class" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class of the attribute handler.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="attributeHandlerNextAttributeType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="attributeName" type="string" use="required"/>
|
||||
<attribute name="attributeName" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The attribute name to run after this attribute.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="attributeType">
|
||||
|
@ -126,41 +223,86 @@
|
|||
<element name="bean" type="this:beanType"/>
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The attribute id. (with name as alias)
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="required" type="boolean"/>
|
||||
<attribute name="writeOrder" type="integer"/>
|
||||
<attribute name="runBeanValue" type="boolean"/>
|
||||
<attribute name="runResolveEL" type="boolean"/>
|
||||
<attribute name="runConverters" type="boolean"/>
|
||||
<attribute name="defaultValue" type="string"/>
|
||||
<attribute name="objectConverter" type="string"/>
|
||||
<attribute name="id" type="string"/>
|
||||
<attribute name="runBeanValue" type="boolean"/>
|
||||
<attribute name="writeOrder" type="integer"/>
|
||||
<attribute name="runConverters" type="boolean"/>
|
||||
<attribute name="runResolveEL" type="boolean"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
<complexType name="bindingHandlerType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="bean.class" type="string" use="required"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The binding handler id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="bean.class" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class of the binding handler.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="beanType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="attributeHandlerNextAttribute" type="this:attributeHandlerNextAttributeType"/>
|
||||
</choice>
|
||||
<attribute name="bean.class" type="string"/>
|
||||
<attribute name="bean.class" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The class name of the the class to load.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<complexType name="classBindingHandlerType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<element name="description" type="this:descriptionType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="childClass" type="string" use="required"/>
|
||||
<attribute name="parentClass" type="string" use="required"/>
|
||||
<attribute name="getMethod" type="string" use="required"/>
|
||||
<attribute name="addMethod" type="string" use="required"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The id for this binding handler.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="childClass" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The child class.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="parentClass" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The parent class.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="getMethod" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The method name of the method used to get the childeren of the parent.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="addMethod" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The method name of the method used to add the child to the parent.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</complexType>
|
||||
<complexType name="elementInterfaceType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
|
@ -173,14 +315,34 @@
|
|||
<element name="description" type="this:descriptionType"/>
|
||||
<element name="elementParent" type="this:elementParentType"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="interfaceClass" type="string" use="required"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The interface id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="interfaceClass" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The interface class.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
<complexType name="elementParentType">
|
||||
<choice minOccurs="0" maxOccurs="unbounded"/>
|
||||
<attribute name="tag" type="string"/>
|
||||
<attribute name="uri" type="string"/>
|
||||
<attribute name="tag" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The parent tag to have object for.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="uri" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The element namespace uri if non local parent.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute/>
|
||||
</complexType>
|
||||
<element name="namespace" type="this:namespaceType">
|
||||
|
@ -279,4 +441,4 @@
|
|||
</documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
</schema>
|
||||
</schema>
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
xmlns="http://cel.x4o.org/xml/ns/cel-core"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://cel.x4o.org/xml/ns/cel-root http://cel.x4o.org/xml/ns/cel-root-1.0.xsd"
|
||||
name="Element Language Definition"
|
||||
providerName="eld.x4o.org"
|
||||
providerName="Element Language Definition"
|
||||
providerHost="eld.x4o.org"
|
||||
id="eld-module"
|
||||
>
|
||||
<description>The full element language definition(eld) which is used to define xml languages.</description>
|
||||
|
@ -52,11 +52,17 @@
|
|||
id="eld-root"
|
||||
>
|
||||
<description>Single root namespace so xsd schema generation works correct.</description>
|
||||
<element tag="module" objectClass="${parentLanguageConfiguration.defaultElementLanguageModule}" elementClass="org.x4o.xml.eld.lang.ModuleElement">
|
||||
<element id="module" objectClass="${parentLanguageConfiguration.defaultElementLanguageModule}" elementClass="org.x4o.xml.eld.lang.ModuleElement">
|
||||
<description>The module root element.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The module id.</description>
|
||||
</attribute>
|
||||
<description>The module root element.</description>
|
||||
<attribute id="providerHost" required="true">
|
||||
<description>The provider host like langx.someorg.domain for uri/etc defaults.</description>
|
||||
</attribute>
|
||||
<attribute id="providerName">
|
||||
<description>The provider name in normal en:lang.</description>
|
||||
</attribute>
|
||||
</element>
|
||||
</namespace>
|
||||
|
||||
|
@ -71,24 +77,28 @@
|
|||
<description>Some basic language definitions and some helper tags.</description>
|
||||
|
||||
<!-- First copy some core elements over from parent config -->
|
||||
<element tag="namespace" objectClass="${parentLanguageConfiguration.defaultElementNamespaceContext}">
|
||||
<element id="namespace" objectClass="${parentLanguageConfiguration.defaultElementNamespaceContext}">
|
||||
<description>Defines an namespace for the language.</description>
|
||||
<attribute id="uri" required="true">
|
||||
<attribute id="id" required="true">
|
||||
<description>The namespace id.</description>
|
||||
</attribute>
|
||||
</element>
|
||||
<element tag="element" objectClass="${parentLanguageConfiguration.defaultElementClass}">
|
||||
<element id="element" objectClass="${parentLanguageConfiguration.defaultElementClass}">
|
||||
<description>The xml element.</description>
|
||||
<attribute id="id">
|
||||
<attributeAlias name="tag"/>
|
||||
<description>The attribute id. (with tag as alias)</description>
|
||||
</attribute>
|
||||
<attribute id="objectClass">
|
||||
<description>The class of the wrapped object.</description>
|
||||
<classConverter/>
|
||||
</attribute>
|
||||
<attribute id="elementClass">
|
||||
<attribute id="elementClass">
|
||||
<description>An custom element class to config object.</description>
|
||||
<classConverter/>
|
||||
</attribute>
|
||||
</element>
|
||||
<element tag="elementInterface" objectClass="${parentLanguageConfiguration.defaultElementInterface}">
|
||||
<element id="elementInterface" objectClass="${parentLanguageConfiguration.defaultElementInterface}">
|
||||
<description>Config element objects by java interface.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The interface id.</description>
|
||||
|
@ -98,13 +108,17 @@
|
|||
<classConverter/>
|
||||
</attribute>
|
||||
</element>
|
||||
<element tag="attribute" objectClass="${parentLanguageConfiguration.defaultElementClassAttribute}">
|
||||
<element id="attribute" objectClass="${parentLanguageConfiguration.defaultElementClassAttribute}">
|
||||
<description>XML Element Attribute tag.</description>
|
||||
<attribute id="id">
|
||||
<attributeAlias name="name"/>
|
||||
<description>The attribute id. (with name as alias)</description>
|
||||
</attribute>
|
||||
</element>
|
||||
|
||||
<!-- Create some support elements to make language readable. -->
|
||||
|
||||
<element tag="bindingHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<element id="bindingHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<description>Define an className in bean.class for an ElementBindingHandler interface.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The binding handler id.</description>
|
||||
|
@ -116,7 +130,7 @@
|
|||
<elementParent tag="elementInterface"/>
|
||||
</element>
|
||||
|
||||
<element tag="attributeHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<element id="attributeHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<description>Define an className in bean.class for an ElementAttributeHandler.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The atttribute handler id.</description>
|
||||
|
@ -130,7 +144,7 @@
|
|||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||
</element>
|
||||
|
||||
<element tag="configuratorGlobal" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<element id="configuratorGlobal" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<description>Define an className in bean.class for an ElementConfiguratorGlobal.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The global element configurator id.</description>
|
||||
|
@ -144,7 +158,7 @@
|
|||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||
</element>
|
||||
|
||||
<element tag="configurator" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<element id="configurator" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<description>Define an className in bean.class for an ElementConfigurator.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The element configurator id.</description>
|
||||
|
@ -159,7 +173,7 @@
|
|||
<elementParent tag="element"/>
|
||||
</element>
|
||||
|
||||
<element tag="description" elementClass="org.x4o.xml.eld.lang.DescriptionElement" schemaContentBase="string">
|
||||
<element id="description" elementClass="org.x4o.xml.eld.lang.DescriptionElement" schemaContentBase="string">
|
||||
<description>An ELD elementDescription field which lets you type text like this one in xml characters instead of an attribute.</description>
|
||||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||
<elementParent tag="namespace"/>
|
||||
|
@ -177,7 +191,7 @@
|
|||
|
||||
<!-- Add some special tags which do actions. -->
|
||||
|
||||
<element tag="elementParent" elementClass="org.x4o.xml.eld.lang.ElementClassAddParentElement">
|
||||
<element id="elementParent" elementClass="org.x4o.xml.eld.lang.ElementClassAddParentElement">
|
||||
<description>Adds an parent element tag for xsd</description>
|
||||
<elementParent tag="element"/>
|
||||
<elementParent tag="elementInterface"/>
|
||||
|
@ -189,7 +203,7 @@
|
|||
</attribute>
|
||||
</element>
|
||||
|
||||
<element tag="elementSkipPhase" elementClass="org.x4o.xml.eld.lang.SkipPhaseElement">
|
||||
<element id="elementSkipPhase" elementClass="org.x4o.xml.eld.lang.SkipPhaseElement">
|
||||
<description>Adds an phase to skip to the parent element.</description>
|
||||
<attribute id="name" required="true">
|
||||
<description>The name of the phase to skip.</description>
|
||||
|
@ -197,7 +211,7 @@
|
|||
<elementParent tag="element"/>
|
||||
</element>
|
||||
|
||||
<element tag="attributeHandlerNextAttribute" elementClass="org.x4o.xml.eld.lang.NextAttributeElement">
|
||||
<element id="attributeHandlerNextAttribute" elementClass="org.x4o.xml.eld.lang.NextAttributeElement">
|
||||
<description>Defines the parameter order.</description>
|
||||
<attribute id="attributeName" required="true">
|
||||
<description>The attribute name to run after this attribute.</description>
|
||||
|
@ -206,7 +220,7 @@
|
|||
<elementParent tag="bean"/>
|
||||
</element>
|
||||
|
||||
<element tag="attributeAlias" elementClass="org.x4o.xml.eld.lang.AttributeAliasElement">
|
||||
<element id="attributeAlias" elementClass="org.x4o.xml.eld.lang.AttributeAliasElement">
|
||||
<description>Defines an alias for an attribute name.</description>
|
||||
<attribute id="name" required="true">
|
||||
<description>The alias name to add to the attribute.</description>
|
||||
|
@ -214,7 +228,7 @@
|
|||
<elementParent tag="attribute"/>
|
||||
</element>
|
||||
|
||||
<element tag="attributeFromBody" objectClass="org.x4o.xml.eld.lang.AttributeFromBodyConfigurator" autoAttributes="false">
|
||||
<element id="attributeFromBody" objectClass="org.x4o.xml.eld.lang.AttributeFromBodyConfigurator" autoAttributes="false">
|
||||
<description>Defines an alias for an attribute name.</description>
|
||||
<attribute id="id" required="true">
|
||||
<description>The id for this configurator.</description>
|
||||
|
@ -227,7 +241,7 @@
|
|||
</attribute>
|
||||
</element>
|
||||
|
||||
<element tag="classBindingHandler" objectClass="org.x4o.xml.eld.lang.ElementRefectionBindingHandler"
|
||||
<element id="classBindingHandler" objectClass="org.x4o.xml.eld.lang.ElementRefectionBindingHandler"
|
||||
autoAttributes="false"
|
||||
>
|
||||
<description>Lets you dynamicly bind to object togecher.</description>
|
||||
|
@ -253,7 +267,7 @@
|
|||
<!-- Config some helper elements -->
|
||||
|
||||
<!-- Helper elements for eld -->
|
||||
<element tag="bean" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<element id="bean" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<!-- BIG NOTE: maybe beanElement most go to meta to have clean impl. -->
|
||||
<description>Loads bean into the Element</description>
|
||||
<attribute id="bean.class">
|
||||
|
@ -276,7 +290,7 @@
|
|||
>
|
||||
<description>Basic set of attribute value converters.</description>
|
||||
|
||||
<element tag="beanConverter" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<element id="beanConverter" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||
<description>Define an loadable in bean.class for an ObjectConverter.</description>
|
||||
<attribute id="bean.class">
|
||||
<description>The class name of the converter to load.</description>
|
||||
|
@ -284,18 +298,18 @@
|
|||
<elementParent tag="attribute" uri="http://eld.x4o.org/xml/ns/eld-lang"/>
|
||||
<!-- todo: make converter which loads converter so xsd is correct. -->
|
||||
</element>
|
||||
<element tag="booleanConverter" objectClass="org.x4o.xml.conv.text.BooleanConverter" />
|
||||
<element tag="byteConverter" objectClass="org.x4o.xml.conv.text.ByteConverter" />
|
||||
<element tag="characterConverter" objectClass="org.x4o.xml.conv.text.CharacterConverter" />
|
||||
<element tag="doubleConverter" objectClass="org.x4o.xml.conv.text.DoubleConverter" />
|
||||
<element tag="floatConverter" objectClass="org.x4o.xml.conv.text.FloatConverter" />
|
||||
<element tag="integerConverter" objectClass="org.x4o.xml.conv.text.IntegerConverter" />
|
||||
<element tag="longConverter" objectClass="org.x4o.xml.conv.text.LongConverter" />
|
||||
<element tag="urlConverter" objectClass="org.x4o.xml.conv.text.URLConverter" />
|
||||
<element tag="classConverter" objectClass="org.x4o.xml.conv.text.ClassConverter" />
|
||||
<element tag="enumConverter" objectClass="org.x4o.xml.conv.text.EnumConverter" />
|
||||
<element id="booleanConverter" objectClass="org.x4o.xml.conv.text.BooleanConverter" />
|
||||
<element id="byteConverter" objectClass="org.x4o.xml.conv.text.ByteConverter" />
|
||||
<element id="characterConverter" objectClass="org.x4o.xml.conv.text.CharacterConverter" />
|
||||
<element id="doubleConverter" objectClass="org.x4o.xml.conv.text.DoubleConverter" />
|
||||
<element id="floatConverter" objectClass="org.x4o.xml.conv.text.FloatConverter" />
|
||||
<element id="integerConverter" objectClass="org.x4o.xml.conv.text.IntegerConverter" />
|
||||
<element id="longConverter" objectClass="org.x4o.xml.conv.text.LongConverter" />
|
||||
<element id="urlConverter" objectClass="org.x4o.xml.conv.text.URLConverter" />
|
||||
<element id="classConverter" objectClass="org.x4o.xml.conv.text.ClassConverter" />
|
||||
<element id="enumConverter" objectClass="org.x4o.xml.conv.text.EnumConverter" />
|
||||
|
||||
<element tag="stringSplitConverter" objectClass="org.x4o.xml.conv.text.StringSplitConverter">
|
||||
<element id="stringSplitConverter" objectClass="org.x4o.xml.conv.text.StringSplitConverter">
|
||||
<attribute id="classTo" required="true">
|
||||
<description>The class name to convert the string to.</description>
|
||||
<classConverter/>
|
||||
|
@ -305,7 +319,7 @@
|
|||
<attribute id="singleToMethod" description="Shortcut to use only this method for the 'to' convert."/>
|
||||
<attribute id="useNativeType" description="Set to true to convert to native data type."/>
|
||||
</element>
|
||||
<element tag="stringSplitConverterStep" objectClass="org.x4o.xml.conv.text.StringSplitConverterStep">
|
||||
<element id="stringSplitConverterStep" objectClass="org.x4o.xml.conv.text.StringSplitConverterStep">
|
||||
<attribute id="fromMethod" required="true" description="The convert 'from' method step."/>
|
||||
<attribute id="toMethod" required="false" description="The convert 'to' method step."/>
|
||||
<attribute id="fromOrder" required="true" description="The convert 'from' order."/>
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: eld ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ==================================================================== -->
|
||||
<!-- ===== Automatic generated schema for language: eld ===== -->
|
||||
<!-- ==================================================================== -->
|
||||
<!--
|
||||
ProviderName: eld.x4o.org
|
||||
ModuleName: Element Language Definition
|
||||
ID: eld-module
|
||||
ProviderName: Element Language Definition
|
||||
ProviderHost: eld.x4o.org
|
||||
Namespaces: 3
|
||||
Namespace: http://eld.x4o.org/xml/ns/eld-root
|
||||
Created on: Sat Apr 27 20:06:33 CEST 2013
|
||||
Uri: http://eld.x4o.org/xml/ns/eld-root
|
||||
Uri schema: http://eld.x4o.org/xml/ns/eld-root-1.0.xsd
|
||||
Created on: Sun Apr 28 11:56:32 CEST 2013
|
||||
-->
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
|
@ -27,12 +29,27 @@
|
|||
<element ref="lang:elementInterface"/>
|
||||
<element ref="lang:namespace"/>
|
||||
</choice>
|
||||
<attribute name="id" type="string" use="required"/>
|
||||
<attribute name="name" type="string"/>
|
||||
<attribute name="providerName" type="string"/>
|
||||
<attribute name="sourceResource" type="string"/>
|
||||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The module id.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="providerName" type="string">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The provider name in normal en:lang.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="providerHost" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation xml:lang="en">The provider host like langx.someorg.domain for uri/etc defaults.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="languageModuleLoader" type="string"/>
|
||||
<attribute name="sourceResource" type="string"/>
|
||||
<attribute name="description" type="string"/>
|
||||
</complexType>
|
||||
</element>
|
||||
</schema>
|
||||
</schema>
|
||||
|
|
|
@ -63,6 +63,8 @@ public class X4OWriterTest extends TestCase {
|
|||
writer.writeFile(root, outputFile);
|
||||
|
||||
String text = new Scanner( outputFile ).useDelimiter("\\A").next();
|
||||
outputFile.delete();
|
||||
//System.out.println("Output: '\n"+text+"\n' end in "+outputFile.getAbsolutePath());
|
||||
|
||||
assertTrue(text.startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
|
||||
assertTrue(text.contains("http://test.x4o.org/xml/ns/test-root"));
|
||||
|
@ -71,10 +73,6 @@ public class X4OWriterTest extends TestCase {
|
|||
assertTrue(text.contains("privateIntegerTypeField=\"123\""));
|
||||
assertTrue(text.contains("privateDoubleObjectField=\"123.45\""));
|
||||
assertTrue(text.contains("privateStringObjectField=\"x4o\""));
|
||||
|
||||
//System.out.println("Output: '\n"+text+"\n' end in "+outputFile.getAbsolutePath());
|
||||
|
||||
outputFile.delete();
|
||||
}
|
||||
|
||||
public void testWriterSwiXmlOutput() throws Exception {
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://eld.x4o.org/xml/ns/eld-root http://eld.x4o.org/xml/ns/eld-root-1.0.xsd"
|
||||
providerName="swixml2.test.x4o.org"
|
||||
name="Swixml2 Language"
|
||||
providerHost="swixml2.test.x4o.org"
|
||||
providerName="Swixml2 Language"
|
||||
id="swixml2-module"
|
||||
>
|
||||
|
||||
|
@ -88,25 +88,12 @@
|
|||
</elementInterface>
|
||||
|
||||
|
||||
<namespace
|
||||
uri="http://swixml.x4o.org/xml/ns/swixml-root"
|
||||
schemaUri="http://swixml.x4o.org/xml/ns/swixml-root-2.0.xsd"
|
||||
schemaResource="swixml-root-2.0.xsd"
|
||||
schemaPrefix="sx-root"
|
||||
name="Root element"
|
||||
languageRoot="true"
|
||||
id="sx-root"
|
||||
>
|
||||
<!-- Single element in language root to create nice tree, for imports in xsd namespace aware generated files. -->
|
||||
<element tag="frame" objectClass="javax.swing.JFrame"/>
|
||||
<namespace id="root" languageRoot="true">
|
||||
<element tag="frame" objectClass="javax.swing.JFrame">
|
||||
<description>Single element in language root to create nice tree, for imports in xsd namespace aware generated files.</description>
|
||||
</element>
|
||||
</namespace>
|
||||
<namespace
|
||||
uri="http://swixml.x4o.org/xml/ns/swixml-lang"
|
||||
schemaUri="http://swixml.x4o.org/xml/ns/swixml-lang-2.0.xsd"
|
||||
schemaResource="swixml-lang-2.0.xsd"
|
||||
schemaPrefix="sx-lang"
|
||||
id="sx-lang"
|
||||
>
|
||||
<namespace id="lang">
|
||||
<!-- Note frame should not be here(it can but xsd needs root), but else classic xml does not parse without xmlns additions. -->
|
||||
<element tag="frame" objectClass="javax.swing.JFrame"/>
|
||||
<element tag="menubar" objectClass="javax.swing.JMenuBar"/>
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://eld.x4o.org/xml/ns/eld-root http://eld.x4o.org/xml/ns/eld-root-1.0.xsd"
|
||||
providerName="swixml3.test.x4o.org"
|
||||
name="Swixml3 Language"
|
||||
providerHost="swixml.x4o.org"
|
||||
providerName="Swixml3 Language"
|
||||
id="swixml3-module"
|
||||
>
|
||||
|
||||
|
@ -83,29 +83,14 @@
|
|||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.BorderConverter"/>
|
||||
</attribute>
|
||||
</elementInterface>
|
||||
|
||||
|
||||
<namespace
|
||||
uri="http://swixml.x4o.org/xml/ns/swixml-root"
|
||||
schemaUri="http://swixml.x4o.org/xml/ns/swixml-root-3.0.xsd"
|
||||
schemaResource="swixml-root-3.0.xsd"
|
||||
schemaPrefix="sx-root"
|
||||
name="Root element"
|
||||
languageRoot="true"
|
||||
id="sx-root"
|
||||
>
|
||||
<element tag="JFrame" objectClass="javax.swing.JFrame"/>
|
||||
|
||||
<namespace id="root" languageRoot="true">
|
||||
<element objectClass="javax.swing.JFrame"/>
|
||||
</namespace>
|
||||
<namespace
|
||||
uri="http://swixml.x4o.org/xml/ns/swixml-lang"
|
||||
schemaUri="http://swixml.x4o.org/xml/ns/swixml-lang-3.0.xsd"
|
||||
schemaResource="swixml-lang-3.0.xsd"
|
||||
schemaPrefix="sx-lang"
|
||||
id="sx-lang"
|
||||
>
|
||||
<element tag="JMenubar" objectClass="javax.swing.JMenuBar"/>
|
||||
<element tag="JMenu" objectClass="javax.swing.JMenu"/>
|
||||
<element tag="JMenuItem" objectClass="javax.swing.JMenuItem">
|
||||
<namespace id="lang">
|
||||
<element objectClass="javax.swing.JMenuBar"/>
|
||||
<element objectClass="javax.swing.JMenu"/>
|
||||
<element objectClass="javax.swing.JMenuItem">
|
||||
<attribute id="accelerator">
|
||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.KeyStrokeConverter"/>
|
||||
<attributeAlias name="Accelerator"/>
|
||||
|
@ -114,9 +99,9 @@
|
|||
<attribute id="Action" runBeanValue="false"/>
|
||||
<configurator id="menuitem-action" bean.class="org.x4o.xml.test.swixml.SwiXmlActionConfigurator"/>
|
||||
</element>
|
||||
<element tag="JMenu.Separator" />
|
||||
<element tag="JPanel" objectClass="javax.swing.JPanel"/>
|
||||
<element tag="JSplitPane" objectClass="javax.swing.JSplitPane">
|
||||
<element id="JMenu.Separator" description="TODO"/>
|
||||
<element objectClass="javax.swing.JPanel"/>
|
||||
<element objectClass="javax.swing.JSplitPane">
|
||||
<attribute id="orientation">
|
||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.JSplitPaneOrientationConverter"/>
|
||||
</attribute>
|
||||
|
@ -125,16 +110,16 @@
|
|||
</attribute>
|
||||
</element>
|
||||
|
||||
<element tag="JLayeredPane" objectClass="javax.swing.JLayeredPane"/>
|
||||
<element tag="JRootPane" objectClass="javax.swing.JRootPane"/>
|
||||
<element tag="JScrollPane" objectClass="javax.swing.JScrollPane"/>
|
||||
<element tag="JTree" objectClass="javax.swing.JTree"/>
|
||||
<element tag="JButton" objectClass="javax.swing.JButton"/>
|
||||
<element tag="JTable" objectClass="javax.swing.JTable"/>
|
||||
<element tag="JTextArea" objectClass="javax.swing.JTextArea"/>
|
||||
<element tag="JLabel" objectClass="javax.swing.JLabel"/>
|
||||
<element tag="JTextField" objectClass="javax.swing.JTextField"/>
|
||||
<element tag="JDesktopPane" objectClass="javax.swing.JDesktopPane"/>
|
||||
<element tag="JInternalFrame" objectClass="javax.swing.JInternalFrame"/>
|
||||
<element objectClass="javax.swing.JLayeredPane"/>
|
||||
<element objectClass="javax.swing.JRootPane"/>
|
||||
<element objectClass="javax.swing.JScrollPane"/>
|
||||
<element objectClass="javax.swing.JTree"/>
|
||||
<element objectClass="javax.swing.JButton"/>
|
||||
<element objectClass="javax.swing.JTable"/>
|
||||
<element objectClass="javax.swing.JTextArea"/>
|
||||
<element objectClass="javax.swing.JLabel"/>
|
||||
<element objectClass="javax.swing.JTextField"/>
|
||||
<element objectClass="javax.swing.JDesktopPane"/>
|
||||
<element objectClass="javax.swing.JInternalFrame"/>
|
||||
</namespace>
|
||||
</root:module>
|
|
@ -29,8 +29,8 @@
|
|||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://eld.x4o.org/xml/ns/eld-root http://eld.x4o.org/xml/ns/eld-root-1.0.xsd"
|
||||
providerName="test.x4o.org"
|
||||
name="Test Language"
|
||||
providerName="test Language"
|
||||
providerHost="test.x4o.org"
|
||||
id="test-module"
|
||||
>
|
||||
|
||||
|
|
|
@ -29,6 +29,34 @@
|
|||
xsi:schemaLocation="http://language.x4o.org/xml/ns/drivers http://language.x4o.org/xml/ns/drivers-1.0.xsd"
|
||||
>
|
||||
<driver language="test" className="org.x4o.xml.test.TestDriver"/>
|
||||
<!--
|
||||
<languageResourcePathPrefix>META-INF</languageResourcePathPrefix>
|
||||
<languageResourceModulesFileName>-modules.xml</languageResourceModulesFileName>
|
||||
<defaultElementNamespaceContext>org.x4o.xml.element.DefaultElementNamespaceContext</defaultElementNamespaceContext>
|
||||
<defaultElementInterface>org.x4o.xml.element.DefaultElementInterface</defaultElementInterface>
|
||||
<defaultElement>org.x4o.xml.element.DefaultElement</defaultElement>
|
||||
<defaultElementClass>org.x4o.xml.element.DefaultElementClass</defaultElementClass>
|
||||
<defaultElementClassAttribute></defaultElementClassAttribute>
|
||||
<defaultElementLanguageModule></defaultElementLanguageModule>
|
||||
<defaultElementBodyComment></defaultElementBodyComment>
|
||||
<defaultElementBodyCharacters></defaultElementBodyCharacters>
|
||||
<defaultElementBodyWhitespace></defaultElementBodyWhitespace>
|
||||
<defaultElementNamespaceInstanceProvider></defaultElementNamespaceInstanceProvider>
|
||||
<defaultElementAttributeValueParser></defaultElementAttributeValueParser>
|
||||
<defaultElementObjectPropertyValue></defaultElementObjectPropertyValue>
|
||||
<defaultElementAttributeHandlerComparator></defaultElementAttributeHandlerComparator>
|
||||
|
||||
<properties>
|
||||
<property key="" value=""/>
|
||||
</properties>
|
||||
|
||||
<lockLanguage>true</lockLanguage>
|
||||
<secure-resources>
|
||||
<secure-resource resource="META-INF/test/test-modules.xml" hash="887486557" hashType="MD5"/>
|
||||
<secure-resource resource="META-INF/test/test-lang.eld" hash="238758509486557" hashType="MD5"/>
|
||||
</secure-resources>
|
||||
</driver>
|
||||
-->
|
||||
<driver language="swixml" className="org.x4o.xml.test.swixml.SwiXmlDriver"/>
|
||||
<defaultDriver language="junit-defp"/>
|
||||
</drivers>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
xsi:schemaLocation="http://test.x4o.org/xml/ns/test-root test-root-1.0.xsd"
|
||||
name="mainframe" size="800,600" title="SWIXML-X4O" plaf="com.sun.java.swing.plaf.windows.WindowsLookAndFeel" defaultCloseOperation="3"
|
||||
>
|
||||
<JMenubar name="menubar">
|
||||
<JMenuBar name="menubar">
|
||||
<JMenu name="filemenu" text="File">
|
||||
<JMenuItem name="mi_new" text="New" icon="icons/new.gif" mnemonic="VK_N" accelerator="control N" Action="newAction"/>
|
||||
<JMenuItem name="mi_open" text="Open" icon="icons/open.gif" mnemonic="VK_O" Accelerator="control O" ActionCommand="open"/>
|
||||
|
@ -45,7 +45,7 @@
|
|||
<JMenu text="Help">
|
||||
<JMenuItem name="mi_about" text="About" enabled="true" icon="icons/info.gif" Accelerator="alt A" Action="aboutAction" />
|
||||
</JMenu>
|
||||
</JMenubar>
|
||||
</JMenuBar>
|
||||
<JDesktopPane>
|
||||
<JInternalFrame title="Flow Layout (right aligned)" bounds="10,10,150,150" layout="FlowLayout(FlowLayout.RIGHT)" visible="true" resizable="true">
|
||||
<JButton text="1"/>
|
||||
|
|
|
@ -191,7 +191,7 @@ public class EldDocHtmlWriter {
|
|||
List<X4OLanguageModule> mods = context.getLanguage().getLanguageModules();
|
||||
Collections.sort(mods,new ElementLanguageModuleComparator());
|
||||
for (X4OLanguageModule mod:mods) {
|
||||
printTableRowOverview(pw,toSafeUri(mod.getId())+"/index.html",mod.getId(),mod.getName());
|
||||
printTableRowOverview(pw,toSafeUri(mod.getId())+"/index.html",mod.getId(),mod.getDescription());
|
||||
}
|
||||
printTableEnd(pw);
|
||||
printBottom(pw,"");
|
||||
|
@ -279,11 +279,11 @@ public class EldDocHtmlWriter {
|
|||
pw.print("/");
|
||||
pw.print(toSafeUri(node.namespace.getId()));
|
||||
pw.print("/");
|
||||
pw.print(toSafeUri(node.elementClass.getTag()));
|
||||
pw.print(toSafeUri(node.elementClass.getId()));
|
||||
pw.print("/index.html\">");
|
||||
pw.print(node.namespace.getId());
|
||||
pw.print(":");
|
||||
pw.print(node.elementClass.getTag());
|
||||
pw.print(node.elementClass.getId());
|
||||
pw.print("</a><br/>\n");
|
||||
|
||||
List<TreeNode> childs = findChilderen(node);
|
||||
|
@ -303,7 +303,7 @@ public class EldDocHtmlWriter {
|
|||
for (ElementClass ec:ns.getElementClasses()) {
|
||||
TreeNode n=null;
|
||||
List<String> tags = ec.getElementParents(node.namespace.getUri());
|
||||
if (tags!=null && tags.contains(node.elementClass.getTag())) {
|
||||
if (tags!=null && tags.contains(node.elementClass.getId())) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
n.module=mod;
|
||||
|
@ -318,7 +318,7 @@ public class EldDocHtmlWriter {
|
|||
// Check interfaces of parent , and see if child tag is there.
|
||||
for (ElementInterface ei:node.context.getLanguage().findElementInterfaces(ec.getObjectClass())) {
|
||||
List<String> eiTags = ei.getElementParents(node.namespace.getUri());
|
||||
if (eiTags!=null && eiTags.contains(node.elementClass.getTag())) {
|
||||
if (eiTags!=null && eiTags.contains(node.elementClass.getId())) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
n.module=mod;
|
||||
|
@ -357,7 +357,7 @@ public class EldDocHtmlWriter {
|
|||
private boolean isInTree(TreeNode node,TreeNode checkNode) {
|
||||
|
||||
if ( node.namespace.getUri().equals(checkNode.namespace.getUri()) &&
|
||||
node.elementClass.getTag().equals(checkNode.elementClass.getTag())
|
||||
node.elementClass.getId().equals(checkNode.elementClass.getId())
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ public class EldDocHtmlWriter {
|
|||
List<String> tags = node.elementClass.getElementParents(ns.getUri());
|
||||
if (tags!=null) {
|
||||
for (ElementClass ec:ns.getElementClasses()) {
|
||||
if (tags.contains(ec.getTag())) {
|
||||
if (tags.contains(ec.getId())) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
n.module=mod;
|
||||
|
@ -394,7 +394,7 @@ public class EldDocHtmlWriter {
|
|||
if (node.elementClass.getObjectClass()!=null) {
|
||||
for (ElementInterface ei:node.context.getLanguage().findElementInterfaces(node.elementClass.getObjectClass())) {
|
||||
List<String> eiTags = ei.getElementParents(ns.getUri());
|
||||
if (eiTags!=null && eiTags.contains(ec.getTag())) {
|
||||
if (eiTags!=null && eiTags.contains(ec.getId())) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
n.module=mod;
|
||||
|
@ -439,7 +439,7 @@ public class EldDocHtmlWriter {
|
|||
String pathPrefix = "../";
|
||||
try {
|
||||
printHeader(pw,"Overview ("+mod.getId()+")",pathPrefix);
|
||||
printPageTitle(pw,"Module",mod.getName(),mod.getDescription());
|
||||
printPageTitle(pw,"Module",mod.getProviderName(),mod.getDescription());
|
||||
|
||||
String pathPrefixModule = pathPrefix+toSafeUri(mod.getId())+"/";
|
||||
|
||||
|
@ -469,7 +469,7 @@ public class EldDocHtmlWriter {
|
|||
List<ElementClass> ecs = ns.getElementClasses();
|
||||
Collections.sort(ecs,new ElementClassComparator());
|
||||
for (ElementClass ec:ecs) {
|
||||
printTableRowOverview(pw,toSafeUri(ec.getTag())+"/index.html",ec.getTag(),ec.getDescription());
|
||||
printTableRowOverview(pw,toSafeUri(ec.getId())+"/index.html",ec.getId(),ec.getDescription());
|
||||
}
|
||||
printTableEnd(pw);
|
||||
printBottom(pw,pathPrefix);
|
||||
|
@ -496,11 +496,11 @@ public class EldDocHtmlWriter {
|
|||
|
||||
|
||||
public void writeElement(File basePath,ElementClass ec,ElementNamespaceContext ns,X4OLanguageModule mod,X4OLanguageContext context) throws IOException {
|
||||
PrintWriter pw = createPrintWriter(basePath,mod.getId(),ns.getId(),ec.getTag(),"index.html");
|
||||
PrintWriter pw = createPrintWriter(basePath,mod.getId(),ns.getId(),ec.getId(),"index.html");
|
||||
String pathPrefix = "../../../";
|
||||
try {
|
||||
printHeader(pw,"Tag ("+ec.getTag()+")",pathPrefix);
|
||||
printPageTitle(pw,"Tag",ec.getTag(),ec.getDescription());
|
||||
printHeader(pw,"Tag ("+ec.getId()+")",pathPrefix);
|
||||
printPageTitle(pw,"Tag",ec.getId(),ec.getDescription());
|
||||
|
||||
TreeNode node = new TreeNode();
|
||||
node.context=context;
|
||||
|
@ -522,11 +522,11 @@ public class EldDocHtmlWriter {
|
|||
pw.print("/");
|
||||
pw.print(toSafeUri(n.namespace.getId()));
|
||||
pw.print("/");
|
||||
pw.print(toSafeUri(n.elementClass.getTag()));
|
||||
pw.print(toSafeUri(n.elementClass.getId()));
|
||||
pw.print("/index.html\">");
|
||||
pw.print(n.namespace.getId());
|
||||
pw.print(":");
|
||||
pw.print(n.elementClass.getTag());
|
||||
pw.print(n.elementClass.getId());
|
||||
pw.print("</a>\n");
|
||||
}
|
||||
pw.print("</td>\n");
|
||||
|
@ -547,11 +547,11 @@ public class EldDocHtmlWriter {
|
|||
pw.print("/");
|
||||
pw.print(toSafeUri(n.namespace.getId()));
|
||||
pw.print("/");
|
||||
pw.print(toSafeUri(n.elementClass.getTag()));
|
||||
pw.print(toSafeUri(n.elementClass.getId()));
|
||||
pw.print("/index.html\">");
|
||||
pw.print(n.namespace.getId());
|
||||
pw.print(":");
|
||||
pw.print(n.elementClass.getTag());
|
||||
pw.print(n.elementClass.getId());
|
||||
pw.print("</a>\n");
|
||||
}
|
||||
pw.print("</td>\n");
|
||||
|
@ -561,7 +561,6 @@ public class EldDocHtmlWriter {
|
|||
|
||||
printTableStart(pw,"Element Properties");
|
||||
printTableRowSummary(pw,"id",""+ec.getId());
|
||||
printTableRowSummary(pw,"tag",""+ec.getTag());
|
||||
printTableRowSummary(pw,"objectClass",""+ec.getObjectClass());
|
||||
printTableRowSummary(pw,"elementClass",""+ec.getElementClass());
|
||||
printTableRowSummary(pw,"autoAttributes",""+ec.getAutoAttributes());
|
||||
|
@ -640,7 +639,7 @@ public class EldDocHtmlWriter {
|
|||
}
|
||||
|
||||
public void writeElementConfigurator(File basePath,ElementConfigurator conf,X4OLanguageModule mod,ElementNamespaceContext ns,ElementClass ec) throws IOException {
|
||||
PrintWriter pw = createPrintWriter(basePath,mod.getId(),ns.getId(),ec.getTag(),"conf",conf.getId()+".html");
|
||||
PrintWriter pw = createPrintWriter(basePath,mod.getId(),ns.getId(),ec.getId(),"conf",conf.getId()+".html");
|
||||
String pathPrefix = "../../../../";
|
||||
try {
|
||||
printHeader(pw,"Interface Configurator ("+conf.getId()+")",pathPrefix);
|
||||
|
@ -1036,13 +1035,13 @@ public class EldDocHtmlWriter {
|
|||
|
||||
class TreeNodeComparator implements Comparator<TreeNode> {
|
||||
public int compare(TreeNode o1,TreeNode o2) {
|
||||
return o1.elementClass.getTag().compareTo(o2.elementClass.getTag());
|
||||
return o1.elementClass.getId().compareTo(o2.elementClass.getId());
|
||||
}
|
||||
}
|
||||
|
||||
class ElementClassComparator implements Comparator<ElementClass> {
|
||||
public int compare(ElementClass o1,ElementClass o2) {
|
||||
return o1.getTag().compareTo(o2.getTag());
|
||||
return o1.getId().compareTo(o2.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,12 @@ public class MetaLanguageSiblingLoader implements X4OLanguageModuleLoaderSibling
|
|||
/** Defines the version of the meta x4o language. */
|
||||
public static final String META_LANGUAGE_VERSION = "1.0";
|
||||
|
||||
/** Defines the identifier of the meta x4o language host. */
|
||||
public static final String META_LANGUAGE_HOST = "meta.x4o.org";
|
||||
|
||||
/** Defines the identifier of the meta x4o language host. */
|
||||
public static final String META_LANGUAGE_DESCRIPTION = "X4O Meta XML Language Module.";
|
||||
|
||||
/**
|
||||
* Loads an ElementLanguageModule.
|
||||
* @param language The ElementLanguage to load for.
|
||||
|
@ -53,9 +59,9 @@ public class MetaLanguageSiblingLoader implements X4OLanguageModuleLoaderSibling
|
|||
*/
|
||||
public void loadLanguageModule(X4OLanguageLocal language,X4OLanguageModule languageModule) throws X4OLanguageModuleLoaderException {
|
||||
languageModule.setId(META_LANGUAGE);
|
||||
languageModule.setName(META_LANGUAGE);
|
||||
languageModule.setProviderHost(META_LANGUAGE_HOST);
|
||||
languageModule.setProviderName(MetaLanguageSiblingLoader.class.getSimpleName());
|
||||
languageModule.setDescription("X4O Meta Language");
|
||||
languageModule.setDescription(META_LANGUAGE_DESCRIPTION);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
schemaPrefix="mroot"
|
||||
name="MTest Root Namespace"
|
||||
languageRoot="true"
|
||||
id="mroot"
|
||||
>
|
||||
<!-- Root Element for nice namespace'ing -->
|
||||
<eld:element tag="root" objectClass="java.lang.Object">
|
||||
|
@ -53,6 +54,7 @@
|
|||
schemaResource="mtest-lang-1.0.xsd"
|
||||
schemaPrefix="mlang"
|
||||
name="MTest Language Namespace"
|
||||
id="mlang"
|
||||
>
|
||||
<eld:element tag="date" objectClass="java.util.Date"/>
|
||||
<eld:element tag="JFrame" objectClass="javax.swing.JFrame"/>
|
||||
|
|
Loading…
Reference in a new issue