Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornitind2008-05-22 16:29:28 +0000
committernitind2008-05-22 16:29:28 +0000
commitcfa52f93981b2d2f9d6d58c7aa72572927afedc3 (patch)
tree285670fed3c242defaa7054e120adb548c8107c0 /bundles/org.eclipse.wst.html.core
parentaffdab099bea7cd60930420d9ad12513f1ef1ed9 (diff)
downloadwebtools.sourceediting-cfa52f93981b2d2f9d6d58c7aa72572927afedc3.tar.gz
webtools.sourceediting-cfa52f93981b2d2f9d6d58c7aa72572927afedc3.tar.xz
webtools.sourceediting-cfa52f93981b2d2f9d6d58c7aa72572927afedc3.zip
[212927] "dynamic-attributes" missing from WTP 2.0's JSP tag file support
Diffstat (limited to 'bundles/org.eclipse.wst.html.core')
-rw-r--r--bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java208
-rw-r--r--bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java32
-rw-r--r--bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java8
-rw-r--r--bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java153
4 files changed, 370 insertions, 31 deletions
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
index d2e1be8b22..3ca1dadefe 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -77,6 +77,15 @@ final class JSP20ElementCollection extends JSPElementCollection implements JSP20
case Ids.ID_DIRECTIVE_TAGLIB :
createForDirTaglib();
break;
+ case Ids.ID_DIRECTIVE_PAGE :
+ createForDirPage();
+ break;
+ case Ids.ID_ROOT :
+ createForRoot();
+ break;
+ case Ids.ID_PLUGIN :
+ createForPlugin();
+ break;
default :
super.getDeclarations(eid);
}
@@ -87,13 +96,13 @@ final class JSP20ElementCollection extends JSPElementCollection implements JSP20
}
private void createForOutput() {
- AttrDecl adec = new AttrDecl(JSP20Namespace.ElementName.OUTPUT);
+ AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL);
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO};
adec.type.setEnumValues(values);
adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO);
adec.usage = CMAttributeDeclaration.OPTIONAL;
- declarations.putNamedItem(JSP20Namespace.ElementName.OUTPUT, adec);
+ declarations.putNamedItem(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL, adec);
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
@@ -134,6 +143,82 @@ final class JSP20ElementCollection extends JSPElementCollection implements JSP20
declarations.putNamedItem(ATTR_NAME_PREFIX, adec);
}
+ void createForDirPage() {
+ AttrDecl adec = null;
+ // ("language" CDATA DECLARED "java")
+ adec = new AttrDecl(ATTR_NAME_LANGUAGE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
+ declarations.putNamedItem(ATTR_NAME_LANGUAGE, adec);
+
+ // ("extends" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_EXTENDS);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_EXTENDS, adec);
+
+ // ("import" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_IMPORT);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_IMPORT, adec);
+
+ // ("session" ENUM DECLARED (true|false) "true")
+ adec = createBoolType(ATTR_NAME_SESSION, ATTR_VALUE_TRUE);
+ if (adec != null)
+ declarations.putNamedItem(ATTR_NAME_SESSION, adec);
+
+ // ("buffer" CDATA DECLARED "8kb")
+ adec = new AttrDecl(ATTR_NAME_BUFFER);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BUFSIZ_DEFAULT);
+ declarations.putNamedItem(ATTR_NAME_BUFFER, adec);
+
+ // ("autoFlush" ENUM DECLARED (true|false) "true")
+ adec = createBoolType(ATTR_NAME_AUTOFLUSH, ATTR_VALUE_TRUE);
+ if (adec != null)
+ declarations.putNamedItem(ATTR_NAME_AUTOFLUSH, adec);
+
+ // ("isThreadSafe" ENUM DECLARED (true|false) "true")
+ adec = createBoolType(ATTR_NAME_IS_THREAD_SAFE, ATTR_VALUE_TRUE);
+ if (adec != null)
+ declarations.putNamedItem(ATTR_NAME_IS_THREAD_SAFE, adec);
+
+ // ("info" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_INFO);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_INFO, adec);
+
+ // ("errorPage" URI IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_ERROR_PAGE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ declarations.putNamedItem(ATTR_NAME_ERROR_PAGE, adec);
+
+ // ("isErrorPage" ENUM DECLARED (true|false) "false")
+ adec = createBoolType(ATTR_NAME_IS_ERROR_PAGE, ATTR_VALUE_FALSE);
+ if (adec != null)
+ declarations.putNamedItem(ATTR_NAME_IS_ERROR_PAGE, adec);
+
+ // ("contentType" CDATA DECLARED "text/html; ISO-8859-1")
+ adec = new AttrDecl(ATTR_NAME_CONTENT_TYPE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_CT_DEFAULT);
+ declarations.putNamedItem(ATTR_NAME_CONTENT_TYPE, adec);
+
+ // ("pageEncoding" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_PAGE_ENCODING);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_ENCODING_DEFAULT);
+ declarations.putNamedItem(ATTR_NAME_PAGE_ENCODING, adec);
+
+ // ("isELIgnored" ENUM DECLARED (true|false) "false")
+ adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+ adec.type.setEnumValues(values);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+ adec.usage = CMAttributeDeclaration.OPTIONAL;
+ declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec);
+ }
+
private void createForElement() {
AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
@@ -151,10 +236,106 @@ final class JSP20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
- adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec);
}
+
+ private void createForRoot() {
+ // ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
+ AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
+ declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
+ // ("version" CDATA REQUIRED)
+ adec = new AttrDecl(ATTR_NAME_VERSION);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JSP_VER_20);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ declarations.putNamedItem(ATTR_NAME_VERSION, adec);
+ }
+
+ private void createForPlugin() {
+ // ("type" ENUM REQUIRED (bean|applet))
+ AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
+ adec.type.setEnumValues(values);
+ declarations.putNamedItem(ATTR_NAME_TYPE, adec);
+
+ // ("code" CDATA REQUIRED)
+ adec = new AttrDecl(ATTR_NAME_CODE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ declarations.putNamedItem(ATTR_NAME_CODE, adec);
+
+ // ("codebase" URI REQUIRED)
+ adec = new AttrDecl(ATTR_NAME_CODEBASE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
+
+ // ("align" ENUM IMPLIED (top|middle|bottom|left|right))
+ adec = new AttrDecl(ATTR_NAME_ALIGN);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
+ adec.type.setEnumValues(aligns);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BOTTOM);
+ declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
+
+ // ("archive" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_ARCHIVE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
+
+ // ("height" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_HEIGHT);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
+
+ // ("hspace" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_HSPACE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
+
+ // ("jreversion" CDATA DECLARED "1.1")
+ adec = new AttrDecl(ATTR_NAME_JREVERSION);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JVER12);
+ declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
+
+ // ("name" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_NAME);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+ // ("vspace" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_VSPACE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
+
+ // ("width" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_WIDTH);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
+
+ // ("nspluginurl" URI IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
+
+ // ("iepluginurl" URI IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
+
+ // ("mayscript" ENUM IMPLIED (true | false)
+ adec = new AttrDecl(JSP20Namespace.ATTR_NAME_MAYSCRIPT);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ adec.type.setEnumValues(new String[] {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE});
+ declarations.putNamedItem(JSP20Namespace.ATTR_NAME_MAYSCRIPT, adec);
+ }
}
private static String[] names = null;
@@ -274,6 +455,25 @@ final class JSP20ElementCollection extends JSPElementCollection implements JSP20
packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
break;
+ case Ids.ID_DIRECTIVE_PAGE :
+ // directive.page
+ packet.name = DIRECTIVE_PAGE;
+ packet.omit = HTMLElementDeclaration.OMIT_END;
+ packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+ packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+ break;
+ case Ids.ID_ROOT :
+ packet.name = ROOT;
+ packet.content = CMElementDeclaration.ELEMENT;
+ packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
+ break;
+ case Ids.ID_PLUGIN :
+ // plugin
+ packet.name = PLUGIN;
+ packet.content = CMElementDeclaration.ELEMENT;
+ packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+ packet.indentChild = true;
+ break;
default :
return super.createElemDecl(eid);
}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
index 5a0dc9a81f..ee138a2be4 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -44,8 +44,6 @@ public interface JSP20Namespace extends JSP11Namespace {
String ATTR_NAME_DESCRIPTION = "description"; //$NON-NLS-1$
String ATTR_NAME_EXAMPLE = "example"; //$NON-NLS-1$
String ATTR_NAME_LANGUAGE = "language"; //$NON-NLS-1$
- String ATTR_NAME_IMPORT = "import"; //$NON-NLS-1$
- String ATTR_NAME_PAGEENCODING = "pageEncoding"; //$NON-NLS-1$
String ATTR_NAME_ISELIGNORED = "isELIgnored"; //$NON-NLS-1$
String ATTR_NAME_REQUIRED = "required"; //$NON-NLS-1$
@@ -68,14 +66,32 @@ public interface JSP20Namespace extends JSP11Namespace {
String ATTR_NAME_VAR = "var"; //$NON-NLS-1$
String ATTR_NAME_VARREADER = "varReader"; //$NON-NLS-1$
+ String ATTR_NAME_OMIT_XML_DECL = "omit-xml-declaration"; //$NON-NLS-1$
String ATTR_NAME_DOCTYPE_ROOT_ELEMENT = "doctype-root-element"; //$NON-NLS-1$
String ATTR_NAME_DOCTYPE_SYSTEM = "doctype-system"; //$NON-NLS-1$
String ATTR_NAME_DOCTYPE_PUBLIC = "doctype-public"; //$NON-NLS-1$
- String ATTR_VALUE_NO = "no";
- String ATTR_VALUE_YES = "yes";
+ String ATTR_VALUE_NO = "no"; //$NON-NLS-1$
+ String ATTR_VALUE_YES = "yes"; //$NON-NLS-1$
- String ATTR_VALUE_SCOPE_AT_END = "AT_END";
- String ATTR_VALUE_SCOPE_AT_BEGIN = "AT_BEGIN";
- String ATTR_VALUE_SCOPE_NESTED = "NESTED";
+ String ATTR_VALUE_SCOPE_AT_END = "AT_END"; //$NON-NLS-1$
+ String ATTR_VALUE_SCOPE_AT_BEGIN = "AT_BEGIN"; //$NON-NLS-1$
+ String ATTR_VALUE_SCOPE_NESTED = "NESTED"; //$NON-NLS-1$
+
+ String ATTR_NAME_DYNAMIC_ATTRIBUTES = "dynamic-attributes"; //$NON-NLS-1$
+
+ String ATTR_VALUE_ENCODING_DEFAULT = "ISO-8859-1"; //$NON-NLS-1$
+
+ String ATTR_VALUE_VARIABLE_CLASS_DEFAULT = "java.lang.String"; //$NON-NLS-1$
+
+ String ATTR_NAME_MAYSCRIPT = "mayscript"; //$NON-NLS-1$
+
+ String ATTR_VALUE_JVER12 = "1.2"; //$NON-NLS-1$
+
+ String ATTR_VALUE_JSP_VER_20 = "2.0"; //$NON-NLS-1$
+
+ // JSP 2.1 attributes
+// String ATTR_NAME_DEFERRED_SYNTAX_ALLOWED_AS_LITERAL = "deferredSyntaxAllowedAsLiteral"; //$NON-NLS-1$
+// String ATTR_NAME_TRIM_DIRECTIVE_WHITESPACES = "trimDirectiveWhitespaces"; //$NON-NLS-1$
+
}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
index 67832d974d..c517f99e3e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -327,7 +327,7 @@ class JSPElementCollection extends DeclCollection implements JSP11Namespace.Elem
return declarations;
}
- private AttrDecl createBoolType(String name, String defValue) {
+ AttrDecl createBoolType(String name, String defValue) {
AttrDecl adec = new AttrDecl(name);
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
@@ -411,7 +411,7 @@ class JSPElementCollection extends DeclCollection implements JSP11Namespace.Elem
declarations.putNamedItem(ATTR_NAME_FILE, adec);
}
- void createForDirTaglib() {
+ private void createForDirTaglib() {
// ("uri" URI REQUIRED)
AttrDecl adec = new AttrDecl(ATTR_NAME_URI);
adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
@@ -613,7 +613,7 @@ class JSPElementCollection extends DeclCollection implements JSP11Namespace.Elem
}
private void createForRoot() {
- // ("xmlns:jsp" CDATA "http://jva.sun.com/JSP/Page")
+ // ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
index c8fb4ba270..7ae40f22de 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -91,7 +91,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
- adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec);
}
@@ -109,6 +109,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_REQUIRED, adec);
@@ -116,6 +117,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec);
@@ -123,6 +125,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_RTEXPRVALUE, adec);
@@ -131,11 +134,6 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TYPE, adec);
- adec = new AttrDecl(ATTR_NAME_NAME);
- adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
- adec.usage = CMAttributeDeclaration.REQUIRED;
- declarations.putNamedItem(ATTR_NAME_NAME, adec);
-
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
adec.usage = CMAttributeDeclaration.OPTIONAL;
@@ -159,8 +157,14 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
String[] values = {JSP20Namespace.ATTR_VALUE_EMPTY, JSP20Namespace.ATTR_VALUE_TAGDEPENDENT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS};
adec.type.setEnumValues(values);
adec.usage = CMAttributeDeclaration.OPTIONAL;
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS);
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_BODY_CONTENT, adec);
+ adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DYNAMIC_ATTRIBUTES);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.usage = CMAttributeDeclaration.OPTIONAL;
+ declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DYNAMIC_ATTRIBUTES, adec);
+
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_SMALL_ICON);
adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
adec.usage = CMAttributeDeclaration.OPTIONAL;
@@ -183,23 +187,26 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LANGUAGE);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LANGUAGE, adec);
- adec = new AttrDecl(JSP20Namespace.ATTR_NAME_IMPORT);
+ adec = new AttrDecl(JSP11Namespace.ATTR_NAME_IMPORT);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
adec.usage = CMAttributeDeclaration.OPTIONAL;
- declarations.putNamedItem(JSP20Namespace.ATTR_NAME_IMPORT, adec);
+ declarations.putNamedItem(JSP11Namespace.ATTR_NAME_IMPORT, adec);
- adec = new AttrDecl(JSP20Namespace.ATTR_NAME_PAGEENCODING);
+ adec = new AttrDecl(JSP11Namespace.ATTR_NAME_PAGE_ENCODING);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_ENCODING_DEFAULT);
adec.usage = CMAttributeDeclaration.OPTIONAL;
- declarations.putNamedItem(JSP20Namespace.ATTR_NAME_PAGEENCODING, adec);
+ declarations.putNamedItem(JSP11Namespace.ATTR_NAME_PAGE_ENCODING, adec);
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED);
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec);
}
@@ -245,6 +252,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_VARIABLE_CLASS_DEFAULT);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS, adec);
@@ -252,6 +260,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
adec.type.setEnumValues(values);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DECLARE, adec);
@@ -284,7 +293,7 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION};
adec.type.setEnumValues(values);
- adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
}
@@ -316,19 +325,19 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION};
adec.type.setEnumValues(values);
- adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
}
private void createForOutput() {
- AttrDecl adec = new AttrDecl(JSP20Namespace.ElementName.OUTPUT);
+ AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL);
adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO};
adec.type.setEnumValues(values);
adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO);
adec.usage = CMAttributeDeclaration.OPTIONAL;
- declarations.putNamedItem(JSP20Namespace.ElementName.OUTPUT, adec);
+ declarations.putNamedItem(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL, adec);
adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT);
adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
@@ -345,6 +354,102 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
adec.usage = CMAttributeDeclaration.OPTIONAL;
declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec);
}
+
+ private void createForRoot() {
+ // ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
+ AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
+ declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
+ // ("version" CDATA REQUIRED)
+ adec = new AttrDecl(ATTR_NAME_VERSION);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JSP_VER_20);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ declarations.putNamedItem(ATTR_NAME_VERSION, adec);
+ }
+
+ private void createForPlugin() {
+ // ("type" ENUM REQUIRED (bean|applet))
+ AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
+ adec.type.setEnumValues(values);
+ declarations.putNamedItem(ATTR_NAME_TYPE, adec);
+
+ // ("code" CDATA REQUIRED)
+ adec = new AttrDecl(ATTR_NAME_CODE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ declarations.putNamedItem(ATTR_NAME_CODE, adec);
+
+ // ("codebase" URI REQUIRED)
+ adec = new AttrDecl(ATTR_NAME_CODEBASE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ adec.usage = CMAttributeDeclaration.REQUIRED;
+ declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
+
+ // ("align" ENUM IMPLIED (top|middle|bottom|left|right))
+ adec = new AttrDecl(ATTR_NAME_ALIGN);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
+ adec.type.setEnumValues(aligns);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BOTTOM);
+ declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
+
+ // ("archive" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_ARCHIVE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
+
+ // ("height" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_HEIGHT);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
+
+ // ("hspace" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_HSPACE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
+
+ // ("jreversion" CDATA DECLARED "1.1")
+ adec = new AttrDecl(ATTR_NAME_JREVERSION);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JVER12);
+ declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
+
+ // ("name" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_NAME);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+ // ("vspace" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_VSPACE);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
+
+ // ("width" CDATA IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_WIDTH);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
+
+ // ("nspluginurl" URI IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
+
+ // ("iepluginurl" URI IMPLIED)
+ adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+ declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
+
+ // ("mayscript" ENUM IMPLIED (true | false)
+ adec = new AttrDecl(JSP20Namespace.ATTR_NAME_MAYSCRIPT);
+ adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ adec.type.setEnumValues(new String[] {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE});
+ declarations.putNamedItem(JSP20Namespace.ATTR_NAME_MAYSCRIPT, adec);
+ }
public CMNamedNodeMapImpl getDeclarations(int eid) {
switch (eid) {
@@ -378,6 +483,12 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
case TagIds20.ID_OUTPUT :
createForOutput();
break;
+ case TagIds20.ID_ROOT :
+ createForRoot();
+ break;
+ case TagIds20.ID_PLUGIN :
+ createForPlugin();
+ break;
default :
super.getDeclarations(eid);
break;
@@ -553,6 +664,18 @@ final class Tag20ElementCollection extends JSPElementCollection implements JSP20
packet.indentChild = true;
packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
break;
+ case TagIds20.ID_ROOT :
+ packet.name = ROOT;
+ packet.content = CMElementDeclaration.ELEMENT;
+ packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
+ break;
+ case TagIds20.ID_PLUGIN :
+ // plugin
+ packet.name = PLUGIN;
+ packet.content = CMElementDeclaration.ELEMENT;
+ packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+ packet.indentChild = true;
+ break;
default :
return super.createElemDecl(eid);
}

Back to the top