The following PSML DTDs and XML Schema are included to further define the XML documents defined in these guides:
The DTDs and XML Schema included here are organized by PSML document:
Page documents, (*.psml), are described by the following DTD:
<!-- top level page element --> <!ELEMENT page ( defaults | fragment | menu | metadata | security-constraints | short-title | title )* > <!ATTLIST page hidden ( false | true ) #IMPLIED > <!ATTLIST page version NMTOKEN #IMPLIED > <!-- page child elements --> <!ELEMENT defaults EMPTY > <!ATTLIST defaults layout-decorator NMTOKEN #REQUIRED > <!ATTLIST defaults portlet-decorator NMTOKEN #IMPLIED > <!ATTLIST defaults skin NMTOKEN #IMPLIED > <!ELEMENT exclude ( #PCDATA ) > <!ELEMENT fragment ( fragment | preference | property | security-constraints )* > <!ATTLIST fragment decorator NMTOKEN #IMPLIED > <!ATTLIST fragment id NMTOKEN #REQUIRED > <!ATTLIST fragment name NMTOKEN #REQUIRED > <!ATTLIST fragment skin NMTOKEN #IMPLIED > <!ATTLIST fragment state NMTOKEN #IMPLIED > <!ATTLIST fragment type ( layout | portlet ) #REQUIRED > <!ELEMENT groups ( #PCDATA ) > <!ELEMENT include ( #PCDATA ) > <!ATTLIST include nest ( false | true ) #IMPLIED > <!ELEMENT menu ( exclude | include | menu | metadata | options | separator | short-title | title )* > <!ATTLIST menu depth NMTOKEN #IMPLIED > <!ATTLIST menu name NMTOKEN #IMPLIED > <!ATTLIST menu options CDATA #IMPLIED > <!ATTLIST menu order CDATA #IMPLIED > <!ATTLIST menu paths ( false | true ) #IMPLIED > <!ATTLIST menu profile NMTOKEN #IMPLIED > <!ATTLIST menu regexp ( false | true ) #IMPLIED > <!ATTLIST menu skin NMTOKEN #IMPLIED > <!ELEMENT metadata ( #PCDATA ) > <!ATTLIST metadata name ( short-title | text | title ) #REQUIRED > <!ATTLIST metadata xml:lang NMTOKEN #REQUIRED > <!ELEMENT options ( #PCDATA ) > <!ATTLIST options depth NMTOKEN #IMPLIED > <!ATTLIST options order CDATA #IMPLIED > <!ATTLIST options paths ( false | true ) #IMPLIED > <!ATTLIST options profile NMTOKEN #IMPLIED > <!ATTLIST options regexp ( false | true ) #IMPLIED > <!ATTLIST options skin NMTOKEN #IMPLIED > <!ELEMENT owner ( #PCDATA ) > <!ELEMENT permissions ( #PCDATA ) > <!ELEMENT preference ( value+ ) > <!ATTLIST preference name NMTOKEN #REQUIRED > <!ATTLIST preference readOnly ( false | true ) #IMPLIED > <!ELEMENT property EMPTY > <!ATTLIST property layout NMTOKEN #IMPLIED > <!ATTLIST property name ( column | row | sizes ) #REQUIRED > <!ATTLIST property value CDATA #REQUIRED > <!ELEMENT roles ( #PCDATA ) > <!ELEMENT security-constraint ( groups | permissions | roles | users )* > <!ELEMENT security-constraints ( owner | security-constraint | security-constraints-ref )* > <!ELEMENT security-constraints-ref ( #PCDATA ) > <!ELEMENT separator ( #PCDATA | metadata | text | title )* > <!ATTLIST separator skin NMTOKEN #IMPLIED > <!ELEMENT short-title ( #PCDATA ) > <!ELEMENT text ( #PCDATA ) > <!ELEMENT title ( #PCDATA ) > <!ELEMENT users ( #PCDATA ) > <!ELEMENT value ( #PCDATA ) >
Page documents, (*.psml), are described by the following XML Schema:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- top level page element --> <xs:element name="page"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="defaults" minOccurs="0" /> <xs:element ref="fragment" /> <xs:element ref="menu" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints" minOccurs="0" /> <xs:element ref="short-title" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> </xs:choice> <xs:attribute name="version" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="hidden" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <!-- page child elements --> <xs:element name="defaults"> <xs:complexType> <xs:attribute name="portlet-decorator" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="layout-decorator" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="exclude"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="fragment"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="fragment" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="preference" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="property" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints" minOccurs="0" /> </xs:choice> <xs:attribute name="decorator" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="name" type="xs:NMTOKEN" use="required" /> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="layout" /> <xs:enumeration value="portlet" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="state" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="id" type="xs:NMTOKEN" use="required" /> </xs:complexType> </xs:element> <xs:element name="groups"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="include"> <xs:complexType mixed="true"> <xs:attribute name="nest" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="menu"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="exclude" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="include" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="menu" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="options" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="separator" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="short-title" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> </xs:choice> <xs:attribute name="order" type="xs:string" use="optional" /> <xs:attribute name="options" type="xs:string" use="optional" /> <xs:attribute name="name" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="profile" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="regexp" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="paths" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="depth" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="metadata"> <xs:complexType mixed="true"> <xs:attribute name="name" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="short-title" /> <xs:enumeration value="text" /> <xs:enumeration value="title" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="options"> <xs:complexType mixed="true"> <xs:attribute name="order" type="xs:string" use="optional" /> <xs:attribute name="profile" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="regexp" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="paths" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="depth" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="owner"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="permissions"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="preference"> <xs:complexType> <xs:sequence> <xs:element ref="value" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="name" type="xs:NMTOKEN" use="required" /> <xs:attribute name="readOnly" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="property"> <xs:complexType> <xs:attribute name="name" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="column" /> <xs:enumeration value="row" /> <xs:enumeration value="sizes" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="layout" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="value" type="xs:string" use="required" /> </xs:complexType> </xs:element> <xs:element name="roles"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="security-constraint"> <xs:complexType> <xs:choice maxOccurs="4"> <xs:element ref="groups" minOccurs="0" /> <xs:element ref="permissions" minOccurs="0" /> <xs:element ref="roles" minOccurs="0" /> <xs:element ref="users" minOccurs="0" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="owner" minOccurs="0" /> <xs:element ref="security-constraint" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints-ref" minOccurs="0" maxOccurs="unbounded" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints-ref"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="separator"> <xs:complexType mixed="true"> <xs:choice maxOccurs="unbounded"> <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="text" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> </xs:choice> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="short-title"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="text"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="title"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="users"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="value"> <xs:complexType mixed="true" /> </xs:element> </xs:schema>
Folder Metadata documents, (folder.metadata), are described by the following DTD:
<!-- top level folder element --> <!ELEMENT folder ( default-page | defaults | document-order | menu | metadata | security-constraints | short-title | title )* > <!ATTLIST folder hidden ( false | true ) #IMPLIED > <!ATTLIST folder version NMTOKEN #IMPLIED > <!-- folder child elements --> <!ELEMENT default-page ( #PCDATA ) > <!ELEMENT defaults EMPTY > <!ATTLIST defaults layout-decorator NMTOKEN #REQUIRED > <!ATTLIST defaults portlet-decorator NMTOKEN #IMPLIED > <!ATTLIST defaults skin NMTOKEN #IMPLIED > <!ELEMENT document-order ( #PCDATA ) > <!ELEMENT exclude ( #PCDATA ) > <!ELEMENT groups ( #PCDATA ) > <!ELEMENT include ( #PCDATA ) > <!ATTLIST include nest ( false | true ) #IMPLIED > <!ELEMENT menu ( exclude | include | menu | metadata | options | separator | short-title | title )* > <!ATTLIST menu depth NMTOKEN #IMPLIED > <!ATTLIST menu name NMTOKEN #IMPLIED > <!ATTLIST menu options CDATA #IMPLIED > <!ATTLIST menu order CDATA #IMPLIED > <!ATTLIST menu paths ( false | true ) #IMPLIED > <!ATTLIST menu profile NMTOKEN #IMPLIED > <!ATTLIST menu regexp ( false | true ) #IMPLIED > <!ATTLIST menu skin NMTOKEN #IMPLIED > <!ELEMENT metadata ( #PCDATA ) > <!ATTLIST metadata name ( short-title | text | title ) #REQUIRED > <!ATTLIST metadata xml:lang NMTOKEN #REQUIRED > <!ELEMENT options ( #PCDATA ) > <!ATTLIST options depth NMTOKEN #IMPLIED > <!ATTLIST options order CDATA #IMPLIED > <!ATTLIST options paths ( false | true ) #IMPLIED > <!ATTLIST options profile NMTOKEN #IMPLIED > <!ATTLIST options regexp ( false | true ) #IMPLIED > <!ATTLIST options skin NMTOKEN #IMPLIED > <!ELEMENT owner ( #PCDATA ) > <!ELEMENT permissions ( #PCDATA ) > <!ELEMENT roles ( #PCDATA ) > <!ELEMENT security-constraint ( groups | permissions | roles | users )* > <!ELEMENT security-constraints ( owner | security-constraint | security-constraints-ref )* > <!ELEMENT security-constraints-ref ( #PCDATA ) > <!ELEMENT separator ( #PCDATA | metadata | text | title )* > <!ATTLIST separator skin NMTOKEN #IMPLIED > <!ELEMENT short-title ( #PCDATA ) > <!ELEMENT text ( #PCDATA ) > <!ELEMENT title ( #PCDATA ) > <!ELEMENT users ( #PCDATA ) >
Folder Metadata documents, (folder.metadata), are described by the following XML Schema:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- top level folder element --> <xs:element name="folder"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="default-page" minOccurs="0" /> <xs:element ref="defaults" minOccurs="0" /> <xs:element ref="document-order" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="menu" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="metadata minOccurs="0" maxOccurs="unbounded"" /> <xs:element ref="security-constraints" minOccurs="0" /> <xs:element ref="short-title" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> </xs:choice> <xs:attribute name="version" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="hidden" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <!-- folder child elements --> <xs:element name="default-page"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="defaults"> <xs:complexType> <xs:attribute name="portlet-decorator" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="layout-decorator" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="document-order"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="exclude"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="groups"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="include"> <xs:complexType mixed="true"> <xs:attribute name="nest" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="menu"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="exclude" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="include" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="menu" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="options" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="separator" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="short-title" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> </xs:choice> <xs:attribute name="order" type="xs:string" use="optional" /> <xs:attribute name="options" type="xs:string" use="optional" /> <xs:attribute name="name" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="profile" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="regexp" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="paths" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="depth" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="metadata"> <xs:complexType mixed="true"> <xs:attribute name="name" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="short-title" /> <xs:enumeration value="text" /> <xs:enumeration value="title" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="options"> <xs:complexType mixed="true"> <xs:attribute name="order" type="xs:string" use="optional" /> <xs:attribute name="profile" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="regexp" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="paths" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="false" /> <xs:enumeration value="true" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="depth" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="owner"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="permissions"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="roles"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="security-constraint"> <xs:complexType> <xs:choice maxOccurs="4"> <xs:element ref="groups" minOccurs="0" /> <xs:element ref="permissions" minOccurs="0" /> <xs:element ref="roles" minOccurs="0" /> <xs:element ref="users" minOccurs="0" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="owner" minOccurs="0" /> <xs:element ref="security-constraint" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints-ref" minOccurs="0" maxOccurs="unbounded" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints-ref"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="separator"> <xs:complexType mixed="true"> <xs:choice maxOccurs="unbounded"> <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="text" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> </xs:choice> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <xs:element name="short-title"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="text"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="title"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="users"> <xs:complexType mixed="true" /> </xs:element> </xs:schema>
Link documents, (*.link), are described by the following DTD:
<!-- top level link element --> <!ELEMENT link ( metadata | security-constraints | short-title | title | url )* > <!ATTLIST link target NMTOKEN #REQUIRED > <!ATTLIST link version NMTOKEN #IMPLIED > <!ATTLIST link skin NMTOKEN #IMPLIED > <!-- link child elements --> <!ELEMENT groups ( #PCDATA ) > <!ELEMENT metadata ( #PCDATA ) > <!ATTLIST metadata name ( short-title | title ) #REQUIRED > <!ATTLIST metadata xml:lang NMTOKEN #REQUIRED > <!ELEMENT owner ( #PCDATA ) > <!ELEMENT permissions ( #PCDATA ) > <!ELEMENT roles ( #PCDATA ) > <!ELEMENT security-constraint ( groups | permissions | roles | users )* > <!ELEMENT security-constraints ( owner | security-constraint | security-constraints-ref )* > <!ELEMENT security-constraints-ref ( #PCDATA ) > <!ELEMENT short-title ( #PCDATA ) > <!ELEMENT title ( #PCDATA ) > <!ELEMENT url ( #PCDATA ) > <!ELEMENT users ( #PCDATA ) >
Link documents, (*.link), are described by the following XML Schema:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- top level link element --> <xs:element name="link"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints" minOccurs="0" /> <xs:element ref="short-title" minOccurs="0" /> <xs:element ref="title" minOccurs="0" /> <xs:element ref="url" /> </xs:choice> <xs:attribute name="version" type="xs:NMTOKEN" use="optional" /> <xs:attribute name="target" type="xs:NMTOKEN" use="required" /> <xs:attribute name="skin" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <!-- link child elements --> <xs:element name="groups"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="metadata"> <xs:complexType mixed="true"> <xs:attribute name="name" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="short-title" /> <xs:enumeration value="title" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="owner"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="permissions"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="roles"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="security-constraint"> <xs:complexType> <xs:choice maxOccurs="4"> <xs:element ref="groups" minOccurs="0" /> <xs:element ref="permissions" minOccurs="0" /> <xs:element ref="roles" minOccurs="0" /> <xs:element ref="users" minOccurs="0" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="owner" minOccurs="0" /> <xs:element ref="security-constraint" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints-ref" minOccurs="0" maxOccurs="unbounded" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints-ref"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="short-title"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="title"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="url"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="users"> <xs:complexType mixed="true" /> </xs:element> </xs:schema>
Page Security documents, (page.security), are described by the following DTD:
<!-- top level page-security element --> <!ELEMENT page-security ( global-security-constraints-ref | security-constraints-def )* > <!ATTLIST page-security version NMTOKEN #IMPLIED > <!-- page-security child elements --> <!ELEMENT global-security-constraints-ref ( #PCDATA ) > <!ELEMENT groups ( #PCDATA ) > <!ELEMENT permissions ( #PCDATA ) > <!ELEMENT roles ( #PCDATA ) > <!ELEMENT security-constraint ( groups | permissions | roles | users )* > <!ELEMENT security-constraints-def ( security-constraint ) > <!ATTLIST security-constraints-def name NMTOKEN #REQUIRED > <!ELEMENT users ( #PCDATA ) >
Page Security documents, (page.security), are described by the following XML Schema:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- top level page-security element --> <xs:element name="page-security"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="global-security-constraints-ref" minOccurs="0" maxOccurs="unbounded" /> <xs:element ref="security-constraints-def" minOccurs="0" maxOccurs="unbounded" /> </xs:choice> <xs:attribute name="version" type="xs:NMTOKEN" use="optional" /> </xs:complexType> </xs:element> <!-- page-security child elements --> <xs:element name="global-security-constraints-ref"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="groups"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="permissions"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="roles"> <xs:complexType mixed="true" /> </xs:element> <xs:element name="security-constraint"> <xs:complexType> <xs:choice maxOccurs="4"> <xs:element ref="groups" minOccurs="0" /> <xs:element ref="permissions" minOccurs="0" /> <xs:element ref="roles" minOccurs="0" /> <xs:element ref="users" minOccurs="0" /> </xs:choice> </xs:complexType> </xs:element> <xs:element name="security-constraints-def"> <xs:complexType> <xs:sequence> <xs:element ref="security-constraint" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="name" type="xs:NMTOKEN" use="required" /> </xs:complexType> </xs:element> <xs:element name="users"> <xs:complexType mixed="true" /> </xs:element> </xs:schema>