categoryPublicationManifest
Specifies the list of publication of enhanced presence category instances following the publication grammar prescribed by Microsoft Lync Server 2010 and Microsoft Lync 2010.
<categoryPublicationManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
minSupportedClientVersion="2.0.0.0"
xmlns="https://schemas.microsoft.com/2008/09/sip/categoryPublicationManifest">
<publicationList>...</publicationList>
<ct:extension xmlns:ct="https://schemas.microsoft.com/2006/09/sip/commontypes" >...</ct:extension>
<ct:delimiter xmlns:ct="https://schemas.microsoft.com/2006/09/sip/commontypes"/>
<[any>
<ct:end xmlns:ct="https://schemas.microsoft.com/2006/09/sip/commontypes" />
</categoryPublicationManifes>
categoryPublicationManifestType
Attributes and Elements
The following sections describe attributes, child elements, and parent elements.
Attributes
Attribute |
Description |
---|---|
minSupportedClientVersion |
A token of the xs:token type specifying the earliest version of Lync 2010 that supports this feature. |
majorVersion |
An unsigned integer of the (xs:unsignedInt) type to specify the major version of the schema defining this element. |
minorVersion |
An unsigned integer of the (xs:unsignedInt) type to specify the minor version of the schema defining this element. |
[anyAttribute] |
Any attribute |
Child Elements
Element |
Occurrence |
Description |
---|---|---|
1 |
A list of publication rules prescribing how enhanced presence category instances are published. |
|
0 or more |
A marker to begin a version-dependent schema extension. |
|
[any] |
0 or more |
Any element in the namespace of the parent element, specifying the extension to the parent element introduced in a particular version of the schema. |
0 or 1 |
The marker to end all the schema extensions. |
|
0 or 1 |
Application-specified extension to the parent element. |
Parent Elements
Element |
Description |
---|---|
None |
This is the top-level element of the category instance value containing the publication grammar. |
Text Value
None
Remarks
The publication grammar defines the predefined rules used by Microsoft Lync 2010 and Microsoft Lync Server 2010 to publish enhanced presence category data. For more information about publication grammar, see the Publication Grammar, Privacy and Interoperability topic.
Understanding of the publication grammar is important to ensure a smooth interoperation of your application with Lync 2010 and Lync Server 2010.
Example
The following shows an excerpt of the publication grammar that stipulates how state category instances are published.
<categoryPublicationManifest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
minSupportedClientVersion="2.0.0.0"
xmlns="https://schemas.microsoft.com/2008/09/sip/categoryPublicationManifest">
<publicationList>
<publicationRule ruleType="transformation" categoryName="state" containerId="2" preferredSelfConsumption="true" />
<publicationRule ruleType="transformation" categoryName="state" containerId="3">
<categoryData>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ct="https://schemas.microsoft.com/2006/09/sip/commontypes"
xmlns:tns="https://schemas.microsoft.com/2006/09/sip/state"
exclude-result-prefixes="tns ct">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()">
<xsl:apply-templates select="//tns:state"/>
</xsl:template>
<xsl:template match="tns:state">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:choose>
<xsl:when test="@xsi:type='userState' and
tns:availability ≥ 9000 and
11999 ≥ tns:availability and
@manual='true'">
<xsl:element name="availability" xmlns="https://schemas.microsoft.com/2006/09/sip/state">6900</xsl:element>
<xsl:element name="activity" xmlns="https://schemas.microsoft.com/2006/09/sip/state">
<xsl:attribute name="token">urgent-interruptions-only</xsl:attribute>
<xsl:attribute name="minAvailability">6900</xsl:attribute>
<xsl:attribute name="maxAvailability">8999</xsl:attribute>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="tns:availability" />
<xsl:copy-of select="tns:activity" />
</xsl:otherwise>
</xsl:choose>
<xsl:copy-of select="tns:endpointLocation" />
<xsl:copy-of select="tns:meetingSubject" />
<xsl:copy-of select="tns:meetingLocation" />
<xsl:choose>
<xsl:when test="count(ct:delimiter) > 0">
<xsl:copy-of select="ct:delimiter[1]" />
<xsl:copy-of select="tns:timeZoneBias" />
<xsl:copy-of select="tns:timeZoneName" />
<xsl:copy-of select="tns:timeZoneAbbreviation" />
<xsl:copy-of select="tns:device" />
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="count(ct:delimiter) > 1">
<xsl:copy-of select="ct:delimiter[2]" />
<xsl:copy-of select="ct:delimiter[2]/following-sibling::*" />
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="ct:end" />
<xsl:copy-of select="ct:extension" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
</categoryData>
</publicationRule>
......
</publicationList>
</categoryPublicationManifest>
The example above stipulates that all the state category instances are to be published to the two aggregation container, namely, Container 2 and 3. The state category instances are published without modification to Container 2 that is also designated as the preferred container for self-consumption. For the state category instances placed in Container 3, if a manually-set state[@type='userState'] availability number falls between 9000 and 11999 (i.e., the do-not-disturb mode), availability number of this state[@type='userState'] is converted to 6900 and the corresponding activity token is reset to "urgent-interruptions-only". The transformation is specified in an XSLT routine.
The following shows an excerpt of the publication grammar that stipulates a state[@type='aggregateState'] category instance with the Offline availability mode (18500) be published to the Block container when a client launches the first time.
<categoryPublicationManifest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
minSupportedClientVersion="2.0.0.0"
xmlns="https://schemas.microsoft.com/2008/09/sip/categoryPublicationManifest">
<publicationList>
<!-- rules for the first-time publication -->
<publicationRule ruleType="bootstrap" categoryName="state" containerId="32000">
<instanceId type="constant" value="0" />
<expireType type="static" />
<categoryData>
<state xmlns="https://schemas.microsoft.com/2006/09/sip/state"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
manual="false"
xsi:type="aggregateState">
<availability>18500</availability>
</state>
</categoryData>
</publicationRule>
......
</publicationList>
</categoryPublicationManifest>
In this initial publication an state[@type='aggregateState'] category instance with an availability number of 18500 (Offline) is published persistently (expireType="static") to the Block container (32000). This type of publications is of the "bootstrap" type (type="bootstrap") and it does not use any XLST transformation.
Element Information
Namespace |
https://schemas.microsoft.com/2008/09/sip/categoryPublicationManifest |
Schema Name |
categoryPublicationManifest |
Validation File |
PublicationGrammarSchemaForNewPublicationManifest.xsd |
Can be Empty |
True |