
(object Petal
    version    	47
    _written   	"Rose 8.0.0303.1400"
    charSet    	0)

(object Class_Category "jsp"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"Ecore"
	    name       	"prefix"
	    value      	(value Text "Jsp"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"basePackage"
	    value      	(value Text "org.eclipse.jst.j2ee"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"nsURI"
	    value      	(value Text "jsp.xmi")))
    quid       	"3E4D4F69036B"
    exportControl 	"Public"
    logical_models 	(list unit_reference_list
	(object Class "JSPConfig"
	    quid       	"3E4D4A3A01C8"
	    documentation 	
|@version J2EE1.4
|The jsp-configType is used to provide global configuration
|information for the JSP files in a web application. It has
|two subelements, taglib and jsp-property-group.
	    )
	(object Class "JSPPropertyGroup"
	    quid       	"3E4D4A970353"
	    documentation 	
|@version J2EE1.4
|The jsp-property-groupType is used to group a number of
|files so they can be given global property information.
|All files so described are deemed to be JSP files. The
|following additional properties can be described:
|
|- Control enabling of EL evaluation. - Control enabling
|of Scripting elements. - Indicate pageEncoding
|information. - Indicating that a resource is a JSP
|document - Prelude and Coda automatic includes.
	    
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"3E4D4CCD0144"
		    supplier   	"Logical View::common::CompatibilityDescriptionGroup"
		    quidu      	"4023ADF20197"))
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "urlPattern"
		    quid       	"3E4D4CDC0236"
		    stereotype 	"0..*"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "elIgnored"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3E4D4CE302B8"
		    documentation 	
|Can be used to easily set the isELIgnored
|	property of a group of JSP pages. By default,
|	the EL evaluation is enabled for Web
|	Applications using a Servlet 2.4 or greater
|	web.xml, and disabled otherwise.
		    
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Public")
		(object ClassAttribute "pageEncoding"
		    quid       	"3E4D4D33010E"
		    documentation 	
|The valid values of page-encoding are those of
|	the pageEncoding page directive. It is a
|	translation-time error to name different
|	encodings in the pageEncoding attribute of the
|	page directive of a JSP page and in a JSP
|	configuration element matching the page. It is
|	also a translation-time error to name different
|	encodings in the prolog of a document in XML
|	syntax and in a JSP configuration element
|	matching the document. It is legal to name the
|	same encoding through mulitple mechanisms.
		    
		    stereotype 	"0..1"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "scriptingInvalid"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3E4D4D5803E3"
		    documentation 	
|Can be used to easily disable scripting in a
|	group of JSP pages. By default, scripting is
|	enabled.
		    
		    stereotype 	"0..1"
		    type       	"boolean"
		    initv      	"true"
		    exportControl 	"Public")
		(object ClassAttribute "isXML"
		    attributes 	(list Attribute_Set
			(object Attribute
			    tool       	"Ecore"
			    name       	"isUnsettable"
			    value      	TRUE))
		    quid       	"3E4D4DBA0018"
		    documentation 	
|If true, denotes that the group of resources
|	that match the URL pattern are JSP documents,
|	and thus must be interpreted as XML documents.
|	If false, the resources are assumed to not be
|	JSP documents, unless there is another property
|	group that indicates otherwise.
		    
		    stereotype 	"0..1"
		    type       	"boolean"
		    initv      	"false"
		    exportControl 	"Public")
		(object ClassAttribute "includePreludes"
		    quid       	"3E4D4E1700EE"
		    documentation 	
|The include-prelude element is a
|	context-relative path that must correspond to
|	an element in the Web Application. When the
|	element is present, the given path will be
|	automatically included (as in an include
|	directive) at the beginning of each JSP page in
|	this jsp-property-group.
		    
		    stereotype 	"0..*"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "includeCodas"
		    quid       	"3E4D4E370235"
		    documentation 	
|The include-coda element is a context-relative
|	path that must correspond to an element in the
|	Web Application. When the element is present,
|	the given path will be automatically included
|	(as in an include directive) at the end of each
|	JSP page in this jsp-property-group.
		    
		    stereotype 	"0..*"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "TagLibRefType"
	    quid       	"3E4D4C370148"
	    documentation 	
|@version J2EE1.4
|A taglib can be used to provide information on a tag
|library that is used by a JSP page within the Web
|Application.
	    
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "taglibURI"
		    quid       	"3E4D4C4A02CC"
		    documentation 	
| A taglib-uri element describes a URI identifying a
|        tag library used in the web application.  The body
|        of the taglib-uri element may be either an
|        absolute URI specification, or a relative URI.
|        There should be no entries in web.xml with the
|        same taglib-uri value.
		    
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "taglibLocation"
		    quid       	"3E4D4C4F03B0"
		    documentation 	
|the taglib-location element contains the location
|        (as a resource relative to the root of the web
|        application) where to find the Tag Library
|        Description file for the tag library.
		    
		    type       	"String"
		    exportControl 	"Public")))
	(object Association "$UNNAMED$0"
	    quid       	"3E4D4B560249"
	    roles      	(list role_list
		(object Role "tagLibs"
		    quid       	"3E4D4B570074"
		    label      	"tagLibs"
		    supplier   	"Logical View::jsp::TagLibRefType"
		    quidu      	"3E4D4C370148"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$1"
		    quid       	"3E4D4B570076"
		    supplier   	"Logical View::jsp::JSPConfig"
		    quidu      	"3E4D4A3A01C8"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$2"
	    quid       	"3E4D4C9D03DA"
	    roles      	(list role_list
		(object Role "propertyGroups"
		    quid       	"3E4D4C9E034F"
		    label      	"propertyGroups"
		    supplier   	"Logical View::jsp::JSPPropertyGroup"
		    quidu      	"3E4D4A970353"
		    client_cardinality 	(value cardinality "0..n")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$3"
		    quid       	"3E4D4C9E0351"
		    supplier   	"Logical View::jsp::JSPConfig"
		    quidu      	"3E4D4A3A01C8"
		    is_aggregate 	TRUE))))
    logical_presentations 	(list unit_reference_list
	(object ClassDiagram "JSP_2_0"
	    quid       	"3E4D4FA203A9"
	    title      	"JSP_2_0"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	531
	    origin_y   	1684
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::jsp::JSPPropertyGroup" @1
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1056, 1791)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@1
			location   	(591, 1560)
			fill_color 	13434879
			nlines     	1
			max_width  	930
			justify    	0
			label      	"JSPPropertyGroup")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4D4A970353"
		    compartment 	(object Compartment
			Parent_View 	@1
			location   	(591, 1621)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	8
			max_width  	800)
		    width      	948
		    height     	486
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jsp::TagLibRefType" @2
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2000, 1680)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@2
			location   	(1737, 1574)
			fill_color 	13434879
			nlines     	1
			max_width  	526
			justify    	0
			label      	"TagLibRefType")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4D4C370148"
		    compartment 	(object Compartment
			Parent_View 	@2
			location   	(1737, 1635)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	444)
		    width      	544
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::jsp::JSPConfig" @3
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1520, 1184)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@3
			location   	(1383, 1133)
			fill_color 	13434879
			nlines     	1
			max_width  	274
			justify    	0
			label      	"JSPConfig")
		    icon_style 	"Icon"
		    line_color 	10949559
		    fill_color 	15778042
		    quidu      	"3E4D4A3A01C8"
		    width      	292
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$2" @4
		    location   	(1054, 1168)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4D4C9D03DA"
		    roleview_list 	(list RoleViews
			(object RoleView "$UNNAMED$3" @5
			    Parent_View 	@4
			    location   	(173, -1612)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @6
				Parent_View 	@5
				location   	(1310, 1127)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				hidden     	TRUE
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	450
				justify    	0
				label      	""
				pctDist    	0.800000
				height     	42
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4D4C9E0351"
			    client     	@4
			    supplier   	@3
			    line_style 	3
			    origin_attachment 	(1054, 1168)
			    terminal_attachment 	(1374, 1168))
			(object RoleView "propertyGroups" @7
			    Parent_View 	@4
			    location   	(173, -1612)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @8
				Parent_View 	@7
				location   	(819, 1504)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	308
				justify    	0
				label      	"+propertyGroups"
				pctDist    	0.899498
				height     	176
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4D4C9E034F"
			    client     	@4
			    supplier   	@1
			    vertices   	(list Points
				(1054, 1168)
				(994, 1168)
				(994, 1548))
			    line_style 	3
			    origin_attachment 	(1054, 1168)
			    terminal_attachment 	(994, 1548)
			    label      	(object SegLabel @9
				Parent_View 	@7
				location   	(1061, 1509)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.912060
				height     	67
				orientation 	0))))
		(object AssociationViewNew "$UNNAMED$0" @10
		    location   	(2006, 1222)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4D4B560249"
		    roleview_list 	(list RoleViews
			(object RoleView "tagLibs" @11
			    Parent_View 	@10
			    location   	(1676, 916)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @12
				Parent_View 	@11
				location   	(1901, 1516)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	172
				justify    	0
				label      	"+tagLibs"
				pctDist    	0.866995
				height     	106
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4D4B570074"
			    client     	@10
			    supplier   	@2
			    line_style 	3
			    origin_attachment 	(2006, 1222)
			    terminal_attachment 	(2006, 1562)
			    label      	(object SegLabel @13
				Parent_View 	@11
				location   	(2070, 1514)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..n"
				pctDist    	0.859606
				height     	64
				orientation 	0))
			(object RoleView "$UNNAMED$1" @14
			    Parent_View 	@10
			    location   	(1676, 916)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"3E4D4B570076"
			    client     	@10
			    supplier   	@3
			    vertices   	(list Points
				(2006, 1222)
				(2006, 1162)
				(1666, 1162))
			    line_style 	3
			    origin_attachment 	(2006, 1222)
			    terminal_attachment 	(1666, 1162))))
		(object ClassView "Class" "Logical View::common::CompatibilityDescriptionGroup" @15
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(411, 1233)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@15
			location   	(65, 1054)
			fill_color 	13434879
			nlines     	1
			max_width  	692
			justify    	0
			label      	"CompatibilityDescriptionGroup")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"4023ADF20197"
		    compartment 	(object Compartment
			Parent_View 	@15
			location   	(65, 1159)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	13434879
			anchor     	2
			nlines     	5
			max_width  	437)
		    width      	710
		    height     	382
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @16
		    stereotype 	TRUE
		    line_color 	10949559
		    quidu      	"3E4D4CCD0144"
		    client     	@1
		    supplier   	@15
		    vertices   	(list Points
			(582, 1548)
			(509, 1548)
			(509, 1424))
		    line_style 	3
		    origin_attachment 	(582, 1548)
		    terminal_attachment 	(509, 1424))))))
