You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/06/28 21:27:00 UTC
[16/51] [partial] initial commit to apache incubator. Here just
commit WSO2 Stratos code base as it is. After that will start re-factor code
to apache
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/search.gif
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/search.gif b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/search.gif
new file mode 100644
index 0000000..86f81ed
Binary files /dev/null and b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/search.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/subscribe.gif
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/subscribe.gif b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/subscribe.gif
new file mode 100644
index 0000000..3b0b695
Binary files /dev/null and b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/subscribe.gif differ
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/unsubscribe.png
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/unsubscribe.png b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/unsubscribe.png
new file mode 100644
index 0000000..0c71c3c
Binary files /dev/null and b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/images/unsubscribe.png differ
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/common.js
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/common.js b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/common.js
new file mode 100644
index 0000000..76910b2
--- /dev/null
+++ b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/common.js
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2013, WSO2, Inc. http://wso2.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+function setStratosFormSubmitFunction(form, validateFunction,
+ ajaxprocessorPage, successPage, commandButton) {
+ jQuery(form).submit(
+ function(event) {
+ if (validateFunction && typeof validateFunction == "function"
+ && !validateFunction()) {
+ return false;
+ }
+
+ postToBEService(ajaxprocessorPage, jQuery(form).serialize(), successPage, commandButton);
+ return false;
+ });
+}
+
+function postToBEService(ajaxprocessorPage, data, successPage, commandButton, validateFunction) {
+ if (validateFunction && typeof validateFunction == "function"
+ && !validateFunction()) {
+ return;
+ }
+ showWait(commandButton);
+ jQuery.post(ajaxprocessorPage, data).done(
+ function(data, textStatus, jqXHR) {
+ stopWait(commandButton);
+ var msg = jQuery(jqXHR.responseText).filter('#responseMsg')
+ .text();
+ if (successPage) {
+ CARBON.showInfoDialog(msg, function() {
+ location.href = successPage;
+ });
+ } else {
+ CARBON.showInfoDialog(msg);
+ }
+ }).fail(function(jqXHR, textStatus, errorThrown) {
+ var msg = jQuery(jqXHR.responseText).filter('#responseMsg').text();
+ if (msg && msg.length > 0) {
+ CARBON.showErrorDialog(msg);
+ } else {
+ // Ignore
+ // Refer SPI-310
+ }
+ }).complete(function() {
+ stopWait(commandButton);
+ });
+}
+
+function showWait(commandButton) {
+ jQuery.blockUI('Please wait...');
+ if (commandButton) {
+ jQuery(commandButton).attr("disabled", "disabled");
+ }
+ //jQuery("body").css("cursor", "wait");
+}
+
+function stopWait(commandButton) {
+ jQuery.unblockUI();
+ if (commandButton) {
+ jQuery(commandButton).removeAttr("disabled");
+ }
+ //jQuery("body").css("cursor", "auto");
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/jquery.blockUI-1.33.js
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/jquery.blockUI-1.33.js b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/jquery.blockUI-1.33.js
new file mode 100644
index 0000000..2b0a360
--- /dev/null
+++ b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/js/jquery.blockUI-1.33.js
@@ -0,0 +1,361 @@
+/*
+ * jQuery blockUI plugin
+ * Version 1.33 (09/14/2007)
+ * @requires jQuery v1.1.1
+ *
+ * $Id$
+ *
+ * Examples at: http://malsup.com/jquery/block/
+ * Copyright (c) 2007 M. Alsup
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+ (function($) {
+/**
+ * blockUI provides a mechanism for blocking user interaction with a page (or parts of a page).
+ * This can be an effective way to simulate synchronous behavior during ajax operations without
+ * locking the browser. It will prevent user operations for the current page while it is
+ * active ane will return the page to normal when it is deactivate. blockUI accepts the following
+ * two optional arguments:
+ *
+ * message (String|Element|jQuery): The message to be displayed while the UI is blocked. The message
+ * argument can be a plain text string like "Processing...", an HTML string like
+ * "<h1><img src="busy.gif" /> Please wait...</h1>", a DOM element, or a jQuery object.
+ * The default message is "<h1>Please wait...</h1>"
+ *
+ * css (Object): Object which contains css property/values to override the default styles of
+ * the message. Use this argument if you wish to override the default
+ * styles. The css Object should be in a format suitable for the jQuery.css
+ * function. For example:
+ * $.blockUI({
+ * backgroundColor: '#ff8',
+ * border: '5px solid #f00,
+ * fontWeight: 'bold'
+ * });
+ *
+ * The default blocking message used when blocking the entire page is "<h1>Please wait...</h1>"
+ * but this can be overridden by assigning a value to $.blockUI.defaults.pageMessage in your
+ * own code. For example:
+ *
+ * $.blockUI.defaults.pageMessage = "<h1>Bitte Wartezeit</h1>";
+ *
+ * The default message styling can also be overridden. For example:
+ *
+ * $.extend($.blockUI.defaults.pageMessageCSS, { color: '#00a', backgroundColor: '#0f0' });
+ *
+ * The default styles work well for simple messages like "Please wait", but for longer messages
+ * style overrides may be necessary.
+ *
+ * @example $.blockUI();
+ * @desc prevent user interaction with the page (and show the default message of 'Please wait...')
+ *
+ * @example $.blockUI( { backgroundColor: '#f00', color: '#fff'} );
+ * @desc prevent user interaction and override the default styles of the message to use a white on red color scheme
+ *
+ * @example $.blockUI('Processing...');
+ * @desc prevent user interaction and display the message "Processing..." instead of the default message
+ *
+ * @name blockUI
+ * @param String|jQuery|Element message Message to display while the UI is blocked
+ * @param Object css Style object to control look of the message
+ * @cat Plugins/blockUI
+ */
+$.blockUI = function(msg, css, opts) {
+ $.blockUI.impl.install(window, msg, css, opts);
+};
+
+// expose version number so other plugins can interogate
+$.blockUI.version = 1.33;
+
+/**
+ * unblockUI removes the UI block that was put in place by blockUI
+ *
+ * @example $.unblockUI();
+ * @desc unblocks the page
+ *
+ * @name unblockUI
+ * @cat Plugins/blockUI
+ */
+$.unblockUI = function(opts) {
+ $.blockUI.impl.remove(window, opts);
+};
+
+/**
+ * Blocks user interaction with the selected elements. (Hat tip: Much of
+ * this logic comes from Brandon Aaron's bgiframe plugin. Thanks, Brandon!)
+ * By default, no message is displayed when blocking elements.
+ *
+ * @example $('div.special').block();
+ * @desc prevent user interaction with all div elements with the 'special' class.
+ *
+ * @example $('div.special').block('Please wait');
+ * @desc prevent user interaction with all div elements with the 'special' class
+ * and show a message over the blocked content.
+ *
+ * @name block
+ * @type jQuery
+ * @param String|jQuery|Element message Message to display while the element is blocked
+ * @param Object css Style object to control look of the message
+ * @cat Plugins/blockUI
+ */
+$.fn.block = function(msg, css, opts) {
+ return this.each(function() {
+ if (!this.$pos_checked) {
+ if ($.css(this,"position") == 'static')
+ this.style.position = 'relative';
+ if ($.browser.msie) this.style.zoom = 1; // force 'hasLayout' in IE
+ this.$pos_checked = 1;
+ }
+ $.blockUI.impl.install(this, msg, css, opts);
+ });
+};
+
+/**
+ * Unblocks content that was blocked by "block()"
+ *
+ * @example $('div.special').unblock();
+ * @desc unblocks all div elements with the 'special' class.
+ *
+ * @name unblock
+ * @type jQuery
+ * @cat Plugins/blockUI
+ */
+$.fn.unblock = function(opts) {
+ return this.each(function() {
+ $.blockUI.impl.remove(this, opts);
+ });
+};
+
+/**
+ * displays the first matched element in a "display box" above a page overlay.
+ *
+ * @example $('#myImage').displayBox();
+ * @desc displays "myImage" element in a box
+ *
+ * @name displayBox
+ * @type jQuery
+ * @cat Plugins/blockUI
+ */
+$.fn.displayBox = function(css, fn, isFlash) {
+ var msg = this[0];
+ if (!msg) return;
+ var $msg = $(msg);
+ css = css || {};
+
+ var w = $msg.width() || $msg.attr('width') || css.width || $.blockUI.defaults.displayBoxCSS.width;
+ var h = $msg.height() || $msg.attr('height') || css.height || $.blockUI.defaults.displayBoxCSS.height ;
+ if (w[w.length-1] == '%') {
+ var ww = document.documentElement.clientWidth || document.body.clientWidth;
+ w = parseInt(w) || 100;
+ w = (w * ww) / 100;
+ }
+ if (h[h.length-1] == '%') {
+ var hh = document.documentElement.clientHeight || document.body.clientHeight;
+ h = parseInt(h) || 100;
+ h = (h * hh) / 100;
+ }
+
+ var ml = '-' + parseInt(w)/2 + 'px';
+ var mt = '-' + parseInt(h)/2 + 'px';
+
+ // supress opacity on overlay if displaying flash content on mac/ff platform
+ var ua = navigator.userAgent.toLowerCase();
+ var opts = {
+ displayMode: fn || 1,
+ noalpha: isFlash && /mac/.test(ua) && /firefox/.test(ua)
+ };
+
+ $.blockUI.impl.install(window, msg, { width: w, height: h, marginTop: mt, marginLeft: ml }, opts);
+};
+
+
+// override these in your code to change the default messages and styles
+$.blockUI.defaults = {
+ // the message displayed when blocking the entire page
+ pageMessage: '<h1>Please wait...</h1>',
+ // the message displayed when blocking an element
+ elementMessage: '', // none
+ // styles for the overlay iframe
+ overlayCSS: { backgroundColor: '#fff', opacity: '0.5' },
+ // styles for the message when blocking the entire page
+ pageMessageCSS: { width:'250px', margin:'-50px 0 0 -125px', top:'50%', left:'50%', textAlign:'center', color:'#000', backgroundColor:'#fff', border:'3px solid #aaa' },
+ // styles for the message when blocking an element
+ elementMessageCSS: { width:'250px', padding:'10px', textAlign:'center', backgroundColor:'#fff'},
+ // styles for the displayBox
+ displayBoxCSS: { width: '400px', height: '400px', top:'50%', left:'50%' },
+ // allow body element to be stetched in ie6
+ ie6Stretch: 1,
+ // supress tab nav from leaving blocking content?
+ allowTabToLeave: 0,
+ // Title attribute for overlay when using displayBox
+ closeMessage: 'Click to close',
+ // use fadeOut effect when unblocking (can be overridden on unblock call)
+ fadeOut: 1,
+ // fadeOut transition time in millis
+ fadeTime: 400
+};
+
+// the gory details
+$.blockUI.impl = {
+ box: null,
+ boxCallback: null,
+ pageBlock: null,
+ pageBlockEls: [],
+ op8: window.opera && window.opera.version() < 9,
+ ie6: $.browser.msie && /MSIE 6.0/.test(navigator.userAgent),
+ install: function(el, msg, css, opts) {
+ opts = opts || {};
+ this.boxCallback = typeof opts.displayMode == 'function' ? opts.displayMode : null;
+ this.box = opts.displayMode ? msg : null;
+ var full = (el == window);
+
+ // use logical settings for opacity support based on browser but allow overrides via opts arg
+ var noalpha = this.op8 || $.browser.mozilla && /Linux/.test(navigator.platform);
+ if (typeof opts.alphaOverride != 'undefined')
+ noalpha = opts.alphaOverride == 0 ? 1 : 0;
+
+ if (full && this.pageBlock) this.remove(window, {fadeOut:0});
+ // check to see if we were only passed the css object (a literal)
+ if (msg && typeof msg == 'object' && !msg.jquery && !msg.nodeType) {
+ css = msg;
+ msg = null;
+ }
+ msg = msg ? (msg.nodeType ? $(msg) : msg) : full ? $.blockUI.defaults.pageMessage : $.blockUI.defaults.elementMessage;
+ if (opts.displayMode)
+ var basecss = jQuery.extend({}, $.blockUI.defaults.displayBoxCSS);
+ else
+ var basecss = jQuery.extend({}, full ? $.blockUI.defaults.pageMessageCSS : $.blockUI.defaults.elementMessageCSS);
+ css = jQuery.extend(basecss, css || {});
+ var f = ($.browser.msie) ? $('<iframe class="blockUI" style="z-index:1000;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>')
+ : $('<div class="blockUI" style="display:none"></div>');
+ var w = $('<div class="blockUI" style="z-index:1001;cursor:wait;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
+ var m = full ? $('<div class="blockUI blockMsg" style="z-index:1002;cursor:wait;padding:0;position:fixed"></div>')
+ : $('<div class="blockUI" style="display:none;z-index:1002;cursor:wait;position:absolute"></div>');
+ w.css('position', full ? 'fixed' : 'absolute');
+ if (msg) m.css(css);
+ if (!noalpha) w.css($.blockUI.defaults.overlayCSS);
+ if (this.op8) w.css({ width:''+el.clientWidth,height:''+el.clientHeight }); // lame
+ if ($.browser.msie) f.css('opacity','0.0');
+
+ $([f[0],w[0],m[0]]).appendTo(full ? 'body' : el);
+
+ // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
+ var expr = $.browser.msie && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
+ if (this.ie6 || expr) {
+ // stretch content area if it's short
+ if (full && $.blockUI.defaults.ie6Stretch && $.boxModel)
+ $('html,body').css('height','100%');
+
+ // fix ie6 problem when blocked element has a border width
+ if ((this.ie6 || !$.boxModel) && !full) {
+ var t = this.sz(el,'borderTopWidth'), l = this.sz(el,'borderLeftWidth');
+ var fixT = t ? '(0 - '+t+')' : 0;
+ var fixL = l ? '(0 - '+l+')' : 0;
+ }
+
+ // simulate fixed position
+ $.each([f,w,m], function(i,o) {
+ var s = o[0].style;
+ s.position = 'absolute';
+ if (i < 2) {
+ full ? s.setExpression('height','document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + "px"')
+ : s.setExpression('height','this.parentNode.offsetHeight + "px"');
+ full ? s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
+ : s.setExpression('width','this.parentNode.offsetWidth + "px"');
+ if (fixL) s.setExpression('left', fixL);
+ if (fixT) s.setExpression('top', fixT);
+ }
+ else {
+ if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
+ s.marginTop = 0;
+ }
+ });
+ }
+ if (opts.displayMode) {
+ w.css('cursor','default').attr('title', $.blockUI.defaults.closeMessage);
+ m.css('cursor','default');
+ $([f[0],w[0],m[0]]).removeClass('blockUI').addClass('displayBox');
+ $().click($.blockUI.impl.boxHandler).bind('keypress', $.blockUI.impl.boxHandler);
+ }
+ else
+ this.bind(1, el);
+ m.append(msg).show();
+ if (msg.jquery) msg.show();
+ if (opts.displayMode) return;
+ if (full) {
+ this.pageBlock = m[0];
+ this.pageBlockEls = $(':input:enabled:visible',this.pageBlock);
+ setTimeout(this.focus, 20);
+ }
+ else this.center(m[0]);
+ },
+ remove: function(el, opts) {
+ var o = $.extend({}, $.blockUI.defaults, opts);
+ this.bind(0, el);
+ var full = el == window;
+ var els = full ? $('body').children().filter('.blockUI') : $('.blockUI', el);
+ if (full) this.pageBlock = this.pageBlockEls = null;
+
+ if (o.fadeOut) {
+ els.fadeOut(o.fadeTime, function() {
+ if (this.parentNode) this.parentNode.removeChild(this);
+ });
+ }
+ else els.remove();
+ },
+ boxRemove: function(el) {
+ $().unbind('click',$.blockUI.impl.boxHandler).unbind('keypress', $.blockUI.impl.boxHandler);
+ if (this.boxCallback)
+ this.boxCallback(this.box);
+ $('body .displayBox').hide().remove();
+ },
+ // event handler to suppress keyboard/mouse events when blocking
+ handler: function(e) {
+ if (e.keyCode && e.keyCode == 9) {
+ if ($.blockUI.impl.pageBlock && !$.blockUI.defaults.allowTabToLeave) {
+ var els = $.blockUI.impl.pageBlockEls;
+ var fwd = !e.shiftKey && e.target == els[els.length-1];
+ var back = e.shiftKey && e.target == els[0];
+ if (fwd || back) {
+ setTimeout(function(){$.blockUI.impl.focus(back)},10);
+ return false;
+ }
+ }
+ }
+ if ($(e.target).parents('div.blockMsg').length > 0)
+ return true;
+ return $(e.target).parents().children().filter('div.blockUI').length == 0;
+ },
+ boxHandler: function(e) {
+ if ((e.keyCode && e.keyCode == 27) || (e.type == 'click' && $(e.target).parents('div.blockMsg').length == 0))
+ $.blockUI.impl.boxRemove();
+ return true;
+ },
+ // bind/unbind the handler
+ bind: function(b, el) {
+ var full = el == window;
+ // don't bother unbinding if there is nothing to unbind
+ if (!b && (full && !this.pageBlock || !full && !el.$blocked)) return;
+ if (!full) el.$blocked = b;
+ var $e = $(el).find('a,:input');
+ $.each(['mousedown','mouseup','keydown','keypress','click'], function(i,o) {
+ $e[b?'bind':'unbind'](o, $.blockUI.impl.handler);
+ });
+ },
+ focus: function(back) {
+ if (!$.blockUI.impl.pageBlockEls) return;
+ var e = $.blockUI.impl.pageBlockEls[back===true ? $.blockUI.impl.pageBlockEls.length-1 : 0];
+ if (e) e.focus();
+ },
+ center: function(el) {
+ var p = el.parentNode, s = el.style;
+ var l = ((p.offsetWidth - el.offsetWidth)/2) - this.sz(p,'borderLeftWidth');
+ var t = ((p.offsetHeight - el.offsetHeight)/2) - this.sz(p,'borderTopWidth');
+ s.left = l > 0 ? (l+'px') : '0';
+ s.top = t > 0 ? (t+'px') : '0';
+ },
+ sz: function(el, p) { return parseInt($.css(el,p))||0; }
+};
+
+})(jQuery);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/list.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/list.jsp b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/list.jsp
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain.jsp b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain.jsp
new file mode 100644
index 0000000..37c096f
--- /dev/null
+++ b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain.jsp
@@ -0,0 +1,118 @@
+<!--
+ ~ Copyright (c) 2005-2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ ~
+ ~ WSO2 Inc. licenses this file to you under the Apache License,
+ ~ Version 2.0 (the "License"); you may not use this file except
+ ~ in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ page import="org.apache.axis2.context.ConfigurationContext"%>
+<%@ page import="org.wso2.carbon.CarbonConstants"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+<%@ page import="org.wso2.carbon.utils.ServerConstants"%>
+<%@ page import="org.wso2.carbon.cartridge.mgt.ui.CartridgeAdminClient"%>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon"%>
+<%@ page import="java.text.SimpleDateFormat"%>
+<%@ page import="java.util.ResourceBundle"%>
+<jsp:include page="../dialog/display_messages.jsp" />
+
+
+<%
+ response.setHeader("Cache-Control", "no-cache");
+ String cartridgeAlias = request.getParameter("cartridge_alias");
+ String domain = request.getParameter("domain");
+
+ if (cartridgeAlias == null || cartridgeAlias.trim().length() == 0) {
+ response.setStatus(500);
+ CarbonUIMessage uiMsg = new CarbonUIMessage(
+ CarbonUIMessage.ERROR, "Cartridge Alias Not Specified");
+ session.setAttribute(CarbonUIMessage.ID, uiMsg);
+%>
+<jsp:include page="../admin/error.jsp" />
+<%
+ return;
+ }
+%>
+<fmt:bundle basename="org.wso2.carbon.cartridge.mgt.ui.i18n.Resources">
+ <carbon:breadcrumb label="mapdomain" resourceBundle="org.wso2.carbon.cartridge.mgt.ui.i18n.Resources" topPage="true"
+ request="<%=request%>" />
+ <div id="middle">
+ <h2>
+ <fmt:message key="mapdomain.to" />
+ <%=cartridgeAlias%></h2>
+ <div id="workArea">
+ <form id="mapDomainForm" name="mapDomain">
+ <input name="cartridge_alias" type="hidden" value="<%=cartridgeAlias%>" />
+ <table id="tblMapDomain" width="100%" class="styledLeft">
+ <thead>
+ <tr>
+ <th><fmt:message key="mapdomain.information" /></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="nopadding">
+ <table class="normal-nopadding" cellspacing="0">
+ <tbody>
+ <tr>
+ <td style="width: 30%"><label>Cartridge Alias</label><span
+ class="required">*</span></td>
+ <td><span><%=cartridgeAlias%></span></td>
+ </tr>
+ <tr>
+ <td><label for="domain">Domain</label><span
+ class="required">*</span></td>
+ <td><input id="domain" name="domain" type="text"
+ style="width: 250px" maxlength="300"
+ value="<%=(domain != null ? domain : "")%>" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr id="buttonRow">
+ <td class="buttonRow"><input id="mapDomainSave"
+ type="submit" class="button" value="Save"> <input
+ id="mapDomainCancelButton" type="button" class="button"
+ value="Cancel" onclick="cancelMapDomain();"></td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+ </div>
+ </div>
+
+ <script type="text/javascript">
+ jQuery(document).ready(
+ function() {
+ setStratosFormSubmitFunction("#mapDomainForm", validate,
+ "map_domain_ajaxprocessor.jsp",
+ "subscribed_cartridges.jsp", "#mapDomainSave");
+ });
+
+ function validate() {
+ if (jQuery("#domain").val().length == 0) {
+ CARBON.showErrorDialog('Please enter a value for domain.');
+ return false;
+ }
+ return true;
+ }
+
+ function cancelMapDomain() {
+ location.href = "subscribed_cartridges.jsp";
+ }
+ </script>
+ <script type="text/javascript" src="js/jquery.blockUI-1.33.js"></script>
+ <script type="text/javascript" src="js/common.js"></script>
+</fmt:bundle>
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain_ajaxprocessor.jsp b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain_ajaxprocessor.jsp
new file mode 100644
index 0000000..0543dcf
--- /dev/null
+++ b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/map_domain_ajaxprocessor.jsp
@@ -0,0 +1,67 @@
+<!--
+ ~ Copyright (c) 2005-2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ ~
+ ~ WSO2 Inc. licenses this file to you under the Apache License,
+ ~ Version 2.0 (the "License"); you may not use this file except
+ ~ in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ page import="org.apache.axis2.context.ConfigurationContext"%>
+<%@ page import="org.wso2.carbon.CarbonConstants"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+<%@ page import="org.wso2.carbon.utils.ServerConstants"%>
+<%@ page import="org.wso2.carbon.cartridge.mgt.ui.CartridgeAdminClient"%>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon"%>
+<%@ page import="org.wso2.carbon.adc.mgt.dto.xsd.Cartridge"%>
+<%@ page import="java.text.SimpleDateFormat"%>
+<%@ page import="java.util.ResourceBundle"%>
+<jsp:include page="../dialog/display_messages.jsp" />
+
+
+<%
+ response.setHeader("Cache-Control", "no-cache");
+
+ ResourceBundle bundle = ResourceBundle.getBundle(CartridgeAdminClient.BUNDLE, request.getLocale());
+
+ String backendServerURL = CarbonUIUtil.getServerURL(config.getServletContext(), session);
+ ConfigurationContext configContext = (ConfigurationContext) config.getServletContext().getAttribute(
+ CarbonConstants.CONFIGURATION_CONTEXT);
+
+ String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+ CartridgeAdminClient client;
+
+ String cartridgeAlias = request.getParameter("cartridge_alias");
+ String mappedDomain = request.getParameter("domain");
+ try {
+ client = new CartridgeAdminClient(cookie, backendServerURL, configContext, request.getLocale());
+ String host = client.addDomainMapping(mappedDomain, cartridgeAlias);
+ String message = "";
+ if (host != null) {
+ //CarbonUIMessage.sendCarbonUIMessage
+ message = "Your own domain is successfully added. Please CNAME it to system's domain: " + host + ".";
+ } //else {
+ //TODO: Handle this scenario
+ //CarbonUIMessage.sendCarbonUIMessage("Your own domain is added", CarbonUIMessage.WARNING, request);
+ //}
+%>
+<span id="responseMsg"><%=message%></span>
+<%
+ } catch (Exception e) {
+ //CarbonUIMessage.sendCarbonUIMessage(e.getMessage(), CarbonUIMessage.ERROR, request);
+ response.setStatus(500);
+%>
+<span id="responseMsg"><%=e.getMessage()%></span>
+<%
+ }
+%>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/remove_domain_ajaxprocessor.jsp
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/remove_domain_ajaxprocessor.jsp b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/remove_domain_ajaxprocessor.jsp
new file mode 100644
index 0000000..c210447
--- /dev/null
+++ b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/remove_domain_ajaxprocessor.jsp
@@ -0,0 +1,60 @@
+<!--
+ ~ Copyright (c) 2005-2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ ~
+ ~ WSO2 Inc. licenses this file to you under the Apache License,
+ ~ Version 2.0 (the "License"); you may not use this file except
+ ~ in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ page import="org.apache.axis2.context.ConfigurationContext"%>
+<%@ page import="org.wso2.carbon.CarbonConstants"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIMessage"%>
+<%@ page import="org.wso2.carbon.ui.CarbonUIUtil"%>
+<%@ page import="org.wso2.carbon.utils.ServerConstants"%>
+<%@ page import="org.wso2.carbon.cartridge.mgt.ui.CartridgeAdminClient"%>
+<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon"%>
+<%@ page import="org.wso2.carbon.adc.mgt.dto.xsd.Cartridge"%>
+<%@ page import="java.text.SimpleDateFormat"%>
+<%@ page import="java.util.ResourceBundle"%>
+<jsp:include page="../dialog/display_messages.jsp" />
+
+
+<%
+ response.setHeader("Cache-Control", "no-cache");
+
+ ResourceBundle bundle = ResourceBundle.getBundle(CartridgeAdminClient.BUNDLE, request.getLocale());
+
+ String backendServerURL = CarbonUIUtil.getServerURL(config.getServletContext(), session);
+ ConfigurationContext configContext = (ConfigurationContext) config.getServletContext().getAttribute(
+ CarbonConstants.CONFIGURATION_CONTEXT);
+
+ String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);
+ CartridgeAdminClient client;
+
+ String cartridgeAlias = request.getParameter("cartridge_alias");
+ try {
+ client = new CartridgeAdminClient(cookie, backendServerURL, configContext, request.getLocale());
+ client.removeDomainMapping(cartridgeAlias);
+ //CarbonUIMessage.sendCarbonUIMessage("Domain removed.", CarbonUIMessage.INFO, request);
+ String message = "Domain removed.";
+%>
+<span id="responseMsg"><%=message%></span>
+<%
+ } catch (Exception e) {
+ //CarbonUIMessage.sendCarbonUIMessage(e.getMessage(), CarbonUIMessage.ERROR, request);
+ response.setStatus(500);
+%>
+<span id="responseMsg"><%=e.getMessage()%></span>
+<%
+ }
+%>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/384b3de9/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/styles/XMLSchema.dtd
----------------------------------------------------------------------
diff --git a/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/styles/XMLSchema.dtd b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/styles/XMLSchema.dtd
new file mode 100644
index 0000000..562ad3e
--- /dev/null
+++ b/components/stratos/org.wso2.carbon.cartridge.mgt.ui/2.1.3/src/main/resources/web/cartridge-mgt/styles/XMLSchema.dtd
@@ -0,0 +1,418 @@
+<!--
+ ~ Copyright 2005-2007 WSO2, Inc. (http://wso2.com)
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<!-- DTD for XML Schemas: Part 1: Structures
+ Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
+ Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
+<!-- $Id: XMLSchema.dtd,v 1.31 2001/10/24 15:50:16 ht Exp $ -->
+<!-- Note this DTD is NOT normative, or even definitive. --> <!--d-->
+<!-- prose copy in the structures REC is the definitive version --> <!--d-->
+<!-- (which shouldn't differ from this one except for this --> <!--d-->
+<!-- comment and entity expansions, but just in case) --> <!--d-->
+<!-- With the exception of cases with multiple namespace
+ prefixes for the XML Schema namespace, any XML document which is
+ not valid per this DTD given redefinitions in its internal subset of the
+ 'p' and 's' parameter entities below appropriate to its namespace
+ declaration of the XML Schema namespace is almost certainly not
+ a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+ are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
+ schema document to establish a different
+ namespace prefix -->
+<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
+ also define %s as the suffix for the appropriate
+ namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+ Define one of these if your schema takes advantage of the
+ anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+<!ENTITY % annotationAttrs ''>
+<!ENTITY % appinfoAttrs ''>
+<!ENTITY % documentationAttrs ''>
+
+<!ENTITY % complexDerivationSet "CDATA">
+ <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+ <!-- #all or space-separated list drawn from
+ derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+ which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+ ((%simpleType; | %complexType;
+ | %element; | %attribute;
+ | %attributeGroup; | %group;
+ | %notation; ),
+ (%annotation;)*)* )>
+<!ATTLIST %schema;
+ targetNamespace %URIref; #IMPLIED
+ version CDATA #IMPLIED
+ %nds; %URIref; #FIXED 'http://www.w3.org/2001/XMLSchema'
+ xmlns CDATA #IMPLIED
+ finalDefault %complexDerivationSet; ''
+ blockDefault %blockSet; ''
+ id ID #IMPLIED
+ elementFormDefault %formValues; 'unqualified'
+ attributeFormDefault %formValues; 'unqualified'
+ xml:lang CDATA #IMPLIED
+ %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+ because at the Infoset level where schemas operate,
+ xmlns(:prefix) is NOT an attribute! -->
+<!-- The declaration of xmlns is a convenience for schema authors -->
+
+<!-- The id attribute here and below is for use in external references
+ from non-schemas using simple fragment identifiers.
+ It is NOT used for schema-to-schema reference, internal or
+ external. -->
+
+<!-- a type is a named content type specification which allows attribute
+ declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+ (%simpleContent;|%complexContent;|
+ %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ abstract %boolean; #IMPLIED
+ final %complexDerivationSet; #IMPLIED
+ block %complexDerivationSet; #IMPLIED
+ mixed (true|false) 'false'
+ %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+ has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+ and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %complexContent;
+ mixed (true|false) #IMPLIED
+ id ID #IMPLIED
+ %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+ one from part2; extension should use the full model -->
+
+<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %simpleContent;
+ id ID #IMPLIED
+ %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the
+ one defined above; extension should have no particle -->
+
+<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
+<!ATTLIST %extension;
+ base %QName; #REQUIRED
+ id ID #IMPLIED
+ %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+ (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ ref %QName; #IMPLIED
+ type %QName; #IMPLIED
+ minOccurs %nonNegativeInteger; #IMPLIED
+ maxOccurs CDATA #IMPLIED
+ nillable %boolean; #IMPLIED
+ substitutionGroup %QName; #IMPLIED
+ abstract %boolean; #IMPLIED
+ final %complexDerivationSet; #IMPLIED
+ block %blockSet; #IMPLIED
+ default CDATA #IMPLIED
+ fixed CDATA #IMPLIED
+ form %formValues; #IMPLIED
+ %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+ name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+ substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group;
+ name %NCName; #IMPLIED
+ ref %QName; #IMPLIED
+ minOccurs %nonNegativeInteger; #IMPLIED
+ maxOccurs CDATA #IMPLIED
+ id ID #IMPLIED
+ %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+ minOccurs (1) #IMPLIED
+ maxOccurs (1) #IMPLIED
+ id ID #IMPLIED
+ %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+ minOccurs %nonNegativeInteger; #IMPLIED
+ maxOccurs CDATA #IMPLIED
+ id ID #IMPLIED
+ %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+ minOccurs %nonNegativeInteger; #IMPLIED
+ maxOccurs CDATA #IMPLIED
+ id ID #IMPLIED
+ %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+ a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+ If order is 'all' THIS group must be alone (or referenced alone) at
+ the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+ namespace CDATA '##any'
+ processContents (skip|lax|strict) 'strict'
+ minOccurs %nonNegativeInteger; '1'
+ maxOccurs CDATA '1'
+ id ID #IMPLIED
+ %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+ ##any - - any non-conflicting WFXML at all
+
+ ##other - - any non-conflicting WFXML from namespace other
+ than targetNamespace
+
+ ##local - - any unqualified non-conflicting WFXML/attribute
+ one or - - any non-conflicting WFXML from
+ more URI the listed namespaces
+ references
+
+ ##targetNamespace ##local may appear in the above list,
+ with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+ namespace CDATA '##any'
+ processContents (skip|lax|strict) 'strict'
+ id ID #IMPLIED
+ %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ ref %QName; #IMPLIED
+ type %QName; #IMPLIED
+ use (prohibited|optional|required) #IMPLIED
+ default CDATA #IMPLIED
+ fixed CDATA #IMPLIED
+ form %formValues; #IMPLIED
+ %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+ name and ref are mutually exclusive, one is required -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- default and fixed are mutually exclusive -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+ reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+ (%attribute; | %attributeGroup;)*,
+ (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ ref %QName; #IMPLIED
+ %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name. ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+ name %NCName; #REQUIRED
+ id ID #IMPLIED
+ %uniqueAttrs;>
+
+<!ELEMENT %key; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+ name %NCName; #REQUIRED
+ id ID #IMPLIED
+ %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+ name %NCName; #REQUIRED
+ refer %QName; #REQUIRED
+ id ID #IMPLIED
+ %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+ xpath %XPathExpr; #REQUIRED
+ id ID #IMPLIED
+ %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+ xpath %XPathExpr; #REQUIRED
+ id ID #IMPLIED
+ %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+ schemaLocation %URIref; #REQUIRED
+ id ID #IMPLIED
+ %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+ namespace %URIref; #IMPLIED
+ schemaLocation %URIref; #IMPLIED
+ id ID #IMPLIED
+ %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+ %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+ schemaLocation %URIref; #REQUIRED
+ id ID #IMPLIED
+ %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+ name %NCName; #REQUIRED
+ id ID #IMPLIED
+ public CDATA #REQUIRED
+ system %URIref; #IMPLIED
+ %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+ as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+<!ATTLIST %annotation; %annotationAttrs;>
+
+<!-- User must define annotation elements in internal subset for this
+ to work -->
+<!ELEMENT %appinfo; ANY> <!-- too restrictive -->
+<!ATTLIST %appinfo;
+ source %URIref; #IMPLIED
+ id ID #IMPLIED
+ %appinfoAttrs;>
+<!ELEMENT %documentation; ANY> <!-- too restrictive -->
+<!ATTLIST %documentation;
+ source %URIref; #IMPLIED
+ id ID #IMPLIED
+ xml:lang CDATA #IMPLIED
+ %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+ 'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+ 'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >