XML Schema "myAlerts.xsd"
Target Namespace:
http://schemas.microsoft.com/hs/2001/10/myAlerts
Version:
1.0
Defined Components:
elements (8 global + 39 local), complexTypes (13), simpleTypes (6)
Default Namespace-Qualified Form:
Local Elements: qualified; Local Attributes: unqualified
Schema Location:
C:\Projects\Microsoft Hailstorm\xsd\myAlerts.xsd; see XML source
Imports Schemas (1):
hscommon.xsd [src]
Annotation
Schema for .NET Alerts service Copyright (c) 2001 Microsoft Corporation. All rights reserved.
All Element Summary (local elements unified by type)
acknowledge (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 2 locations
actionUrl (type xsd:anyURI)
Type:
xsd:anyURI
Content:
simple
Defined:
locally at 2 locations
argot (defined in argotListType complexType)
Type:
anonymous complexType (extension of argotType)
Content:
complex, 3 attributes, elem. wildcard
Defined:
locally within argotListType complexType; see XML source
Includes:
definitions of 2 attributes
argot (type argotType)
Type:
Content:
complex, 1 attribute, elem. wildcard
Defined:
locally at 2 locations
argotQuery (type notificationQueryType)
Type:
Content:
simple
Defined:
locally at 2 locations
baseUrl (type xsd:anyURI)
Type:
xsd:anyURI
Content:
simple
Defined:
locally at 2 locations
bufferStreamParameters
This element is an argot specifying the read and write parameters for a bufferStream stream.
Type:
anonymous complexType
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
category (in from)
Type:
Content:
empty, 1 attribute
Defined:
locally within fromType complexType; see XML source
characteristics (in connection)
Information about the nature of the connection, used mainly by the Stream modules.
Type:
Content:
simple
Defined:
locally within connectionType complexType; see XML source
class (in connection)
This element specifies the class of a connection (for example, Push over Soap-RP or Pull over Soap-RP).
Type:
Content:
simple
Defined:
locally within connectionType complexType; see XML source
class (in stream)
Defines what kind of stream.
Type:
Content:
simple
Defined:
locally within streamType complexType; see XML source
connection (in myAlerts)
Type:
Content:
complex, 3 attributes, 6 elements
Defined:
locally within myAlertsType complexType; see XML source
contentProvider
The contentProvider element is the Microsoft .NET Alerts version 4.5 service authentication element.
Type:
Content:
empty, 2 attributes
Defined:
globally; see XML source
Used:
never
contents (in notification)
This element contains the problem domain-specific data to be conveyed to the receiver.
Type:
anonymous complexType
Content:
complex, elem. wildcard
Defined:
locally within notificationType complexType; see XML source
Includes:
definition of elem. wildcard
expiration (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 4 locations
expiresAt (in from)
Type:
Content:
simple, 3 attributes
Defined:
locally within fromType complexType; see XML source
from (in notification)
This tag contains all data from the sender, including sender authentication as well as preferences and requests from the sender.
Type:
Content:
complex, 4 elements
Defined:
locally within notificationType complexType; see XML source
hops (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 2 locations
humanReadable
This element is an argot used to convey human readable information in an alert.
Type:
anonymous complexType
Content:
complex, 4 elements
Defined:
globally; see XML source
Includes:
definitions of 4 elements
Used:
never
identityHeader (in from)
Type:
Content:
complex, 1 attribute, 3 elements
Defined:
locally within fromType complexType; see XML source
language (in humanReadable)
This element contains text specific to a language.
Type:
anonymous complexType
Content:
complex, 2 attributes, 1 element
Defined:
locally within humanReadable element; see XML source
Includes:
definitions of 2 attributes, 1 element
licenseHolder (type hs:uuidType)
Type:
Content:
simple
Defined:
locally at 2 locations
myAlerts
myAlerts is the user content document for alert routing.
Type:
anonymous complexType (extension of myAlertsType)
Content:
complex, 2 attributes, 3 elements
Defined:
globally; see XML source
Used:
never
notification (type notificationType)
Type:
Content:
complex, 1 attribute, 4 elements
Defined:
locally at 3 locations
notifyRequest
This method attempts to send the enclosed alerts using standard routing by .NET Alerts.
Type:
anonymous complexType
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
onBehalfOfUser (type hs:uuidType)
Type:
Content:
simple
Defined:
locally at 2 locations
originalUser (type hs:uuidType)
Type:
Content:
simple
Defined:
locally at 2 locations
parkInterval (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 2 locations
platformId (type hs:uuidType)
Type:
Content:
simple
Defined:
locally at 2 locations
pollRequest
This method can be invoked on a connection.
Type:
anonymous complexType
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
pollResponse
The response contains zero or one new alerts in the buffer stream.
Type:
anonymous complexType
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
position (in stream)
Defines where the stream fits into the streamFork processing.
Type:
Content:
simple
Defined:
locally within streamType complexType; see XML source
pushConnectionParameters
This element is an argot specifying the read and write parameters for a connectionPush connection.
Type:
anonymous complexType
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
routing (in notification)
This tag contains any routing data inserted by the .NET Alerts routing process.
Type:
Content:
complex, 2 elements
Defined:
locally within notificationType complexType; see XML source
status (in connection)
Flags indicating the current status of the connection.
Type:
Content:
simple
Defined:
locally within connectionType complexType; see XML source
stream (in myAlerts)
Type:
Content:
complex, 3 attributes, 5 elements
Defined:
locally within myAlertsType complexType; see XML source
subscription (type hs:subscriptionType)
Type:
Content:
complex, 3 attributes, 4 elements
Defined:
locally at 2 locations
subscriptionUrl (type xsd:anyURI)
Type:
xsd:anyURI
Content:
simple
Defined:
locally at 2 locations
targetUrl (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 2 locations
text (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 2 locations
timestamp (type xsd:string)
Type:
xsd:string
Content:
simple
Defined:
locally at 2 locations
to (in notification)
This tag contains all data pertaining to the receiver.
Type:
Content:
complex, 1 element
Defined:
locally within notificationType complexType; see XML source
Complex Type Summary
An argot list is a container of argots.
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
An argot is a domain-specific blob of data qualified by a name and ID.
Content:
complex, 1 attribute, elem. wildcard
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, elem. wildcard
Used:
Content:
empty, 1 attribute
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
Abbreviations: CXN (Connection): The vonnection exists inside of the .NET Alerts service.
Content:
complex, 3 attributes, 6 elements
Defined:
globally; see XML source
Includes:
definitions of 6 elements
Used:
Content:
empty, 2 attributes
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
Content:
simple, 3 attributes
Defined:
globally; see XML source
Includes:
definitions of 3 attributes
Used:
Content:
complex, 4 elements
Defined:
globally; see XML source
Includes:
definitions of 4 elements
Used:
Content:
complex, 1 attribute, 3 elements
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, 3 elements
Used:
Content:
complex, 3 elements
Defined:
globally; see XML source
Includes:
definitions of 3 elements
Used:
An alert has contents: "from" (sender) data, optional "to" (receiver) data, and optional "routing" data.
Content:
complex, 1 attribute, 4 elements
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, 4 elements
Used:
Content:
complex, 2 elements
Defined:
globally; see XML source
Includes:
definitions of 2 elements
Used:
A stream is an internal object that processes alerts before they are routed to connections.
Content:
complex, 3 attributes, 5 elements
Defined:
globally; see XML source
Includes:
definitions of 5 elements
Used:
Content:
complex, 1 element
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
Simple Type Summary
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
XML Source
<xsd:schema elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/hs/2001/10/myAlerts" version="1.0" xmlns="http://schemas.microsoft.com/hs/2001/10/myAlerts" xmlns:hs="http://schemas.microsoft.com/hs/2001/10/core" xmlns:xdb="urn:schemas-microsoft-com:xdb" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
Schema for .NET Alerts service
Copyright (c) 2001 Microsoft Corporation. All rights reserved.
</xsd:documentation>
<xsd:appinfo>
<xdb:blue select="/myAlerts"/>
<xdb:blue select="/myAlerts/*"/>
<xdb:red select="//@creator"/>
<xdb:red select="//@changeNumber"/>
<xdb:red select="//@id"/>
<xdb:namespaceMap>
<xdb:mapping alias="m" uri="http://schemas.microsoft.com/hs/2001/10/myAlerts"/>
<xdb:mapping alias="hs" uri="http://schemas.microsoft.com/hs/2001/10/core"/>
</xdb:namespaceMap>
</xsd:appinfo>
</xsd:annotation>
<xsd:import namespace="http://schemas.microsoft.com/hs/2001/10/core" schemaLocation="hscommon.xsd"/>
<!--
//
// argot type
//
-->
<xsd:complexType name="argotType">
<xsd:annotation>
<xsd:documentation>
An argot is a domain-specific blob of data qualified by a name and ID.
The contents are free. Argots are opaque to Microsoft&#174; .NET My services.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
</xsd:sequence>
<xsd:attribute name="argotURI" type="xsd:anyURI" use="required">
<xsd:annotation>
<xsd:documentation>
This URI uniquely identifies the type of argot and points to a location containing the XSD for this argot.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<!--
//
// argotList
//
-->
<xsd:complexType name="argotListType">
<xsd:annotation>
<xsd:documentation>
An argot list is a container of argots.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="argot">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="argotType">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="id" type="hs:idType" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
//
// notification type
//
// This is the schema for a single alert.
//
-->
<xsd:complexType name="notificationType">
<xsd:annotation>
<xsd:documentation>
An alert has contents: "from" (sender) data,
optional "to" (receiver) data, and optional "routing" data.
The contents are a set of argots (domain-specific blobs).
The sender and receiver must understand and agree on the argots that are
transmitted in the alert.
In the .NET Alerts service, both streams and connections usually choose which alerts
they process based on the argots contained within the alerts.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" name="from" type="fromType">
<xsd:annotation>
<xsd:documentation>
This tag contains all data from the sender, including sender authentication as well
as preferences and requests from the sender.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" name="to" type="toType">
<xsd:annotation>
<xsd:documentation>
This tag contains all data pertaining to the receiver. This data can be set
by the sender or by any processing/routing agent between the sender and the receiver.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="contents">
<xsd:annotation>
<xsd:documentation>
This element contains the problem domain-specific data to be conveyed to the receiver.
Each child element of the
<b>contents</b>
element is an argot, a problem domain-specific
strongly typed XML blob. Streams and connections query against the element names of
these blobs when selecting alerts they will process.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="1" name="routing" type="routingType">
<xsd:annotation>
<xsd:documentation>
This tag contains any routing data inserted by the .NET Alerts
routing process.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<!--
<xsd:attribute name="uuid" type="hs:uuidType"/>
-->
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="fromType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="identityHeader" type="identityHeaderType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="expiresAt" type="expiresType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="acknowledge" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="category" type="categoryType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="identityHeaderType">
<xsd:sequence>
<xsd:element name="onBehalfOfUser" type="hs:uuidType"/>
<xsd:element name="licenseHolder" type="hs:uuidType"/>
<xsd:element name="platformId" type="hs:uuidType"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="expiresType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="ttl" type="xsd:string"/>
<xsd:attribute name="onDate" type="xsd:string"/>
<xsd:attribute name="replace" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="categoryType">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="toType">
<xsd:sequence>
<xsd:element minOccurs="0" name="originalUser" type="hs:uuidType">
<xsd:annotation>
<xsd:documentation>
This element defines the original receiver of the alert.
A routing agent may change (forward or fan out) an alert to other
receivers. If so, it should add this element to the alert.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="routingType">
<xsd:sequence>
<xsd:element minOccurs="0" name="timestamp" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This element contains the timestamp of when the alert was received
by the .NET Alerts service.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" name="hops" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This element defines the actors that have processed the alert to date.
This data can be used by .NET Alerts to recognize and stop infinite loops.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
//
// notificationQueryType
// BUGBUG: Not sure what the query will look like...
//
-->
<xsd:simpleType name="notificationQueryType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="*"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==============================================================================
//
// myAlerts
//
// This is the schema for the user's myAlerts content document
//
//=================================================================================
-->
<xsd:element name="myAlerts">
<xsd:annotation>
<xsd:documentation>
myAlerts is the user content document for alert routing.
It contains streams, connections, and preferences (general provisioning).
The document does not contain a list of alerts. Alerts are
transitory. Use the
<b>notifyRequest</b>
,
<b>route</b>
, and
<b>PollRequest</b>
to send and receive alerts.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="myAlertsType">
<xsd:attributeGroup ref="hs:documentRootAttributeGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="myAlertsType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="stream" type="streamType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="connection" type="connectionType"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="subscription" type="hs:subscriptionType"/>
</xsd:sequence>
</xsd:complexType>
<!-- ================================
//
// myAlerts - streams
//
// ==================================
-->
<xsd:complexType name="streamType">
<xsd:annotation>
<xsd:documentation>
A stream is an internal object that processes alerts before they are routed to connections.
Streams can buffer or reroute.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="class" type="streamClassType">
<!-- sgfix: illegal on an element
use="required"
-->
<xsd:annotation>
<xsd:documentation>
Defines what kind of stream.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="expiration" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Lifetime of a connection in absolute time (GMT).
This can be used to clean up the content document.
BUGBUG - we really should use a date type not string for
the type attribute!
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="position" type="streamPositionType">
<!-- sgfix: illegal on an element
use="required"
-->
<xsd:annotation>
<xsd:documentation>
Defines where the stream fits into the
<b>streamFork</b>
processing.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="argotQuery" type="notificationQueryType">
<xsd:annotation>
<xsd:documentation>
The stream's query against incoming alerts.
The query specifies the argot name(s) that enable selection (a logical OR of the named argots).
This is optional
based on the streamClass (a stream may do its own selection processing
instead of or in addition to the standard stream alert query).
See the available stream classes.
If not present, the query defaults to all alert argots ("*").
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="argot" type="argotType">
<xsd:annotation>
<xsd:documentation>
An optional provisioning argot for the stream.
This is dependent on the stream class. See the available stream classes.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="hs:standardBlueAttributeGroup"/>
</xsd:complexType>
<!--
// streamClassType
-->
<xsd:simpleType name="streamClassType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="buffer"/>
</xsd:restriction>
</xsd:simpleType>
<!--
// streamPositionType
-->
<xsd:simpleType name="streamPositionType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="atFront"/>
<xsd:enumeration value="atEnd"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ================================
//
// myAlerts - connections
//
// ==================================
-->
<xsd:complexType name="connectionType">
<xsd:annotation>
<xsd:documentation>
Abbreviations:
CXN (Connection): The vonnection exists inside of
the .NET Alerts service.

UA (UserAgent): The userAgent exists outside of
the .NET Alerts service.

There are two primary types of connections:

Push: Alerts are pushed by CXN to UA.
Pull: Alerts are downloaded by the UA
by issuing a request to CXN. The response
contains the alerts.

A CXN is created (added to the .NET Alerts
content document) either by the UA directly or by some entity acting on behalf of the UA.

In order to transfer the alerts, a session, either persistent or transient, is established
between CXN and UA. In cases in which sessions are transient, the CXN persists.
Establishment of a session can be initiated by either CXN or UA,
either when the CXN is created or based on, say, a timer or some
signaling mechanism between CXN and UA. The session can be closed by either entity
after a period of time (including 0).

The following are different models of UA-CXN
interaction:

1) UA establishes a session with a CXN and pulls alerts
from CXN.
2) UA establishes a session with a CXN and the CXN pushes
alerts to the UA.
3) CXN establishes a session with a UA and the UA pulls
alerts.
4) CXN establishes a session with a UA and pushes alerts
to UA.
5) UA polls the CXN periodically on a timer and UA will initiate
process #1 or #2.
6) CXN polls the UA when alerts arrive or periodically on a
timer. When there are pending alerts in the queue, UA will
initiate process #1 or #2.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="class" type="connectionClassType">
<!-- sgfix: illegal on an element
use="required"
-->
<xsd:annotation>
<xsd:documentation>
This element specifies the class of a connection (for example, Push over
Soap-RP or Pull over Soap-RP).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="status" type="connectionStatusType">
<xsd:annotation>
<xsd:documentation>
Flags indicating the current status of the connection. Can be used by the Stream modules
to do traffic management, buffering, generate nondelivery and delayed delivery
reports for the sender.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="characteristics" type="connectionCharacteristicsType">
<xsd:annotation>
<xsd:documentation>
Information about the nature of the connection, used mainly
by the Stream modules. Reliable can mean it supports ACKs;
unreliable means it is fire-and-forget. Type of polling used
(Connection vs. UserAgent).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="expiration" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Lifetime of a connection in absolute time (GMT).
This can be used to clean up the content document.
BUGBUG - we really should use a date type not string for
the type attribute!
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="argotQuery" type="notificationQueryType">
<xsd:annotation>
<xsd:documentation>
The connection's query against incoming alerts.
The query specifies the argot name(s) that enable selection (a logical OR of the named argots).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="argot" type="argotType">
<xsd:annotation>
<xsd:documentation>
An optional provisioning argot for the connection.
This is dependent on the connection class. For more information, see the available connection classes.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attributeGroup ref="hs:standardBlueAttributeGroup"/>
</xsd:complexType>
<!--
//
// connectionClassType
//
-->
<xsd:simpleType name="connectionClassType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="push_http"/>
<xsd:enumeration value="pull_http"/>
</xsd:restriction>
</xsd:simpleType>
<!--
//
// connectionStatusType
//
-->
<xsd:simpleType name="connectionStatusType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="active"/>
<xsd:enumeration value="inactive"/>
<xsd:enumeration value="busy"/>
</xsd:restriction>
</xsd:simpleType>
<!--
//
// connectionCharacteristicsType
//
-->
<xsd:simpleType name="connectionCharacteristicsType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="reliable"/>
<xsd:enumeration value="unreliable"/>
<xsd:enumeration value="connectionPoll"/>
<xsd:enumeration value="userAgentPoll"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ==============================================================================
//
// Argots
//
//=================================================================================
-->
<!--
//
// bufferStreamParameters argot
//
-->
<xsd:element name="bufferStreamParameters">
<xsd:annotation>
<xsd:documentation>
This element is an argot specifying the read and write parameters for
a bufferStream stream. For the current implementation of .NET My Services, the bufferStream takes no input
parameters; it returns the current set of buffered alerts through
this argot. A query on a bufferStream is a transient, read-only
operation.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="notification" type="notificationType">
<xsd:annotation>
<xsd:documentation>
Zero or more alerts in the buffer of the streamBuffer stream.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
//
// pushConnectionParameters argot
//
-->
<xsd:element name="pushConnectionParameters">
<!-- sgfix: minOccurs and maxOccurs can not appear on elements at global scope
minOccurs="1"
maxOccurs="1"
-->
<xsd:annotation>
<xsd:documentation>
This element is an argot specifying the read and write parameters for
a connectionPush connection.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="targetUrl" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The push connection will issue
<b>notifyRequest</b>
packets to this target URL.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
//
// humanReadable argot
//
-->
<xsd:element name="humanReadable">
<!-- sgfix: minOccurs and maxOccurs can not appear on elements at global scope
minOccurs="1"
maxOccurs="1"
-->
<xsd:annotation>
<xsd:documentation>
This element is an argot used to convey human readable information in
an alert. The receiver of a human readable alert should be
able, at a minimum, to display the text element data to a human
in either textual or speech form.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="baseUrl" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
The base URL to which all other URLs are relative.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="actionUrl" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
This is a URL that links to an action page from the sender.
This URL can be relative to the
<b>baseURL</b>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="subscriptionUrl" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
This is a URL that links to the sender's page that allows the
receiver to view and change the way the alert was sent.
This URL can be relative to the
<b>baseURL</b>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="language">
<xsd:annotation>
<xsd:documentation>
This element contains text specific to a language. You can
include as many language elements as you like to convey the
same information in different languages.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="text" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The element contains the text to be conveyed to the human.
This text must be in the language specified by the
<b>xml:lang</b>
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute ref="xml:lang" use="required">
<xsd:annotation>
<xsd:documentation>
This required attribute is used to specify an ISO 639 language code
or an ISO 3166 country code as described in
<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>
.
The value of this attribute indicates the language type of
the content within this element.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="iconUrl" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
This attribute contains an optional URL from the sender for an icon in a Portable Network Graphics (PNG) file
that can be used when the userAgent
displays the content to the user.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- ==============================================================================
//
// Domain specific methods...
//
//=================================================================================
-->
<!--
//
// notifyRequest
//
-->
<xsd:element name="notifyRequest">
<xsd:annotation>
<xsd:documentation>
This method attempts to send the enclosed alerts using standard routing by .NET Alerts. There can be one or more
notification elements specified. If none is specified, the notify
request should be interpreted as a query about whether the receiver is
willing to accept alerts from this sender.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="notification" type="notificationType">
<xsd:annotation>
<xsd:documentation>
An alert to be delivered.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
//
// pollRequest
//
-->
<xsd:element name="pollRequest">
<xsd:annotation>
<xsd:documentation>
This method can be invoked on a connection. If there is a new alert
in the buffer stream, it will be returned in the pollResponse message. The
<b>pollRequest</b>
will immediately return a response about whether there is a pending alert.
However, if the optional
<b>parkInterval</b>
element is specified, then the response can take
up to parkInterval milliseconds before returning when there are no new alerts
in the buffer stream.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" name="parkInterval" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The unit of time specified for the
<b>parkInterval</b>
is milliseconds.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
//
// pollResponse
//
-->
<xsd:element name="pollResponse">
<xsd:annotation>
<xsd:documentation>
The response contains zero or one new alerts in the buffer stream.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="notification" type="notificationType">
<xsd:annotation>
<xsd:documentation>
A new alert contained in the buffer stream.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
//
// routeRequest
//
-->
<!--
<xsd:element name="routeRequest">
<xsd:annotation>
<xsd:documentation>
This method is similar to <b>notifyRequest</b>, but allows the caller to specify
control of the .NET Alerts internal routing for the alert.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="routing"
minOccurs="1"
maxOccurs="1"
>
<xsd:annotation>
<xsd:documentation>
The routing dictates how to process the alerts in the .NET Alerts service.
You can specify either the <b>streamFork</b> or <b>connectionFork</b> directions or both.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="streamFork"
type="streamForkType"
minOccurs="0"
maxOccurs="1"
>
<xsd:annotation>
<xsd:documentation>
The <b>streamFork</b> directive indicates the alert should be processed by streams.
If the &lt;streamFork&gt; tag is not present, no streams will process the alert;
routing will begin directly at the <b>connectionFork</b> point.
If one of the <b>streamID</b> attributes are not included, <b>streamFork</b> processing begins at
the first stream defined for the user.
</xsd:documentation>
</xsd:annotation>

</xsd:element>
<xsd:element
name="connectionFork"
type="connectionForkType"
minOccurs="0"
maxOccurs="1"
>
<xsd:annotation>
<xsd:documentation>
The <b>connectionFork</b> directive indicates through which connection(s) the alert can be routed.
If not included, all connections can potentially deliver the alert.
A connection cannot deliver the alert even if specified in the list of connection IDs; to be delivered through the connection, the alert must always match the connection's query.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element
name="notification"
type="notificationType"
minOccurs="0"
maxOccurs="unbounded"
>
<xsd:annotation>
<xsd:documentation>
An alert to be routed through a specific stream/connection.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:complexType name="connectionForkType">
<xsd:sequence>
<xsd:element
name="connectionID"
type="hs:idType"
minOccurs="0"
maxOccurs="unbounded"
>
<xsd:annotation>
<xsd:documentation>
The <b>connectionFork</b> directive indicates through which connection(s) the alert can be routed.
If not included, all connections can potentially deliver the alert.
A connection cannot deliver the alert even if specified in the list of connection IDs; to be delivered through the connection,
the alert must always match the connection's query.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
-->
<!--
//
// doRequest
//
-->
<!--
<xsd:element name="doRequest">
<xsd:annotation>
<xsd:documentation>
This method issues a request to the specified streams or connections within the .NET Alerts schema
to execute an object-specific method. Parameters are passed in and out through argot lists.
The actual object method is specified by the &lt;methodName&gt; tag.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="objects"
type="objectsType"
minOccurs="1"
maxOccurs="1"
>
<xsd:annotation>
<xsd:documentation>
List of one or more streams or connections to perform the requested object method.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element
name="methodName"
type="xsd:string"
minOccurs="1"
maxOccurs="1"
>
<xsd:annotation>
<xsd:documentation>
This specifies the method to be executed by the selected object(s).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element
name="argot"
type="argotType"
minOccurs="0"
maxOccurs="unbounded"
>
<xsd:annotation>
<xsd:documentation>
This list contains data passed to the connection.
The data is passed as a list of argots that the connection class will understand.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-->
<!--
// objectsType
-->
<!--
<xsd:complexType name="objectsType">
<xsd:sequence>
<xsd:element
name="streamID"
type="streamIDType"
minOccurs="0"
maxOccurs="unbounded"
/>
<xsd:element
name="connectionID"
type="connectionIDType"
minOccurs="0"
maxOccurs="unbounded"
/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="streamIDType">
<xsd:attribute name="id" type="hs:idType" use="required" />
</xsd:complexType>

<xsd:complexType name="connectionIDType">
<xsd:attribute name="id" type="hs:idType" use="required" />
</xsd:complexType>
-->
<!--
//
// doResponse
//
-->
<!--
<xsd:element name="doResponse">
<xsd:annotation>
<xsd:documentation>
This is the response to doRequest.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="argot"
type="argotType"
minOccurs="0"
maxOccurs="unbounded"
>
<xsd:annotation>
<xsd:documentation>
This contains data other than alerts that is returned by the connection.
The data is passed as a list of argots that the connection class generates.
</xsd:documentation>
</xsd:annotation>
</xsd:element>

<xsd:element
name="notification"
type="notificationType"
minOccurs="0"
maxOccurs="unbounded"
>
<xsd:annotation>
<xsd:documentation>
An optional returned alert.
</xsd:documentation>
</xsd:annotation>
</xsd:element>

</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:complexType name="streamForkType">
<xsd:annotation>
<xsd:documentation>
The <b>streamFork</b> directive indicates the alert should be processed by streams.
If the &lt;streamFork&gt; tag is not present, no streams will process the alert;
routing will begin directly at the <b>connectionFork</b> point.
If one of the <b>streamID</b> attributes are not included, <b>streamFork</b> processing begins at
the first stream defined for the user.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="atStreamID" type="hs:idType"/>
<xsd:attribute name="afterStreamID" type="hs:idType"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
-->
<!-- ==============================================================================
//
// Alerts v4.5 types
//
// Used inside the "identity" element in the headers and in the notification's "from".
//
//=================================================================================
-->
<!--
//
// contentProvider - optional sub-element in the "identity" element
//
-->
<xsd:element name="contentProvider" type="contentProviderType">
<xsd:annotation>
<xsd:documentation>
The
<b>contentProvider</b>
element is the Microsoft .NET Alerts version 4.5 service
authentication element. It replaces the expected .NET Services
<b>kerberos</b>
element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="contentProviderType">
<xsd:attribute name="cpid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This attribute contains the content provider ID as assigned to the content provider
by the .NET Alerts service provisioning. The ID must be a valid decimal or hexadecimal
string.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="puid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This attribute is optional and contains the sending user's Passport User ID (PUID).
The sending content provider is required to ensure the authenticity of this PUID.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:schema>