wiki/assets/xsd/cdf.xsd

638 lines
26 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<!--
Channel Definition Format XML Schema
Copyright (c) 2021 ~lucidiot
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
This file was derived from the Channel Definition Format documentation
at <https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa768139(v=vs.85)>.
-->
<xs:schema targetNamespace="https://msdn.microsoft.com/workshop/standards/cdf/"
version="1.0"
elementFormDefault="qualified"
xmlns="https://msdn.microsoft.com/workshop/standards/cdf/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="sWhiteSpace">
<xs:restriction base="xs:string">
<xs:enumeration value="DEFAULT">
<xs:annotation>
<xs:documentation>
Value that permits white space to be filtered out during file processing.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="PRESERVE">
<xs:annotation>
<xs:documentation>
Value that ensures all white space characters are retained.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="shortUri">
<xs:restriction base="xs:anyURI">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sCache">
<xs:restriction base="xs:string">
<xs:enumeration value="Yes">
<xs:annotation>
<xs:documentation>
Default. Content is downloaded only if the user has specified that channel content should be downloaded.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="No">
<xs:annotation>
<xs:documentation>
Content is not downloaded and the LEVEL attribute is ignored.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sStyle">
<xs:restriction base="xs:string">
<xs:enumeration value="ICON">
<xs:annotation>
<xs:documentation>
This image appears in the Channels Explorer Bar hierarchy and other areas of the Windows namespace, such as when viewing the contents of a folder containing the CDF.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="IMAGE">
<xs:annotation>
<xs:documentation>
This logo image is placed in the desktop Channel Bar to provide a quick launching mechanism for the main channel page.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="IMAGE-WIDE">
<xs:annotation>
<xs:documentation>
Wide logos are displayed in the Channels Explorer Bar to provide a link to the main channel page. When clicked, this image will also expand or contract the channel's hierarchy (if one exists) in the Channels Explorer Bar.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sScope">
<xs:restriction base="xs:string">
<xs:enumeration value="OFFLINE">
<xs:annotation>
<xs:documentation>
Pages read from local cache should be logged.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ONLINE">
<xs:annotation>
<xs:documentation>
Pages read from URL browsing should logged.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ALL">
<xs:annotation>
<xs:documentation>
Default. Both types of page hits should be logged.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sValue">
<xs:restriction base="xs:string">
<xs:enumeration value="Channel">
<xs:annotation>
<xs:documentation>
Items that appear in the browser channel pane. This is the default behavior when no USAGE element appears under an ITEM.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="DesktopComponent">
<xs:annotation>
<xs:documentation>
Items that are displayed in a frame located on the Active Desktop. Attributes assigned this value can only be used in the context of an Active Desktop item. Channels require a separate CDF file.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Email">
<xs:annotation>
<xs:documentation>
The parent element is an e-mail that is sent when the channel content is updated (one per CDF).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="NONE">
<xs:annotation>
<xs:documentation>
If a NONE value is assigned to the only USAGE element in an ITEM, the item will not appear in the Channels Explorer Bar.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ScreenSaver">
<xs:annotation>
<xs:documentation>
This one item is displayed in the special Internet Explorer screen saver (one per CDF).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SmartScreen">
<xs:annotation>
<xs:documentation>
"SmartScreen," a trademark of PointCast Inc., can be used in place of the ScreenSaver value to display the PointCast Network SmartScreen in the Internet Explorer screen saver.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SoftwareUpdate">
<xs:annotation>
<xs:documentation>
This indicates the CDF file is being used for a Software Update channel, which allows software to be automatically updated over the Web. This value is only valid for the top-level channel.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="date">
<xs:annotation>
<xs:documentation>
A stricter date format than what XML Schema allows; CDF does not allow timezones in dates.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="[0-9]{4}-[01][0-9]-[0-3][0-9]" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="datetime">
<xs:annotation>
<xs:documentation>
A stricter datetime format than what XML Schema allows; CDF does not allow timezones in datetimes.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="[0-9]{4}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="offset">
<xs:restriction base="xs:string">
<xs:pattern value="[-+][01][0-9][0-5][0-9]" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="A">
<xs:annotation>
<xs:documentation>
Defines a hypertext link for an element.
</xs:documentation>
</xs:annotation>
<xs:attribute name="HREF" type="xs:anyURI" use="required">
<xs:annotation>
<xs:documentation>
String value specifying the URL associated with the parent element.
CDF supports only HTTP, HTTPS, and FTP protocols. If a different protocol is used, Internet Explorer will fail to navigate to the page without notifying the user.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ABSTRACT">
<xs:annotation>
<xs:documentation>
Summarizes the associated parent element.
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="XML-SPACE" type="sWhiteSpace" use="optional" default="DEFAULT">
<xs:annotation>
<xs:documentation>
String value that specifies how white space—such as a tab, space, or blank line—is treated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CHANNEL">
<xs:annotation>
<xs:documentation>
Defines a channel or subchannel.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="A" type="A" minOccurs="0" />
<xs:element name="ABSTRACT" type="ABSTRACT" minOccurs="0" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="CHANNEL" type="CHANNEL" />
<xs:element name="ITEM" type="ITEM" />
</xs:choice>
<xs:element name="LOG" type="LOG" minOccurs="0" />
<xs:element name="LOGIN" type="LOGIN" minOccurs="0" />
<xs:element name="LOGO" type="LOGO" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="LOGTARGET" type="LOGTARGET" minOccurs="0" />
<xs:element name="SCHEDULE" type="SCHEDULE" minOccurs="0" />
<xs:element name="TITLE" type="TITLE" minOccurs="0" />
</xs:sequence>
<xs:attribute name="BASE" type="xs:anyURI" use="optional">
<xs:annotation>
<xs:documentation>
Base URL for the channel. This is used to resolve relative URLs specified in ITEM and CHANNEL elements contained within this channel. The BASE attribute applies to all child elements of the current channel or subchannel. This attribute supersedes the BASE value previously defined by a parent CHANNEL element, if any exists. The URL specified must end with a trailing "/", or the last word will be removed.
CDF supports only HTTP, HTTPS, and FTP protocols. If a different protocol is used, Internet Explorer will fail to navigate to the page without notifying the user.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HREF" type="xs:anyURI" use="optional">
<xs:annotation>
<xs:documentation>
URL associated with the channel. The browser navigates to this location when the user activates the channel. The HREF attribute should be omitted if the CHANNEL element contains an anchor (A) as a child element.
CDF supports only HTTP, HTTPS, and FTP protocols. If a different protocol is used, Internet Explorer will fail to navigate to the page without notifying the user.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LASTMOD" type="datetime" use="optional">
<xs:annotation>
<xs:documentation>
Last date/time in GMT that the page indexed by the HREF attribute was modified. GMT is Greenwich Mean Time, also known as Universal Time Coordinated (UTC). Note that the LASTMOD date/time is not necessarily your local time. This attribute allows the channel client to determine whether the content has changed since the last time it was downloaded. The item is downloaded only if the date associated with the cached item is older than the LASTMOD value in the CDF file.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LEVEL" type="xs:nonNegativeInteger" use="optional" default="3">
<xs:annotation>
<xs:documentation>
Number of levels (or links) deep the client should "site crawl" and precache the HTML content from the URL specified in the HREF attribute. The default is zero, which specifies to only precache the URL of the CHANNEL, along with any images it uses. If the URL contains frames, the client will also retrieve all content inside the frames. By default, the maximum number of levels that can be specified for site crawling is three.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PRECACHE" type="sCache" use="optional">
<xs:annotation>
<xs:documentation>
String that specifies whether content is downloaded.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SELF" type="xs:anyURI" use="optional">
<xs:annotation>
<xs:documentation>
Indicate the location of the CDF file to use for creating a channel subscription. Note that this attribute is unnecessary and is only supported for backward compatibility.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="EARLIESTTIME">
<xs:annotation>
<xs:documentation>
Specifies the beginning of the valid range of time within which updates to the Channel Definition Format (CDF) can occur.
</xs:documentation>
</xs:annotation>
<xs:attribute name="DAY" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number specifying the first day within the INTERVALTIME that the schedule can be updated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HOUR" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number specifying the first hour within the INTERVALTIME that the schedule can be updated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MIN" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number specifying the first minute within the INTERVALTIME that the schedule can be updated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="HTTP-EQUIV">
<xs:annotation>
<xs:documentation>
Supplies information that can also be provided through HTTP response headers.
</xs:documentation>
</xs:annotation>
<xs:attribute name="NAME" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
String value name of the HTTP header parameter sent with the log file, such as "Encoding-Type."
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VALUE" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
String value of the corresponding parameter.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="INTERVALTIME">
<xs:annotation>
<xs:documentation>
Specifies the length of time between SCHEDULE updates.
</xs:documentation>
</xs:annotation>
<xs:attribute name="DAY" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number of days over which the SCHEDULE will repeat.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HOUR" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number of hours over which the SCHEDULE will repeat.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MIN" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number of minutes over which the SCHEDULE will repeat.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ITEM">
<xs:annotation>
<xs:documentation>
Defines an item in a channel.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="A" type="A" minOccurs="0" />
<xs:element name="ABSTRACT" type="ABSTRACT" minOccurs="0" />
<xs:element name="CHANNEL" type="CHANNEL" minOccurs="0" />
<xs:element name="LOG" type="LOG" minOccurs="0" />
<xs:element name="LOGO" type="LOGO" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="TITLE" type="TITLE" minOccurs="0" />
<xs:element name="USAGE" type="USAGE" minOccurs="0" />
</xs:sequence>
<xs:attribute name="HREF" type="shortUri" use="optional">
<xs:annotation>
<xs:documentation>
URL that represents the ITEM. The browser navigates to this location when the user activates the channel. There must be exactly one HREF attribute with the ITEM element. To enable page-hit logging, the URL must contain no more than 255 characters. The HREF attribute should be omitted if the ITEM element contains an anchor (A) as a child element.
CDF supports only HTTP, HTTPS, and FTP protocols. If a different protocol is used, Internet Explorer will fail to navigate to the page without notifying the user.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LASTMOD" type="datetime" use="optional">
<xs:annotation>
<xs:documentation>
Last date/time in GMT that the page indexed by the HREF attribute was modified. GMT is Greenwich Mean Time, also known as Universal Time Coordinated (UTC). Note that the LASTMOD date/time is not necessarily your local time. This allows the channel client to determine whether the content has changed since the last time it was downloaded. The ITEM is downloaded only if the date associated with the cached ITEM is older than the LASTMOD value in the CDF file.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LEVEL" type="xs:nonNegativeInteger" use="optional" default="0">
<xs:annotation>
<xs:documentation>
Number of levels (or links) deep the client should "site crawl" and precache the HTML content from the URL specified in the HREF attribute. The default is zero, which specifies to precache only the URL of the ITEM and the images it references. If the URL contains frames, the client also retrieves all content inside the frames.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PRECACHE" type="sCache" use="optional" default="Yes">
<xs:annotation>
<xs:documentation>
String that specifies whether content is downloaded.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SHOW" type="sValue" use="optional">
<xs:annotation>
<xs:documentation>
Indicates how the parent element should be used. Deprecated; prefer the USAGE element instead.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LATESTTIME">
<xs:annotation>
<xs:documentation>
Specifies the latest time during the INTERVALTIME that the schedule will be applied and updated.
</xs:documentation>
</xs:annotation>
<xs:attribute name="DAY" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number specifying the last day within the INTERVALTIME that the schedule can be updated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HOUR" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number specifying the last hour within the INTERVALTIME that the schedule can be updated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MIN" type="xs:positiveInteger" use="optional">
<xs:annotation>
<xs:documentation>
Nonzero number specifying the last minute within the INTERVALTIME that the schedule can be updated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LOG">
<xs:annotation>
<xs:documentation>
Specifies that the URL of the parent ITEM element should be recorded in a page-hit log file.
</xs:documentation>
</xs:annotation>
<xs:attribute name="VALUE" type="xs:string" fixed="document:view" use="required">
<xs:annotation>
<xs:documentation>
String value specifying the event to be logged. Currently, "document:view" is the only value supported by Internet Explorer.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LOGIN">
<xs:annotation>
<xs:documentation>
Specifies that the channel requires authentication for updates.
</xs:documentation>
</xs:annotation>
</xs:complexType>
<xs:complexType name="LOGO">
<xs:annotation>
<xs:documentation>
Specifies an image used to represent a CHANNEL, ITEM, or SOFTPKG element.
</xs:documentation>
</xs:annotation>
<xs:attribute name="HREF" type="xs:anyURI" use="required">
<xs:annotation>
<xs:documentation>
URL associated with the channel logo or icon image.
CDF supports only HTTP, HTTPS, and FTP protocols. If a different protocol is used, Internet Explorer will fail to load the logo without notifying the user.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="STYLE" type="sStyle" use="required">
<xs:annotation>
<xs:documentation>
String value indicating the context in which a logo will be used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LOGTARGET">
<xs:annotation>
<xs:documentation>
Specifies where to send a Channel Definition Format (CDF) client page-hit log file.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="HTTP-EQUIV" type="HTTP-EQUIV" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="PURGETIME" type="PURGETIME" minOccurs="0" />
</xs:sequence>
<xs:attribute name="HREF" type="xs:anyURI" use="required">
<xs:annotation>
<xs:documentation>
URL the log will be sent to.
CDF supports only HTTP, HTTPS, and FTP protocols. If a different protocol is used, Internet Explorer will fail to load the logo without notifying the user.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="METHOD" type="xs:string" fixed="POST" use="required">
<xs:annotation>
<xs:documentation>
String value that specifies the HTTP method to be used for sending the data.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SCOPE" type="sScope" use="optional" default="ALL">
<xs:annotation>
<xs:documentation>
String value that specifies which type of page hits should be logged.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="SCHEDULE">
<xs:annotation>
<xs:documentation>
Defines the schedule used for channel updating.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="EARLIESTTIME" type="EARLIESTTIME" minOccurs="0" />
<xs:element name="INTERVALTIME" type="INTERVALTIME" minOccurs="0" />
<xs:element name="LATESTTIME" type="LATESTTIME" minOccurs="0" />
</xs:sequence>
<xs:attribute name="STARTDATE" type="xs:date" use="optional">
<xs:annotation>
<xs:documentation>
Numeric value specifying the day on which the schedule will start to apply. If this attribute is omitted, the schedule will start to apply on the current day.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="STOPDATE" type="xs:date" use="optional">
<xs:annotation>
<xs:documentation>
Numeric value specifying the day on which the schedule stops updating (expires). If this attribute is omitted, the schedule will not expire.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TIMEZONE" type="offset" use="optional">
<xs:annotation>
<xs:documentation>
Difference between local time and Universal Time Coordinated (UTC). This allows channel publishers to specify an absolute time for an update schedule. The offset specified for this attribute adjusts the EARLIESTTIME and LATESTTIME child elements accordingly.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="PURGETIME">
<xs:annotation>
<xs:documentation>
Specifies the maximum age of valid page hits when the log file is being uploaded.
</xs:documentation>
</xs:annotation>
<xs:attribute name="HOUR" type="xs:positiveInteger" use="required">
<xs:annotation>
<xs:documentation>
Number of hours for which the logging information is considered valid.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="TITLE">
<xs:annotation>
<xs:documentation>
Specifies a text string representing the title of the CHANNEL or ITEM element.
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="XML-SPACE" type="sWhiteSpace" use="optional" default="DEFAULT">
<xs:annotation>
<xs:documentation>
String value that specifies how white space—such as a tab, space, or blank line—is treated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="USAGE">
<xs:annotation>
<xs:documentation>
Indicates how the parent element should be used.
</xs:documentation>
</xs:annotation>
<xs:attribute name="VALUE" type="sValue" use="required">
<xs:annotation>
<xs:documentation>
String value that specifies how the parent element will be used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:element name="CHANNEL" type="CHANNEL" />
</xs:schema>