blob: 84ee6c671a86aaa42881152e754712adbbc02a22 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://wicket.apache.org"
xmlns:wicket="http://wicket.apache.org"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml-basic10.xsd"
elementFormDefault="qualified"
version="9.0.0">
<redefine schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml-basic10.xsd">
<attributeGroup name="xhtml.label.attlist">
<attributeGroup ref="xhtml.label.attlist"/>
<attribute ref="wicket:for"/>
</attributeGroup>
</redefine>
<!-- types -->
<simpleType name="token">
<annotation>
<documentation>An extension of standard token type with the
restriction of collapsing white space, which means that the XML
processor WILL REMOVE all white space characters (line feeds, tabs,
spaces, carriage returns are replaced with spaces, leading and
trailing spaces are removed, and multiple spaces are reduced to a
single space).</documentation>
</annotation>
<restriction base="token">
<whiteSpace value="collapse" />
</restriction>
</simpleType>
<simpleType name="notEmptyToken">
<annotation>
<documentation>Extends wicket:token type with the restriction that
the value can not be empty.</documentation>
</annotation>
<restriction base="wicket:token">
<minLength value="1" />
</restriction>
</simpleType>
<complexType name="mixedContent" mixed="true">
<annotation>
<documentation>A complex type that allows any amount of mixed child
content from any origin.</documentation>
</annotation>
<choice minOccurs="0" maxOccurs="unbounded">
<any namespace="##targetNamespace" processContents="strict" />
<any namespace="##other" processContents="lax" />
</choice>
</complexType>
<complexType name="notEmptyMixedContent" mixed="true">
<annotation>
<documentation>Extends wicket:mixedContent with the restriction that
at least one child element must be given.</documentation>
</annotation>
<choice minOccurs="1" maxOccurs="unbounded">
<any namespace="##targetNamespace" processContents="strict" />
<any namespace="##other" processContents="lax" />
</choice>
</complexType>
<!-- attributes -->
<attribute name="enclosure">
<annotation>
<documentation>This attribute is useful for filtering markup that
surrounds a component but has its visibility dependent on the
visibility of that component. It is similar to the wicket:enclosure
tag. The value is the wicket:id of the dependent component. No value
can be used if there is only one nested wicket component.
"foo:bar:baz" format can be used to specify a nested path.
</documentation>
</annotation>
<simpleType>
<restriction base="wicket:notEmptyToken">
<pattern value="([^:]+(:[^:]+)*)?" />
</restriction>
</simpleType>
</attribute>
<attribute name="id" type="wicket:notEmptyToken">
<annotation>
<documentation>The wicket component id. Used on any element to which
you want to add a component.</documentation>
</annotation>
</attribute>
<attribute name="for">
<annotation>
<documentation>Can be used in HTML <![CDATA[<label]]> element to automatically link it
to a form element. The value of this attribute must have the same value of
the form component's wicket:id attribute.
</documentation>
</annotation>
<simpleType>
<restriction base="wicket:notEmptyToken">
<pattern value="([^:]+(:[^:]+)*)?" />
</restriction>
</simpleType>
</attribute>
<attribute name="message">
<annotation>
<documentation>Used on any tag that we want Wicket to provide an
attribute with a value that's the result of a resource lookup.
Format: "att1:key1,att2:key2", where att1, att2 are attribute names
and key1, key2 are resource id-s.
</documentation>
</annotation>
<simpleType>
<restriction base="wicket:notEmptyToken">
<pattern value="[^:,]+:[^:,]+(,[^:,]+:[^:,]+)*" />
</restriction>
</simpleType>
</attribute>
<!-- elements -->
<element name="body">
<annotation>
<documentation>Used with wicket:border to specify the location of the
original content.</documentation>
</annotation>
<complexType />
</element>
<element name="border" type="wicket:notEmptyMixedContent">
<annotation>
<documentation>Specifies bordering content for a wicket:body.
</documentation>
</annotation>
<unique name="borderWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="child">
<annotation>
<documentation>Wicket will replace this content with the markup of
the derived component (see wicket:extend).</documentation>
</annotation>
<complexType />
</element>
<element name="header-items">
<annotation>
<documentation><![CDATA[A special element that is used as a placeholder inside the HTML <head>
element. Wicket will replace it with all header contributions.]]></documentation>
</annotation>
<complexType />
</element>
<element name="container">
<annotation>
<documentation>A tag to which you can attach a wicket component but
it will not produce a html tag in the result.</documentation>
</annotation>
<complexType mixed="true">
<complexContent>
<extension base="wicket:mixedContent">
<attribute ref="wicket:id" use="required" />
</extension>
</complexContent>
</complexType>
<unique name="containerWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="enclosure">
<annotation>
<documentation>This tag is useful for filtering markup that surrounds
a component but has its visibility dependent on the visibility of
that component. It is similar to the wicket:enclosure attribute.
</documentation>
</annotation>
<complexType mixed="true">
<complexContent>
<extension base="wicket:notEmptyMixedContent">
<attribute name="child" use="optional">
<annotation>
<documentation>Specifies the wicket:id of the dependent
component. This attribute can be omitted if there is only one
nested wicket component. "foo:bar:baz" format can be used to
specify a nested path.</documentation>
</annotation>
<simpleType>
<restriction base="wicket:notEmptyToken">
<pattern value="[^:]+(:[^:]+)*" />
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<unique name="enclosureWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="extend" type="wicket:mixedContent">
<annotation>
<documentation>Extend the markup of the superclass with this content.
Used together with wicket:child.</documentation>
</annotation>
<unique name="extendWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="fragment">
<annotation>
<documentation>Is similar to wicket:panel but it is declared in the
parent's markup instead of in a separate markup file.
</documentation>
</annotation>
<complexType mixed="true">
<complexContent>
<extension base="wicket:mixedContent">
<attribute ref="wicket:id" use="required" />
</extension>
</complexContent>
</complexType>
<unique name="fragmentWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="head" type="wicket:mixedContent">
<annotation>
<documentation>Used for header contributions. Using this, panels can
add header sections to the pages they are placed on.</documentation>
</annotation>
<unique name="headWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="link" type="wicket:mixedContent">
<annotation>
<documentation>Support for wicket's autolink functionality. Normally,
you need to add a component (for example, a BookmarkablePageLink)
for each link that Wicket manages. Using the wicket:link tag will
automatically do this in the background for you.</documentation>
</annotation>
<unique name="linkWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="message">
<annotation>
<documentation>Wicket will replace this with a string that is
retrieved from a resource bundle.</documentation>
</annotation>
<complexType mixed="true">
<complexContent>
<extension base="wicket:mixedContent">
<attribute name="key" use="required" type="wicket:notEmptyToken">
<annotation>
<documentation>The resource id used for lookup.</documentation>
</annotation>
</attribute>
<attribute name="escape" use="optional" type="boolean" default="false">
<annotation>
<documentation>Defines whether the resource value should be escaped or not.</documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<unique name="messageWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="panel" type="wicket:mixedContent">
<annotation>
<documentation>The wicket:panel tag surrounds a component. This lets
you wrap the component with HTML and BODY tags (so it can be
displayed in a browser) but, when you include it, only the content
inside the wicket:panel tag is actually included.</documentation>
</annotation>
<unique name="panelWicketId">
<selector xpath="./*" />
<field xpath="@wicket:id" />
</unique>
</element>
<element name="remove" type="wicket:mixedContent">
<annotation>
<documentation>Wicket will remove this content in the final markup.
This is useful for when you want your web designer to be able to
show repeated content when they're working on it, but you want to
generate that content using a ListView (or other loop).
</documentation>
</annotation>
</element>
<element name="label">
<annotation>
<documentation>Wicket will output a FormComponent's label (FormComponent#getLabel()) without
requiring a manual extra component such as Label or FormComponentLabel.</documentation>
</annotation>
<complexType mixed="true">
<complexContent>
<extension base="wicket:mixedContent">
<attribute name="for" use="optional" type="wicket:notEmptyToken">
<annotation>
<documentation>The wicket:id of FormComponent which label should be used.</documentation>
</annotation>
</attribute>
<attribute name="key" use="optional" type="wicket:notEmptyToken">
<annotation>
<documentation>The resource id used for lookup. Acts as &lt;wicket:message&gt; </documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
</element>
</schema>