Guest User

ex2k7_report.xsl

a guest
Aug 26th, 2013
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 59.03 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3.                xmlns:ex="http://schemas.microsoft.com/powershell/2004/04">
  4.   <!--
  5.  #Exchange 2007 Organization Information Transformer (XSLT)
  6.  #version: 1.0, 15.02.2012
  7.  #efimov (ge][) gennady
  8.  #http://gexeg.blogspot.com
  9.  -->
  10.   <xsl:attribute-set name="tablestyle01">
  11.     <xsl:attribute name="border">1</xsl:attribute>
  12.     <xsl:attribute name="cellspacing">0</xsl:attribute>
  13.     <xsl:attribute name="cellpadding">0</xsl:attribute>
  14.     <!--<xsl:attribute name="width">100%</xsl:attribute>-->
  15.   </xsl:attribute-set>
  16.   <xsl:template name="booltorus">
  17.     <xsl:param name="value">true</xsl:param>
  18.     <xsl:if test="$value='true' or $value='1'">
  19.       Да
  20.     </xsl:if>
  21.     <xsl:if test="$value='false' or $value='0'">
  22.       Нет
  23.     </xsl:if>
  24.   </xsl:template>
  25.   <xsl:template name="getsize">
  26.     <xsl:param name="value">0</xsl:param>
  27.     <xsl:choose>
  28.       <xsl:when test="round($value div (1024*1024*1024)) > 0">
  29.         <xsl:value-of select="round($value div (1024*1024*1024))"/> GB
  30.       </xsl:when>
  31.       <xsl:when test="round($value div (1024*1024*1024)) = 0">
  32.         <xsl:value-of select="round($value div (1024*1024))"/> MB
  33.       </xsl:when>
  34.       <xsl:otherwise>
  35.         -
  36.       </xsl:otherwise>
  37.     </xsl:choose>
  38.   </xsl:template>
  39.   <xsl:template name="getdays">
  40.     <xsl:param name="value">0</xsl:param>
  41.     <xsl:value-of select="round($value div (60*60*24))"/>
  42.   </xsl:template>
  43.  
  44.   <xsl:template match="/">
  45.     <html>
  46.       <head>
  47.         <title>Exchange 2007.</title>
  48.         <style>
  49.           td {
  50.           border-top:solid black 1.0pt;border-left:solid black 1.0pt;border-bottom:solid black 1.0pt;
  51.           border-right:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;
  52.           font-size:12.0pt;font-family:"Times New Roman","serif";color:black;
  53.           margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal
  54.           }
  55.           table {
  56.           <!--width:100.0%;border-collapse:collapse;border:none;-->
  57.           border-collapse:collapse;border:none;
  58.           }
  59.           <!--p {
  60.            margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal
  61.          }-->
  62.           prop {
  63.           font-size:6pt
  64.           }
  65.         </style>
  66.       </head>
  67.       <body>
  68.         <h1>1. Exchange 2007.</h1>
  69.         <xsl:apply-templates select="//ex:Obj[@N='OrgInfo']"/>
  70.         <xsl:apply-templates select="//ex:Obj[@N='ServersInfo']"/>
  71.         <xsl:apply-templates select="//ex:Obj[@N='SGInfo']"/>
  72.         <xsl:apply-templates select="//ex:Obj[@N='MDBInfo']"/>
  73.         <xsl:apply-templates select="//ex:Obj[@N='PFDBInfo']"/>
  74.         <xsl:apply-templates select="//ex:Obj[@N='RcptDomain']"/>
  75.         <xsl:apply-templates select="//ex:Obj[@N='RemoteDomain']"/>
  76.         <xsl:apply-templates select="//ex:Obj[@N='SendCon']" mode="SMTP"/>
  77.         <xsl:apply-templates select="//ex:Obj[@N='RecvCon']"/>
  78.         <xsl:apply-templates select="//ex:Obj[@N='owaDir']"/>
  79.         <xsl:apply-templates select="//ex:Obj[@N='Anywhere']"/>
  80.         <xsl:apply-templates select="//ex:Obj[@N='ActiveSync']"/>
  81.         <xsl:apply-templates select="//ex:Obj[@N='AutoDiscvr']"/>
  82.         <xsl:apply-templates select="//ex:Obj[@N='OABDir']"/>
  83.         <xsl:apply-templates select="//ex:Obj[@N='EWS']"/>
  84.         <xsl:apply-templates select="//ex:Obj[@N='OAB']"/>
  85.         <xsl:apply-templates select="//ex:Obj[@N='AddrList']"/>
  86.         <xsl:apply-templates select="//ex:Obj[@N='GAL']"/>
  87.         <xsl:apply-templates select="//ex:Obj[@N='TransportRules']"/>
  88.         <xsl:apply-templates select="//ex:Obj[@N='Pop3Set']"/>
  89.         <xsl:apply-templates select="//ex:Obj[@N='Imap4Set']"/>
  90.         <xsl:apply-templates select="//ex:Obj[@N='AddressPolicies']"/>
  91.       </body>
  92.     </html>
  93.   </xsl:template>
  94.   <xsl:template name="OrgTempl">
  95.     <tr>
  96.       <td>
  97.         <xsl:value-of select="position()"/>
  98.       </td>
  99.       <td colspan="3">
  100.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  101.       </td>
  102.       <td colspan="2">
  103.         <xsl:value-of select="ex:MS/ex:S[@N='ForestName']"/>
  104.       </td>
  105.       <td colspan="2">
  106.         <xsl:value-of select="ex:MS/ex:I32[@N='ServerCount']"/>
  107.       </td>
  108.       <td colspan="2">
  109.         <xsl:value-of select="ex:MS/ex:I32[@N='MbxCount']"/>
  110.       </td>
  111.       <td colspan="2">
  112.  
  113.         </td>
  114.     </tr>
  115.   </xsl:template>
  116.   <xsl:template match="//ex:Obj[@N='OrgInfo']">
  117.     <h2>1.1. Организация Exchange 2007</h2>
  118.     <table xsl:use-attribute-sets="tablestyle01">
  119.       <tr>
  120.         <td>
  121.           <p>#</p>
  122.         </td>
  123.         <td colspan="3">
  124.           Наименование
  125.         </td>
  126.         <td colspan="2">
  127.           Лес
  128.         </td>
  129.         <td colspan="2">
  130.           # servers
  131.         </td>
  132.         <td colspan="2">
  133.           # mailboxes
  134.         </td>
  135.         <td colspan="2">
  136.           Примечание
  137.         </td>
  138.       </tr>
  139.       <xsl:call-template name="OrgTempl"/>
  140.     </table>
  141.   </xsl:template>
  142.   <xsl:template name="ServerTempl">
  143.     <tr>
  144.       <td>
  145.         <xsl:value-of select="position()"/>
  146.       </td>
  147.       <td colspan="2">
  148.         <xsl:value-of select="ex:MS/ex:S[@N='Name']"/>
  149.       </td>
  150.       <td colspan="2">
  151.         <xsl:value-of select="ex:MS/ex:S[@N='Domain']"/>
  152.       </td>
  153.       <td colspan="3">
  154.         <xsl:value-of select="ex:MS/ex:Obj[@N='ExchangeVersion']/ex:Props/ex:Obj[@N='ExchangeBuild']/ex:ToString"/>
  155.         (<xsl:value-of select="ex:MS/ex:Obj[@N='ExchangeVersion']/ex:Props/ex:Obj[@N='NextMajorVersion']/ex:Props/ex:S[@N='NextMajorVersion']"/>)
  156.         <xsl:value-of select="ex:MS/ex:Obj[@N='Edition']/ex:ToString"/>
  157.       </td>
  158.       <td colspan="3">
  159.         <xsl:value-of select="ex:MS/ex:Obj[@N='ServerRole']/ex:ToString"/>
  160.       </td>
  161.       <td colspan="2">
  162.         <xsl:value-of select="ex:MS/ex:I32[@N='MDBCount']"/> | <xsl:value-of select="ex:MS/ex:I32[@N='PFDBCount']"/>
  163.       </td>
  164.       <td colspan="2">
  165.         <xsl:value-of select="ex:MS/ex:I32[@N='MbxCount']"/>
  166.       </td>
  167.       <td colspan="2">
  168.         <xsl:value-of select="ex:MS/ex:Obj[@N='Site']/ex:Props/ex:Obj[@N='Rdn']/ex:Props/ex:S[@N='UnescapedName']"/>
  169.       </td>
  170.       <td colspan="3">
  171.         IsMemberOfCluster: <xsl:value-of select="ex:MS/ex:Obj[@N='IsMemberOfCluster']/ex:ToString"/> <br/>
  172.       </td>
  173.       <td colspan="2">
  174.  
  175.       </td>
  176.     </tr>
  177.   </xsl:template>
  178.   <xsl:template match="//ex:Obj[@N='ServersInfo']">
  179.     <h2>1.2. Серверы</h2>
  180.     <table xsl:use-attribute-sets="tablestyle01">
  181.       <tr>
  182.         <td>
  183.           <p>#</p>
  184.         </td>
  185.         <td colspan="2">
  186.           Имя
  187.         </td>
  188.         <td colspan="2">
  189.           Домен
  190.         </td>
  191.         <td colspan="3">
  192.           Версия
  193.         </td>
  194.         <td colspan="3">
  195.           Роли
  196.         </td>
  197.         <td colspan="2">
  198.           # databases
  199.           <br/>
  200.           (mbx|pf)
  201.         </td>
  202.         <td colspan="2">
  203.           # mailboxes
  204.         </td>
  205.         <td colspan="2">
  206.           Сайт
  207.         </td>
  208.         <td colspan="3">
  209.           Дополнительные параметры
  210.         </td>
  211.         <td colspan="2">
  212.           Примечание
  213.         </td>
  214.       </tr>
  215.       <xsl:choose>
  216.         <xsl:when test="self::node()[ex:LST]">
  217.           <xsl:for-each select="ex:LST/ex:Obj">
  218.             <xsl:call-template name="ServerTempl"/>
  219.           </xsl:for-each>
  220.         </xsl:when>
  221.         <xsl:otherwise>
  222.           <xsl:call-template name="ServerTempl"/>
  223.         </xsl:otherwise>
  224.       </xsl:choose>
  225.     </table>
  226.   </xsl:template>
  227.   <xsl:template name="SGTempl">
  228.     <tr>
  229.       <td>
  230.         <xsl:value-of select="position()"/>
  231.       </td>
  232.       <td colspan="3">
  233.         <xsl:value-of select="ex:MS/ex:S[@N='Name']"/>
  234.       </td>
  235.       <td colspan="2">
  236.         <xsl:value-of select="ex:MS/ex:S[@N='ServerName']"/>
  237.       </td>
  238.       <td colspan="2">
  239.         <xsl:value-of select="ex:MS/ex:I32[@N='MDBCount']"/> | <xsl:value-of select="ex:MS/ex:I32[@N='PFDBCount']"/>
  240.       </td>
  241.       <td colspan="3">
  242.         <xsl:value-of select="ex:MS/ex:Obj[@N='LogFolderPath']/ex:Props/ex:S[@N='PathName']"/>
  243.       </td>
  244.       <td>
  245.         <xsl:value-of select="ex:MS/ex:S[@N='LogFilePrefix']"/>
  246.       </td>
  247.       <td>
  248.         <xsl:call-template name="getsize">
  249.           <xsl:with-param name="value" select="ex:MS/ex:Obj[@N='LogSize']/ex:LST/ex:I64"/>
  250.         </xsl:call-template>
  251.       </td>
  252.       <td colspan="2">
  253.         <xsl:value-of select="ex:MS/ex:Obj[@N='LogSize']/ex:LST/ex:DT"/>
  254.       </td>
  255.       <td colspan="3">
  256.         <font size="2">
  257.           CircularLoggingEnabled: <xsl:value-of select="ex:MS/ex:B[@N='CircularLoggingEnabled']"/> <br/>
  258.           RecoveryEnabled: <xsl:value-of select="ex:MS/ex:B[@N='RecoveryEnabled']"/> <br/>
  259.           OnlineDefragEnabled: <xsl:value-of select="ex:MS/ex:B[@N='OnlineDefragEnabled']"/>
  260.         </font>
  261.       </td>
  262.       <td colspan="2">
  263.  
  264.       </td>
  265.     </tr>
  266.   </xsl:template>
  267.   <xsl:template match="//ex:Obj[@N='SGInfo']">
  268.     <h2>1.3. Группы хранения</h2>
  269.     <table xsl:use-attribute-sets="tablestyle01">
  270.       <tr>
  271.         <td>
  272.           <p>#</p>
  273.         </td>
  274.         <td colspan="3">
  275.           Наименование
  276.         </td>
  277.         <td colspan="2">
  278.           Сервер
  279.         </td>
  280.         <td colspan="2">
  281.           # databases
  282.           <br/>
  283.           (mbx|pf)
  284.         </td>
  285.         <td colspan="3">
  286.           Расположение
  287.         </td>
  288.         <td>
  289.           Префикс
  290.         </td>
  291.         <td>
  292.           Размер
  293.         </td>
  294.         <td colspan="2">
  295.           Дата первого лога
  296.         </td>
  297.         <td colspan="3">
  298.           Дополнительные параметры
  299.         </td>
  300.         <td colspan="2">
  301.           Примечание
  302.         </td>
  303.       </tr>
  304.       <xsl:choose>
  305.         <xsl:when test="self::node()[ex:LST]">
  306.           <xsl:for-each select="ex:LST/ex:Obj">
  307.             <xsl:call-template name="SGTempl"/>
  308.           </xsl:for-each>
  309.         </xsl:when>
  310.         <xsl:otherwise>
  311.           <xsl:call-template name="SGTempl"/>
  312.         </xsl:otherwise>
  313.       </xsl:choose>
  314.     </table>
  315.   </xsl:template>
  316.   <xsl:template name="MDBTempl">
  317.     <tr>
  318.       <td>
  319.         <xsl:value-of select="position()"/>
  320.       </td>
  321.       <td colspan="2">
  322.         <xsl:value-of select="ex:MS/ex:S[@N='Name']"/>
  323.       </td>
  324.       <td colspan="2">
  325.         <xsl:value-of select="ex:MS/ex:S[@N='ServerName']"/>
  326.       </td>
  327.       <td colspan="2">
  328.         <xsl:value-of select="ex:MS/ex:S[@N='StorageGroupName']"/>
  329.       </td>
  330.       <td colspan="3">
  331.         <xsl:value-of select="ex:MS/ex:Obj[@N='EdbFilePath']/ex:ToString"/>
  332.       </td>
  333.       <td>
  334.         <xsl:call-template name="getsize">
  335.           <xsl:with-param name="value">
  336.             <xsl:value-of select="ex:MS/ex:I64[@N='DatabaseSize']"/>
  337.           </xsl:with-param>
  338.         </xsl:call-template>
  339.       </td>
  340.       <td>
  341.         <xsl:value-of select="ex:MS/ex:I32[@N='MbxCount']"/>
  342.       </td>
  343.       <td>
  344.         -
  345.       </td>
  346.       <td>
  347.         -
  348.       </td>
  349.       <td colspan="4">
  350.         <font size="2">
  351.           IssueWarningQuota: <xsl:value-of select="ex:MS/ex:Obj[@N='IssueWarningQuota']/ex:ToString"/><br/>
  352.           ProhibitSendQuota: <xsl:value-of select="ex:MS/ex:Obj[@N='ProhibitSendQuota']/ex:ToString"/><br/>
  353.           ProhibitSendReceiveQuota: <xsl:value-of select="ex:MS/ex:Obj[@N='ProhibitSendReceiveQuota']/ex:ToString"/><br/>
  354.           MailboxRetention: <xsl:value-of select="ex:MS/ex:Obj[@N='MailboxRetention']/ex:ToString"/><br/>
  355.           DeletedItemRetention: <xsl:value-of select="ex:MS/ex:Obj[@N='DeletedItemRetention']/ex:ToString"/><br/>
  356.           RetainDeletedItemsUntilBackup: <xsl:value-of select="ex:MS/ex:B[@N='RetainDeletedItemsUntilBackup']"/><br/>
  357.           MountAtStartup: <xsl:value-of select="ex:MS/ex:B[@N='MountAtStartup']"/><br/>
  358.           AllowFileRestore: <xsl:value-of select="ex:MS/ex:B[@N='AllowFileRestore']"/>
  359.         </font>
  360.       </td>
  361.       <td colspan="2">
  362.  
  363.       </td>
  364.     </tr>
  365.   </xsl:template>
  366.   <xsl:template match="//ex:Obj[@N='MDBInfo']">
  367.     <h2>1.4. БД почтовых ящиков</h2>
  368.     <table xsl:use-attribute-sets="tablestyle01">
  369.       <tr>
  370.         <td rowspan="2">
  371.           <p>#</p>
  372.         </td>
  373.         <td rowspan="2"  colspan="2">
  374.           Наименование
  375.         </td>
  376.         <td rowspan="2" colspan="2">
  377.           Сервер
  378.         </td>
  379.         <td rowspan="2" colspan="2">
  380.           Группа хранения
  381.         </td>
  382.         <td rowspan="2" colspan="3">
  383.           Расположение
  384.         </td>
  385.         <td rowspan="2">
  386.           Размер
  387.         </td>
  388.         <td rowspan="2">
  389.           # mailboxes
  390.         </td>
  391.         <td colspan="2">
  392.           Последнее резервное копирование
  393.         </td>
  394.         <td rowspan="2" colspan="4">
  395.           Дополнительные параметры
  396.         </td>
  397.         <td rowspan="2" colspan="2">
  398.           Примечание
  399.         </td>
  400.         <tr>
  401.           <td>
  402.             Полное
  403.           </td>
  404.           <td>
  405.             Инкрементальное
  406.           </td>
  407.         </tr>
  408.       </tr>
  409.       <xsl:choose>
  410.         <xsl:when test="self::node()[ex:LST]">
  411.           <xsl:for-each select="ex:LST/ex:Obj">
  412.             <xsl:call-template name="MDBTempl"/>
  413.           </xsl:for-each>
  414.         </xsl:when>
  415.         <xsl:otherwise>
  416.           <xsl:call-template name="MDBTempl"/>
  417.         </xsl:otherwise>
  418.       </xsl:choose>
  419.     </table>
  420.   </xsl:template>
  421.   <xsl:template name="PFDBTempl">
  422.     <tr>
  423.       <td>
  424.         <xsl:value-of select="position()"/>
  425.       </td>
  426.       <td colspan="2">
  427.         <xsl:value-of select="ex:MS/ex:S[@N='Name']"/>
  428.       </td>
  429.       <td colspan="2">
  430.         <xsl:value-of select="ex:MS/ex:S[@N='ServerName']"/>
  431.       </td>
  432.       <td colspan="2">
  433.         <xsl:value-of select="ex:MS/ex:S[@N='StorageGroupName']"/>
  434.       </td>
  435.       <td colspan="3">
  436.         <xsl:value-of select="ex:MS/ex:Obj[@N='EdbFilePath']/ex:ToString"/>
  437.       </td>
  438.       <td>
  439.         <xsl:call-template name="getsize">
  440.           <xsl:with-param name="value">
  441.             <xsl:value-of select="ex:MS/ex:I64[@N='DatabaseSize']"/>
  442.           </xsl:with-param>
  443.         </xsl:call-template>
  444.       </td>
  445.       <td>
  446.         <xsl:value-of select="ex:MS/ex:I32[@N='PFCount']"/>
  447.       </td>
  448.       <td>
  449.         -
  450.       </td>
  451.       <td>
  452.         -
  453.       </td>
  454.       <td colspan="4">
  455.         <font size="2">
  456.           IssueWarningQuota: <xsl:value-of select="ex:MS/ex:Obj[@N='IssueWarningQuota']/ex:ToString"/><br/>
  457.           ProhibitPostQuota: <xsl:value-of select="ex:MS/ex:Obj[@N='ProhibitPostQuota']/ex:ToString"/><br/>
  458.  
  459.           MaxItemSize: <xsl:value-of select="ex:MS/ex:Obj[@N='MaxItemSize']/ex:ToString"/><br/>
  460.           DeletedItemRetention: <xsl:value-of select="ex:MS/ex:Obj[@N='DeletedItemRetention']/ex:ToString"/><br/>
  461.           ItemRetentionPeriod: <xsl:value-of select="ex:MS/ex:Obj[@N='ItemRetentionPeriod']/ex:ToString"/><br/>
  462.           RetainDeletedItemsUntilBackup: <xsl:value-of select="ex:MS/ex:B[@N='RetainDeletedItemsUntilBackup']"/><br/>
  463.  
  464.           ReplicationPeriod: <xsl:value-of select="ex:MS/ex:I32[@N='ReplicationPeriod']"/>
  465.           ReplicationMessageSize: <xsl:value-of select="ex:MS/ex:Obj[@N='ReplicationMessageSize']/ex:ToString"/><br/>
  466.  
  467.           AllowFileRestore: <xsl:value-of select="ex:MS/ex:B[@N='AllowFileRestore']"/><br/>
  468.           MountAtStartup: <xsl:value-of select="ex:MS/ex:B[@N='MountAtStartup']"/>
  469.         </font>
  470.       </td>
  471.       <td colspan="2">
  472.  
  473.       </td>
  474.     </tr>
  475.   </xsl:template>
  476.   <xsl:template match="//ex:Obj[@N='PFDBInfo']">
  477.     <h2>1.5. БД общик папок</h2>
  478.     <table xsl:use-attribute-sets="tablestyle01">
  479.       <tr>
  480.         <td rowspan="2">
  481.           <p>#</p>
  482.         </td>
  483.         <td rowspan="2" colspan="2">
  484.           Наименование
  485.         </td>
  486.         <td rowspan="2" colspan="2">
  487.           Сервер
  488.         </td>
  489.         <td rowspan="2" colspan="2">
  490.           Группа хранения
  491.         </td>
  492.         <td rowspan="2" colspan="3">
  493.           Расположение
  494.         </td>
  495.         <td rowspan="2">
  496.           Размер
  497.         </td>
  498.         <td rowspan="2">
  499.           # public folders
  500.         </td>
  501.         <td colspan="2">
  502.           Последнее резервное копирование
  503.         </td>
  504.         <td rowspan="2" colspan="4">
  505.           Дополнительные параметры
  506.         </td>
  507.         <td rowspan="2" colspan="2">
  508.           Примечание
  509.         </td>
  510.         <tr>
  511.           <td>
  512.             Полное
  513.           </td>
  514.           <td>
  515.             Инкрементальное
  516.           </td>
  517.         </tr>
  518.       </tr>
  519.       <xsl:choose>
  520.         <xsl:when test="self::node()[ex:LST]">
  521.           <xsl:for-each select="ex:LST/ex:Obj">
  522.             <xsl:call-template name="PFDBTempl"/>
  523.           </xsl:for-each>
  524.         </xsl:when>
  525.         <xsl:otherwise>
  526.           <xsl:call-template name="PFDBTempl"/>
  527.         </xsl:otherwise>
  528.       </xsl:choose>
  529.     </table>
  530.   </xsl:template>
  531.   <xsl:template name="RcptDomainTempl">
  532.     <tr>
  533.       <td>
  534.         <xsl:value-of select="position()"/>
  535.       </td>
  536.       <td colspan="2">
  537.         <xsl:value-of select="ex:Props/ex:Obj[@N='DomainName']/ex:ToString"/>
  538.       </td>
  539.       <td colspan="2">
  540.         <xsl:value-of select="ex:Props/ex:Obj[@N='DomainType']/ex:ToString"/>
  541.       </td>
  542.       <td colspan="3">
  543.         AddressBookEnabled: <xsl:value-of select="ex:Props/ex:B[@N='AddressBookEnabled']"/><br/>
  544.         Default: <xsl:value-of select="ex:Props/ex:B[@N='Default']"/>
  545.       </td>
  546.       <td colspan="2">
  547.  
  548.       </td>
  549.     </tr>
  550.   </xsl:template>
  551.   <xsl:template match="//ex:Obj[@N='RcptDomain']">
  552.     <h2>1.6. Домены получателей</h2>
  553.     <table xsl:use-attribute-sets="tablestyle01">
  554.       <tr>
  555.         <td>
  556.           <p>#</p>
  557.         </td>
  558.         <td colspan="2">
  559.           Домен
  560.         </td>
  561.         <td colspan="2">
  562.           Тип
  563.         </td>
  564.         <td colspan="3">
  565.           Дополнительные параметры
  566.         </td>
  567.         <td colspan="2">
  568.           Примечание
  569.         </td>
  570.       </tr>
  571.       <xsl:choose>
  572.         <xsl:when test="self::node()[ex:LST]">
  573.           <xsl:for-each select="ex:LST/ex:Obj">
  574.             <xsl:call-template name="RcptDomainTempl"/>
  575.           </xsl:for-each>
  576.         </xsl:when>
  577.         <xsl:otherwise>
  578.           <xsl:call-template name="RcptDomainTempl"/>
  579.         </xsl:otherwise>
  580.       </xsl:choose>
  581.     </table>
  582.   </xsl:template>
  583.   <xsl:template name="RemoteDomainTempl">
  584.     <tr>
  585.       <td>
  586.         <xsl:value-of select="position()"/>
  587.       </td>
  588.       <td colspan="2">
  589.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  590.       </td>
  591.       <td colspan="2">
  592.         <xsl:value-of select="ex:Props/ex:Obj[@N='DomainName']/ex:Props/ex:S[@N='Address']"/>
  593.         <xsl:if test="ex:Props/ex:Obj[@N='DomainName']/ex:Props/ex:B[@N='IncludeSubDomains']='true'">
  594.           (+ subdomains)
  595.         </xsl:if>
  596.       </td>
  597.       <td colspan="2">
  598.         <xsl:value-of select="ex:Props/ex:Obj[@N='ContentType']/ex:ToString"/>
  599.       </td>
  600.       <td colspan="2">
  601.         <xsl:value-of select="ex:Props/ex:S[@N='CharacterSet']"/>
  602.       </td>
  603.       <td colspan="2">
  604.         <xsl:value-of select="ex:Props/ex:S[@N='NonMimeCharacterSet']"/>
  605.       </td>
  606.       <td>
  607.         <xsl:call-template name="booltorus">
  608.           <xsl:with-param name="value">
  609.             <xsl:value-of select="ex:Props/ex:B[@N='TNEFEnabled']"/>
  610.           </xsl:with-param>
  611.         </xsl:call-template>
  612.       </td>
  613.       <td colspan="4">
  614.         <font size="2">
  615.           AllowedOOFType: <xsl:value-of select="ex:Props/ex:Obj[@N='AllowedOOFType']/ex:ToString"/><br/>
  616.           AutoReplyEnabled: <xsl:value-of select="ex:Props/ex:B[@N='AutoReplyEnabled']"/><br/>
  617.           AutoForwardEnabled: <xsl:value-of select="ex:Props/ex:B[@N='AutoForwardEnabled']"/><br/>
  618.           DeliveryReportEnabled: <xsl:value-of select="ex:Props/ex:B[@N='DeliveryReportEnabled']"/><br/>
  619.           NDREnabled: <xsl:value-of select="ex:Props/ex:B[@N='NDREnabled']"/><br/>
  620.           MeetingForwardNotificationEnabled: <xsl:value-of select="ex:Props/ex:B[@N='MeetingForwardNotificationEnabled']"/><br/>
  621.           DisplaySenderName: <xsl:value-of select="ex:Props/ex:B[@N='DisplaySenderName']"/><br/>
  622.           UseSimpleDisplayName: <xsl:value-of select="ex:Props/ex:B[@N='UseSimpleDisplayName']"/><br/>
  623.           LineWrapSize: <xsl:value-of select="ex:Props/ex:Obj[@N='LineWrapSize']/ex:ToString"/>
  624.         </font>
  625.       </td>
  626.       <td colspan="2">
  627.  
  628.       </td>
  629.     </tr>
  630.   </xsl:template>
  631.   <xsl:template match="//ex:Obj[@N='RemoteDomain']">
  632.     <h2>1.7. Remote Domains</h2>
  633.     <table xsl:use-attribute-sets="tablestyle01">
  634.       <tr>
  635.         <td rowspan="2">
  636.           <p>#</p>
  637.         </td>
  638.         <td rowspan="2" colspan="2">
  639.           Наименование
  640.         </td>
  641.         <td rowspan="2" colspan="2">
  642.           Домен
  643.         </td>
  644.         <td colspan="6">
  645.           Формат сообщений
  646.         </td>
  647.         <td rowspan="2">
  648.           TNEF
  649.         </td>
  650.         <td rowspan="2" colspan="4">
  651.           Дополнительные параметры
  652.         </td>
  653.         <td rowspan="2" colspan="2">
  654.           Примечание
  655.         </td>
  656.         <tr>
  657.           <td colspan="2">
  658.             Формат
  659.           </td>
  660.           <td colspan="2">
  661.             MIME CharSet
  662.           </td>
  663.           <td colspan="2">
  664.             non-MIME CharSet
  665.           </td>
  666.         </tr>
  667.       </tr>
  668.       <xsl:choose>
  669.         <xsl:when test="self::node()[ex:LST]">
  670.           <xsl:for-each select="ex:LST/ex:Obj">
  671.             <xsl:call-template name="RemoteDomainTempl"/>
  672.           </xsl:for-each>
  673.         </xsl:when>
  674.         <xsl:otherwise>
  675.           <xsl:call-template name="RemoteDomainTempl"/>
  676.         </xsl:otherwise>
  677.       </xsl:choose>
  678.     </table>
  679.   </xsl:template>
  680.   <xsl:template name="SMTPConTempl">
  681.     <tr>
  682.       <td>
  683.         <xsl:value-of select="position()"/>
  684.       </td>
  685.       <td colspan="2">
  686.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  687.       </td>
  688.       <td>
  689.         <xsl:call-template name="booltorus">
  690.           <xsl:with-param name="value" select="ex:Props/ex:B[@N='Enabled']"/>
  691.         </xsl:call-template>
  692.       </td>
  693.       <td colspan="2">
  694.         <xsl:for-each select="ex:Props/ex:Obj[@N='AddressSpaces']/ex:LST/ex:Obj">
  695.           <xsl:value-of select="ex:ToString"/>
  696.           <br/>
  697.         </xsl:for-each>
  698.       </td>
  699.       <td colspan="3">
  700.         <xsl:value-of select="ex:Props/ex:Obj[@N='SourceRoutingGroup']/ex:ToString"/>
  701.       </td>
  702.       <td colspan="2">
  703.         <xsl:for-each select="ex:Props/ex:Obj[@N='SourceTransportServers']/ex:LST/ex:Obj">
  704.           <xsl:value-of select="ex:ToString"/>
  705.           <br/>
  706.         </xsl:for-each>
  707.       </td>
  708.       <td colspan="2">
  709.         <xsl:choose>
  710.           <xsl:when test="ex:Props/ex:B[@N='DNSRoutingEnabled']='true'">
  711.             Использовать DNS
  712.           </xsl:when>
  713.           <xsl:otherwise>
  714.             <xsl:for-each select="ex:Props/ex:Obj[@N='SmartHosts']/ex:LST/ex:Obj">
  715.               <xsl:value-of select="ex:ToString"/>
  716.               <br/>
  717.             </xsl:for-each>
  718.           </xsl:otherwise>
  719.         </xsl:choose>
  720.       </td>
  721.       <td colspan="2">
  722.         <xsl:choose>
  723.           <xsl:when test="ex:Props/ex:B[@N='IsScopedConnector']='true'">
  724.             Scoped
  725.           </xsl:when>
  726.           <xsl:otherwise>Entire Organization</xsl:otherwise>
  727.         </xsl:choose>
  728.       </td>
  729.       <td colspan="2">
  730.         <xsl:value-of select="ex:Props/ex:Obj[@N='Fqdn']/ex:ToString"/>
  731.       </td>
  732.       <td colspan="3">
  733.         <font size="2">
  734.           MaxMessageSize: <xsl:value-of select="ex:Props/ex:Obj[@N='MaxMessageSize']/ex:ToString"/><br/>
  735.           ForceHELO: <xsl:value-of select="ex:Props/ex:B[@N='ForceHELO']"/><br/>
  736.           IgnoreSTARTTLS: <xsl:value-of select="ex:Props/ex:B[@N='IgnoreSTARTTLS']"/><br/>
  737.           RequireTLS: <xsl:value-of select="ex:Props/ex:B[@N='RequireTLS']"/><br/>
  738.           DomainSecureEnabled: <xsl:value-of select="ex:Props/ex:B[@N='DomainSecureEnabled']"/>
  739.         </font>
  740.       </td>
  741.       <td>
  742.  
  743.       </td>
  744.     </tr>
  745.   </xsl:template>
  746.   <xsl:template match="//ex:Obj[@N='SendCon']" mode="SMTP">
  747.     <h2>1.8. Отправляющие коннекторы</h2>
  748.     <table xsl:use-attribute-sets="tablestyle01">
  749.       <tr>
  750.         <td>
  751.           <p>#</p>
  752.         </td>
  753.         <td colspan="2">
  754.           Наименование
  755.         </td>
  756.         <td>
  757.           Enabled?
  758.         </td>
  759.         <td colspan="2">
  760.           Адресное пространство
  761.         </td>
  762.         <td colspan="3">
  763.           RG-источник
  764.         </td>
  765.         <td colspan="2">
  766.           Серверы-источники
  767.         </td>
  768.         <td colspan="2">
  769.           Способ доставки
  770.         </td>
  771.         <td colspan="2">
  772.           Область действия
  773.         </td>
  774.         <td colspan="2">
  775.           Fqdn
  776.         </td>
  777.         <td colspan="3">
  778.           Дополнительные параметры
  779.         </td>
  780.         <td>
  781.           Примечание
  782.         </td>
  783.       </tr>
  784.       <xsl:choose>
  785.         <xsl:when test="self::node()[ex:LST]">
  786.           <xsl:for-each select="ex:LST/ex:Obj">
  787.             <xsl:call-template name="SMTPConTempl"/>
  788.           </xsl:for-each>
  789.         </xsl:when>
  790.         <xsl:otherwise>
  791.           <xsl:call-template name="SMTPConTempl"/>
  792.         </xsl:otherwise>
  793.       </xsl:choose>
  794.     </table>
  795.   </xsl:template>
  796.   <xsl:template name="RecvConTempl">
  797.     <tr>
  798.       <td>
  799.         <xsl:value-of select="position()"/>
  800.       </td>
  801.       <td colspan="2">
  802.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  803.       </td>
  804.       <td colspan="2">
  805.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  806.       </td>
  807.       <td>
  808.         <xsl:call-template name="booltorus">
  809.           <xsl:with-param name="value" select="ex:Props/ex:B[@N='Enabled']"/>
  810.         </xsl:call-template>
  811.       </td>
  812.       <td colspan="2">
  813.         <xsl:for-each select="ex:Props/ex:Obj[@N='Bindings']/ex:LST/ex:Obj">
  814.           <xsl:value-of select="ex:ToString"/>
  815.           <br/>
  816.         </xsl:for-each>
  817.       </td>
  818.       <td colspan="2">
  819.         <xsl:for-each select="ex:Props/ex:Obj[@N='RemoteIPRanges']/ex:LST/ex:Obj">
  820.           <xsl:choose>
  821.             <xsl:when test="ex:ToString='::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'">
  822.               Все адреса IPv6
  823.             </xsl:when>
  824.             <xsl:when test="ex:ToString='0.0.0.0-255.255.255.255'">
  825.               Все адреса IPv4
  826.             </xsl:when>
  827.             <xsl:otherwise>
  828.               <xsl:value-of select="ex:ToString"/>
  829.             </xsl:otherwise>
  830.           </xsl:choose>
  831.           <br/>
  832.         </xsl:for-each>
  833.       </td>
  834.       <td colspan="2">
  835.         <xsl:value-of select="ex:Props/ex:Obj[@N='Fqdn']/ex:ToString"/>
  836.       </td>
  837.       <td colspan="2">
  838.         <xsl:value-of select="ex:Props/ex:Obj[@N='AuthMechanism']/ex:ToString"/>
  839.       </td>
  840.       <td colspan="2">
  841.         <xsl:value-of select="ex:Props/ex:Obj[@N='PermissionGroups']/ex:ToString"/>
  842.       </td>
  843.       <td colspan="3">
  844.         <font size="2">
  845.           MaxMessageSize: <xsl:value-of select="ex:Props/ex:Obj[@N='MaxMessageSize']/ex:ToString"/><br/>
  846.           RequireEHLODomain: <xsl:value-of select="ex:Props/ex:B[@N='RequireEHLODomain']"/><br/>
  847.           RequireTLS: <xsl:value-of select="ex:Props/ex:B[@N='RequireTLS']"/><br/>
  848.           DomainSecureEnabled: <xsl:value-of select="ex:Props/ex:B[@N='DomainSecureEnabled']"/>
  849.         </font>
  850.       </td>
  851.       <td>
  852.  
  853.       </td>
  854.     </tr>
  855.   </xsl:template>
  856.   <xsl:template match="//ex:Obj[@N='RecvCon']">
  857.     <h2>1.9. Принимающие коннекторы</h2>
  858.     <table xsl:use-attribute-sets="tablestyle01">
  859.       <tr>
  860.         <td>
  861.           <p>#</p>
  862.         </td>
  863.         <td colspan="2">
  864.           Наименование
  865.         </td>
  866.         <td colspan="2">
  867.           Сервер
  868.         </td>
  869.         <td>
  870.           Enabled?
  871.         </td>
  872.         <td colspan="2">
  873.           Binding
  874.         </td>
  875.         <td colspan="2">
  876.           RemoteIPRanges
  877.         </td>
  878.         <td colspan="2">
  879.           FQDN
  880.         </td>
  881.         <td colspan="2">
  882.           AuthMechanism
  883.         </td>
  884.         <td colspan="2">
  885.           PermissionGroup
  886.         </td>
  887.         <td colspan="3">
  888.           Дополнительные параметры
  889.         </td>
  890.         <td>
  891.           Примечание
  892.         </td>
  893.       </tr>
  894.       <xsl:choose>
  895.         <xsl:when test="self::node()[ex:LST]">
  896.           <xsl:for-each select="ex:LST/ex:Obj">
  897.             <xsl:call-template name="RecvConTempl"/>
  898.           </xsl:for-each>
  899.         </xsl:when>
  900.         <xsl:otherwise>
  901.           <xsl:call-template name="RecvConTempl"/>
  902.         </xsl:otherwise>
  903.       </xsl:choose>
  904.     </table>
  905.   </xsl:template>
  906.   <xsl:template name="OwaDirTempl">
  907.     <tr>
  908.       <td>
  909.         <xsl:value-of select="position()"/>
  910.       </td>
  911.       <td colspan="2">
  912.         <xsl:value-of select="ex:Props/ex:S[@N='DisplayName']"/>
  913.       </td>
  914.       <td colspan="2">
  915.         <xsl:value-of select="ex:Props/ex:S[@N='WebSite']"/>
  916.       </td>
  917.       <td colspan="2">
  918.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  919.       </td>
  920.       <td colspan="2">
  921.         <xsl:value-of select="ex:Props/ex:URI[@N='InternalUrl']"/>
  922.       </td>
  923.       <td colspan="2">
  924.         <xsl:for-each select="ex:Props/ex:Obj[@N='InternalAuthenticationMethods']/ex:LST/ex:Obj">
  925.           <xsl:value-of select="ex:ToString"/>
  926.           <br/>
  927.         </xsl:for-each>
  928.       </td>
  929.       <td colspan="2">
  930.         <xsl:value-of select="ex:Props/ex:URI[@N='ExternalUrl']"/>
  931.       </td>
  932.       <td colspan="2">
  933.         <xsl:for-each select="ex:Props/ex:Obj[@N='ExternalAuthenticationMethods']/ex:LST/ex:Obj">
  934.           <xsl:value-of select="ex:ToString"/>
  935.           <br/>
  936.         </xsl:for-each>
  937.       </td>
  938.       <td colspan="2">
  939.         <xsl:value-of select="ex:Props/ex:S[@N='DefaultDomain']"/>
  940.       </td>
  941.       <td colspan="2">
  942.         <xsl:value-of select="ex:Props/ex:Obj[@N='LogonFormat']/ex:ToString"/>
  943.       </td>
  944.       <td colspan="2">
  945.  
  946.       </td>
  947.       <td>
  948.  
  949.       </td>
  950.     </tr>
  951.   </xsl:template>
  952.   <xsl:template match="//ex:Obj[@N='owaDir']">
  953.     <h2>1.10. OWA</h2>
  954.     <table xsl:use-attribute-sets="tablestyle01">
  955.       <tr>
  956.         <td>
  957.           <p>#</p>
  958.         </td>
  959.         <td colspan="2">
  960.           Наименование
  961.         </td>
  962.         <td colspan="2">
  963.           Сайт
  964.         </td>
  965.         <td colspan="2">
  966.           Сервер
  967.         </td>
  968.         <td colspan="2">
  969.           InternalURL
  970.         </td>
  971.         <td colspan="2">
  972.           InternalAuth
  973.         </td>
  974.         <td colspan="2">
  975.           ExternalURL
  976.         </td>
  977.         <td colspan="2">
  978.           ExternalAuth
  979.         </td>
  980.         <td colspan="2">
  981.           DefaultDomain
  982.         </td>
  983.         <td colspan="2">
  984.           UserLoginFormat
  985.         </td>
  986.         <td colspan="2">
  987.           Дополнительные параметры
  988.         </td>
  989.         <td>
  990.           Примечание
  991.         </td>
  992.       </tr>
  993.       <xsl:choose>
  994.         <xsl:when test="self::node()[ex:LST]">
  995.           <xsl:for-each select="ex:LST/ex:Obj">
  996.             <xsl:if test="ex:Props/ex:S[@N='DisplayName']='owa'">
  997.               <xsl:call-template name="OwaDirTempl"/>
  998.             </xsl:if>
  999.           </xsl:for-each>
  1000.         </xsl:when>
  1001.         <xsl:otherwise>
  1002.           <xsl:if test="ex:Props/ex:S[@N='DisplayName']='owa'">
  1003.             <xsl:call-template name="OwaDirTempl"/>
  1004.           </xsl:if>
  1005.         </xsl:otherwise>
  1006.       </xsl:choose>
  1007.     </table>
  1008.   </xsl:template>
  1009.   <xsl:template name="AnywhereTempl">
  1010.     <tr>
  1011.       <td>
  1012.         <xsl:value-of select="position()"/>
  1013.       </td>
  1014.       <td colspan="3">
  1015.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1016.       </td>
  1017.       <td colspan="2">
  1018.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  1019.       </td>
  1020.       <td colspan="3">
  1021.         <xsl:value-of select="ex:Props/ex:Obj[@N='ExternalHostname']/ex:ToString"/>
  1022.       </td>
  1023.       <td colspan="2">
  1024.         <xsl:for-each select="ex:Props/ex:Obj[@N='IISAuthenticationMethods']/ex:LST/ex:Obj">
  1025.           <xsl:value-of select="ex:ToString"/>
  1026.           <br/>
  1027.         </xsl:for-each>
  1028.       </td>
  1029.       <td colspan="2">
  1030.         <xsl:value-of select="ex:Props/ex:Obj[@N='ClientAuthenticationMethod']/ex:ToString"/>
  1031.       </td>
  1032.       <td colspan="3">
  1033.         SSLOffloading: <xsl:value-of select="ex:Props/ex:B[@N='SSLOffloading']"/>
  1034.       </td>
  1035.       <td>
  1036.       </td>
  1037.     </tr>
  1038.   </xsl:template>
  1039.   <xsl:template match="//ex:Obj[@N='Anywhere']">
  1040.     <h2>1.11. Anywhere</h2>
  1041.     <table xsl:use-attribute-sets="tablestyle01">
  1042.       <tr>
  1043.         <td>
  1044.           <p>#</p>
  1045.         </td>
  1046.         <td colspan="3">
  1047.           Наименование
  1048.         </td>
  1049.         <td colspan="2">
  1050.           Сервер
  1051.         </td>
  1052.         <td colspan="3">
  1053.           ExternalHostName
  1054.         </td>
  1055.         <td colspan="2">
  1056.           IISAuth
  1057.         </td>
  1058.         <td colspan="2">
  1059.           ClientAuth
  1060.         </td>
  1061.         <td colspan="3">
  1062.           Дополнительные параметры
  1063.         </td>
  1064.         <td>
  1065.           Примечание
  1066.         </td>
  1067.       </tr>
  1068.       <xsl:choose>
  1069.         <xsl:when test="self::node()[ex:LST]">
  1070.           <xsl:for-each select="ex:LST/ex:Obj">
  1071.               <xsl:call-template name="AnywhereTempl"/>
  1072.           </xsl:for-each>
  1073.         </xsl:when>
  1074.         <xsl:otherwise>
  1075.             <xsl:call-template name="AnywhereTempl"/>
  1076.         </xsl:otherwise>
  1077.       </xsl:choose>
  1078.     </table>
  1079.   </xsl:template>
  1080.   <xsl:template name="ActiveSyncTempl">
  1081.     <tr>
  1082.       <td>
  1083.         <xsl:value-of select="position()"/>
  1084.       </td>
  1085.       <td colspan="2">
  1086.         <xsl:value-of select="ex:Props/ex:S[@N='VirtualDirectoryName']"/>
  1087.       </td>
  1088.       <td colspan="2">
  1089.         <xsl:value-of select="ex:Props/ex:S[@N='WebsiteName']"/>
  1090.       </td>
  1091.       <td colspan="2">
  1092.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  1093.       </td>
  1094.       <td colspan="3">
  1095.         <xsl:value-of select="ex:Props/ex:URI[@N='InternalUrl']"/>
  1096.       </td>
  1097.       <td colspan="2">
  1098.         <xsl:for-each select="ex:Props/ex:Obj[@N='InternalAuthenticationMethods']/ex:LST/ex:Obj">
  1099.           <xsl:value-of select="ex:ToString"/>
  1100.           <br/>
  1101.         </xsl:for-each>
  1102.       </td>
  1103.       <td colspan="3">
  1104.         <xsl:value-of select="ex:Props/ex:URI[@N='ExternalUrl']"/>
  1105.       </td>
  1106.       <td colspan="2">
  1107.         <xsl:for-each select="ex:Props/ex:Obj[@N='ExternalAuthenticationMethods']/ex:LST/ex:Obj">
  1108.           <xsl:value-of select="ex:ToString"/>
  1109.           <br/>
  1110.         </xsl:for-each>
  1111.       </td>
  1112.       <td colspan="3">
  1113.         <font size="2">
  1114.           BasicAuthEnabled: <xsl:value-of select="ex:Props/ex:B[@N='BasicAuthEnabled']"/><br/>
  1115.           WindowsAuthEnabled: <xsl:value-of select="ex:Props/ex:B[@N='WindowsAuthEnabled']"/><br/>
  1116.           WebSiteSSLEnabled: <xsl:value-of select="ex:Props/ex:B[@N='WebSiteSSLEnabled']"/><br/>
  1117.           ClientCertAuth: <xsl:value-of select="ex:Props/ex:Obj[@N='ClientCertAuth']/ex:ToString"/><br/>
  1118.         </font>
  1119.       </td>
  1120.       <td>
  1121.  
  1122.       </td>
  1123.     </tr>
  1124.   </xsl:template>
  1125.   <xsl:template match="//ex:Obj[@N='ActiveSync']">
  1126.     <h2>1.12. ActiveSync</h2>
  1127.     <table xsl:use-attribute-sets="tablestyle01">
  1128.       <tr>
  1129.         <td>
  1130.           <p>#</p>
  1131.         </td>
  1132.         <td colspan="2">
  1133.           Наименование
  1134.         </td>
  1135.         <td colspan="2">
  1136.           Сайт
  1137.         </td>
  1138.         <td colspan="2">
  1139.           Сервер
  1140.         </td>
  1141.         <td colspan="3">
  1142.           InternalURL
  1143.         </td>
  1144.         <td colspan="2">
  1145.           InternalAuth
  1146.         </td>
  1147.         <td colspan="3">
  1148.           ExternalURL
  1149.         </td>
  1150.         <td colspan="2">
  1151.           ExternalAuth
  1152.         </td>
  1153.         <td colspan="3">
  1154.           Дополнительные параметры
  1155.         </td>
  1156.         <td>
  1157.           Примечание
  1158.         </td>
  1159.       </tr>
  1160.       <xsl:choose>
  1161.         <xsl:when test="self::node()[ex:LST]">
  1162.           <xsl:for-each select="ex:LST/ex:Obj">
  1163.               <xsl:call-template name="ActiveSyncTempl"/>
  1164.           </xsl:for-each>
  1165.         </xsl:when>
  1166.         <xsl:otherwise>
  1167.             <xsl:call-template name="ActiveSyncTempl"/>
  1168.         </xsl:otherwise>
  1169.       </xsl:choose>
  1170.     </table>
  1171.   </xsl:template>
  1172.   <xsl:template name="AutodiscoverTempl">
  1173.     <tr>
  1174.       <td>
  1175.         <xsl:value-of select="position()"/>
  1176.       </td>
  1177.       <td colspan="2">
  1178.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1179.       </td>
  1180.       <td colspan="2">
  1181.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  1182.       </td>
  1183.       <td colspan="2">
  1184.         <xsl:if test="self::node()[ex:Props/ex:Nil[@N='InternalUrl']]">          
  1185.           Not Defined</xsl:if>
  1186.         <xsl:value-of select="ex:Props/ex:URI[@N='InternalUrl']"/>
  1187.       </td>
  1188.       <td colspan="2">
  1189.         <xsl:for-each select="ex:Props/ex:Obj[@N='InternalAuthenticationMethods']/ex:LST/ex:Obj">
  1190.           <xsl:value-of select="ex:ToString"/>
  1191.           <br/>
  1192.         </xsl:for-each>
  1193.       </td>
  1194.       <td colspan="2">
  1195.         <xsl:if test="self::node()[ex:Props/ex:Nil[@N='ExternalUrl']]">Not Defined</xsl:if>
  1196.         <xsl:value-of select="ex:Props/ex:URI[@N='ExternalUrl']"/>
  1197.       </td>
  1198.       <td colspan="2">
  1199.         <xsl:for-each select="ex:Props/ex:Obj[@N='ExternalAuthenticationMethods']/ex:LST/ex:Obj">
  1200.           <xsl:value-of select="ex:ToString"/>
  1201.           <br/>
  1202.         </xsl:for-each>
  1203.       </td>
  1204.       <td colspan="3">
  1205.         <font size="2">
  1206.           BasicAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='BasicAuthentication']"/><br/>
  1207.           DigestAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='DigestAuthentication']"/><br/>
  1208.           WindowsAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='WindowsAuthentication']"/>
  1209.         </font>
  1210.       </td>
  1211.       <td>
  1212.  
  1213.       </td>
  1214.     </tr>
  1215.   </xsl:template>
  1216.   <xsl:template match="//ex:Obj[@N='AutoDiscvr']">
  1217.     <h2>1.13. Autodiscover</h2>
  1218.     <table xsl:use-attribute-sets="tablestyle01">
  1219.       <tr>
  1220.         <td>
  1221.           <p>#</p>
  1222.         </td>
  1223.         <td colspan="2">
  1224.           Наименование
  1225.         </td>
  1226.         <td colspan="2">
  1227.           Сервер
  1228.         </td>
  1229.         <td colspan="2">
  1230.           InternalURL
  1231.         </td>
  1232.         <td colspan="2">
  1233.           InternalAuth
  1234.         </td>
  1235.         <td colspan="2">
  1236.           ExternalURL
  1237.         </td>
  1238.         <td colspan="2">
  1239.           ExternalAuth
  1240.         </td>
  1241.         <td colspan="3">
  1242.           Дополнительные параметры
  1243.         </td>
  1244.         <td>
  1245.           Примечание
  1246.         </td>
  1247.       </tr>
  1248.       <xsl:choose>
  1249.         <xsl:when test="self::node()[ex:LST]">
  1250.           <xsl:for-each select="ex:LST/ex:Obj">
  1251.             <xsl:call-template name="AutodiscoverTempl"/>
  1252.           </xsl:for-each>
  1253.         </xsl:when>
  1254.         <xsl:otherwise>
  1255.           <xsl:call-template name="AutodiscoverTempl"/>
  1256.         </xsl:otherwise>
  1257.       </xsl:choose>
  1258.     </table>
  1259.   </xsl:template>
  1260.   <xsl:template name="OABDirTempl">
  1261.     <tr>
  1262.       <td>
  1263.         <xsl:value-of select="position()"/>
  1264.       </td>
  1265.       <td colspan="2">
  1266.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1267.       </td>
  1268.       <td colspan="2">
  1269.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  1270.       </td>
  1271.       <td colspan="3">
  1272.         <xsl:if test="self::node()[ex:Props/ex:Nil[@N='InternalUrl']]">
  1273.           Not Defined
  1274.         </xsl:if>
  1275.         <xsl:value-of select="ex:Props/ex:URI[@N='InternalUrl']"/>
  1276.       </td>
  1277.       <td colspan="2">
  1278.         <xsl:for-each select="ex:Props/ex:Obj[@N='InternalAuthenticationMethods']/ex:LST/ex:Obj">
  1279.           <xsl:value-of select="ex:ToString"/>
  1280.           <br/>
  1281.         </xsl:for-each>
  1282.       </td>
  1283.       <td colspan="3">
  1284.         <xsl:if test="self::node()[ex:Props/ex:Nil[@N='ExternalUrl']]">Not Defined</xsl:if>
  1285.         <xsl:value-of select="ex:Props/ex:URI[@N='ExternalUrl']"/>
  1286.       </td>
  1287.       <td colspan="2">
  1288.         <xsl:for-each select="ex:Props/ex:Obj[@N='ExternalAuthenticationMethods']/ex:LST/ex:Obj">
  1289.           <xsl:value-of select="ex:ToString"/>
  1290.           <br/>
  1291.         </xsl:for-each>
  1292.       </td>
  1293.       <td colspan="2">
  1294.         <xsl:for-each select="ex:Props/ex:Obj[@N='OfflineAddressBooks']/ex:LST/ex:Obj">
  1295.           <xsl:value-of select="ex:ToString"/>
  1296.           <br/>
  1297.         </xsl:for-each>
  1298.       </td>
  1299.       <td colspan="3">
  1300.         <font size="2">
  1301.           PollInterval: <xsl:value-of select="ex:Props/ex:I32[@N='PollInterval']"/><br/>
  1302.           RequireSSL: <xsl:value-of select="ex:Props/ex:B[@N='RequireSSL']"/><br/>
  1303.           BasicAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='BasicAuthentication']"/><br/>
  1304.           WindowsAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='WindowsAuthentication']"/>
  1305.         </font>
  1306.       </td>
  1307.       <td>
  1308.  
  1309.       </td>
  1310.     </tr>
  1311.   </xsl:template>
  1312.   <xsl:template match="//ex:Obj[@N='OABDir']">
  1313.     <h2>1.14. OAB Virtual Directories</h2>
  1314.     <table xsl:use-attribute-sets="tablestyle01">
  1315.       <tr>
  1316.         <td>
  1317.           <p>#</p>
  1318.         </td>
  1319.         <td colspan="2">
  1320.           Наименование
  1321.         </td>
  1322.         <td colspan="2">
  1323.           Сервер
  1324.         </td>
  1325.         <td colspan="3">
  1326.           InternalURL
  1327.         </td>
  1328.         <td colspan="2">
  1329.           InternalAuth
  1330.         </td>
  1331.         <td colspan="3">
  1332.           ExternalURL
  1333.         </td>
  1334.         <td colspan="2">
  1335.           ExternalAuth
  1336.         </td>
  1337.         <td colspan="2">
  1338.           OABs
  1339.         </td>
  1340.         <td colspan="3">
  1341.           Дополнительные параметры
  1342.         </td>
  1343.         <td>
  1344.           Примечание
  1345.         </td>
  1346.       </tr>
  1347.       <xsl:choose>
  1348.         <xsl:when test="self::node()[ex:LST]">
  1349.           <xsl:for-each select="ex:LST/ex:Obj">
  1350.             <xsl:call-template name="OABDirTempl"/>
  1351.           </xsl:for-each>
  1352.         </xsl:when>
  1353.         <xsl:otherwise>
  1354.           <xsl:call-template name="OABDirTempl"/>
  1355.         </xsl:otherwise>
  1356.       </xsl:choose>
  1357.     </table>
  1358.   </xsl:template>
  1359.   <xsl:template name="EWSTempl">
  1360.     <tr>
  1361.       <td>
  1362.         <xsl:value-of select="position()"/>
  1363.       </td>
  1364.       <td colspan="2">
  1365.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1366.       </td>
  1367.       <td colspan="2">
  1368.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  1369.       </td>
  1370.       <td colspan="3">
  1371.         <xsl:if test="self::node()[ex:Props/ex:Nil[@N='InternalUrl']]">
  1372.           Not Defined
  1373.         </xsl:if>
  1374.         <xsl:value-of select="ex:Props/ex:URI[@N='InternalUrl']"/>
  1375.       </td>
  1376.       <td colspan="2">
  1377.         <xsl:for-each select="ex:Props/ex:Obj[@N='InternalAuthenticationMethods']/ex:LST/ex:Obj">
  1378.           <xsl:value-of select="ex:ToString"/>
  1379.           <br/>
  1380.         </xsl:for-each>
  1381.       </td>
  1382.       <td colspan="3">
  1383.         <xsl:if test="self::node()[ex:Props/ex:Nil[@N='ExternalUrl']]">Not Defined</xsl:if>
  1384.         <xsl:value-of select="ex:Props/ex:URI[@N='ExternalUrl']"/>
  1385.       </td>
  1386.       <td colspan="2">
  1387.         <xsl:for-each select="ex:Props/ex:Obj[@N='ExternalAuthenticationMethods']/ex:LST/ex:Obj">
  1388.           <xsl:value-of select="ex:ToString"/>
  1389.           <br/>
  1390.         </xsl:for-each>
  1391.       </td>
  1392.       <td colspan="4">
  1393.         <font size="2">
  1394.           DigestAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='DigestAuthentication']"/><br/>
  1395.           BasicAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='BasicAuthentication']"/><br/>
  1396.           WindowsAuthentication: <xsl:value-of select="ex:Props/ex:B[@N='WindowsAuthentication']"/><br/>
  1397.           InternalNLBBypassUrl: <xsl:value-of select="ex:Props/ex:URI[@N='InternalNLBBypassUrl']"/>
  1398.         </font>
  1399.       </td>
  1400.       <td>
  1401.  
  1402.       </td>
  1403.     </tr>
  1404.   </xsl:template>
  1405.   <xsl:template match="//ex:Obj[@N='EWS']">
  1406.     <h2>1.15. EWS Virtual Directories</h2>
  1407.     <table xsl:use-attribute-sets="tablestyle01">
  1408.       <tr>
  1409.         <td>
  1410.           <p>#</p>
  1411.         </td>
  1412.         <td colspan="2">
  1413.           Наименование
  1414.         </td>
  1415.         <td colspan="2">
  1416.           Сервер
  1417.         </td>
  1418.         <td colspan="3">
  1419.           InternalURL
  1420.         </td>
  1421.         <td colspan="2">
  1422.           InternalAuth
  1423.         </td>
  1424.         <td colspan="3">
  1425.           ExternalURL
  1426.         </td>
  1427.         <td colspan="2">
  1428.           ExternalAuth
  1429.         </td>
  1430.         <td colspan="4">
  1431.           Дополнительные параметры
  1432.           </td>
  1433.         <td>
  1434.           Примечание
  1435.         </td>
  1436.       </tr>
  1437.       <xsl:choose>
  1438.         <xsl:when test="self::node()[ex:LST]">
  1439.           <xsl:for-each select="ex:LST/ex:Obj">
  1440.             <xsl:call-template name="EWSTempl"/>
  1441.           </xsl:for-each>
  1442.         </xsl:when>
  1443.         <xsl:otherwise>
  1444.           <xsl:call-template name="EWSTempl"/>
  1445.         </xsl:otherwise>
  1446.       </xsl:choose>
  1447.     </table>
  1448.   </xsl:template>
  1449.   <xsl:template name="OABTempl">
  1450.     <tr>
  1451.       <td>
  1452.         <xsl:value-of select="position()"/>
  1453.       </td>
  1454.       <td colspan="2">
  1455.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1456.       </td>
  1457.       <td colspan="2">
  1458.         <xsl:value-of select="ex:Props/ex:Obj[@N='Server']/ex:ToString"/>
  1459.       </td>
  1460.       <td colspan="3">
  1461.         <xsl:for-each select="ex:Props/ex:Obj[@N='AddressLists']/ex:LST/ex:Obj">
  1462.           <xsl:value-of select="ex:ToString"/>
  1463.           <br/>
  1464.         </xsl:for-each>
  1465.       </td>
  1466.       <td>
  1467.         <xsl:call-template name="booltorus">
  1468.           <xsl:with-param name="value">
  1469.             <xsl:value-of select="ex:Props/ex:B[@N='IsDefault']"/>
  1470.           </xsl:with-param>
  1471.         </xsl:call-template>
  1472.       </td>
  1473.       <td>
  1474.         <xsl:for-each select="ex:Props/ex:Obj[@N='Versions']/ex:LST/ex:Obj">
  1475.           <xsl:value-of select="ex:ToString"/>
  1476.           <br/>
  1477.         </xsl:for-each>
  1478.       </td>
  1479.       <td colspan="3">
  1480.         <xsl:choose>
  1481.           <xsl:when test="ex:Props/ex:B[@N='PublicFolderDistributionEnabled']='true'">
  1482.             <xsl:value-of select="ex:Props/ex:Obj[@N='PublicFolderDatabase']/ex:ToString"/>
  1483.           </xsl:when>
  1484.           <xsl:otherwise>-</xsl:otherwise>
  1485.         </xsl:choose>
  1486.       </td>
  1487.       <td colspan="3">
  1488.         <xsl:choose>
  1489.           <xsl:when test="ex:Props/ex:B[@N='WebDistributionEnabled']='true'">
  1490.             <xsl:for-each select="ex:Props/ex:Obj[@N='VirtualDirectories']/ex:LST/ex:Obj">
  1491.               <xsl:value-of select="ex:ToString"/>
  1492.               <br/>
  1493.             </xsl:for-each>
  1494.           </xsl:when>
  1495.           <xsl:otherwise>-</xsl:otherwise>
  1496.         </xsl:choose>
  1497.       </td>
  1498.       <td>
  1499.  
  1500.       </td>
  1501.     </tr>
  1502.   </xsl:template>
  1503.   <xsl:template match="//ex:Obj[@N='OAB']">
  1504.     <h2>1.16. Offline Address Book</h2>
  1505.     <table xsl:use-attribute-sets="tablestyle01">
  1506.       <tr>
  1507.         <td>
  1508.           <p>#</p>
  1509.         </td>
  1510.         <td colspan="2">
  1511.           Наименование
  1512.         </td>
  1513.         <td colspan="2">
  1514.           Сервер
  1515.         </td>
  1516.         <td colspan="3">
  1517.           Адресные списки
  1518.         </td>
  1519.         <td>
  1520.           Default?
  1521.         </td>
  1522.         <td>
  1523.           Версии
  1524.         </td>
  1525.         <td colspan="3">
  1526.           PFDistribution
  1527.         </td>
  1528.         <td colspan="3">
  1529.           WebDistribution
  1530.         </td>
  1531.         <td>
  1532.           Примечание
  1533.         </td>
  1534.       </tr>
  1535.       <xsl:choose>
  1536.         <xsl:when test="self::node()[ex:LST]">
  1537.           <xsl:for-each select="ex:LST/ex:Obj">
  1538.             <xsl:call-template name="OABTempl"/>
  1539.           </xsl:for-each>
  1540.         </xsl:when>
  1541.         <xsl:otherwise>
  1542.           <xsl:call-template name="OABTempl"/>
  1543.         </xsl:otherwise>
  1544.       </xsl:choose>
  1545.     </table>
  1546.   </xsl:template>
  1547.   <xsl:template name="AddrListTempl">
  1548.     <tr>
  1549.       <td>
  1550.         <xsl:value-of select="position()"/>
  1551.       </td>
  1552.       <td colspan="3">
  1553.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1554.       </td>
  1555.       <td colspan="2">
  1556.         <xsl:value-of select="ex:Props/ex:S[@N='Container']"/>
  1557.       </td>
  1558.       <td colspan="6">
  1559.         <xsl:value-of select="ex:Props/ex:S[@N='RecipientFilter']"/>
  1560.       </td>
  1561.       <td colspan="3">
  1562.         RecipientFilterApplied: <xsl:value-of select="ex:Props/ex:B[@N='RecipientFilterApplied']"/>
  1563.       </td>
  1564.       <td>
  1565.  
  1566.       </td>
  1567.     </tr>
  1568.   </xsl:template>
  1569.   <xsl:template match="//ex:Obj[@N='AddrList']">
  1570.     <h2>1.17. Адресные списки</h2>
  1571.     <table xsl:use-attribute-sets="tablestyle01">
  1572.       <tr>
  1573.         <td>
  1574.           <p>#</p>
  1575.         </td>
  1576.         <td colspan="3">
  1577.           Наименование
  1578.         </td>
  1579.         <td colspan="2">
  1580.           Контейнер
  1581.         </td>
  1582.         <td colspan="6">
  1583.           Фильтр
  1584.         </td>
  1585.         <td colspan="3">
  1586.           Дополнительные параметры
  1587.         </td>
  1588.         <td>
  1589.           Примечание
  1590.         </td>
  1591.       </tr>
  1592.       <xsl:choose>
  1593.         <xsl:when test="self::node()[ex:LST]">
  1594.           <xsl:for-each select="ex:LST/ex:Obj">
  1595.             <xsl:call-template name="AddrListTempl"/>
  1596.           </xsl:for-each>
  1597.         </xsl:when>
  1598.         <xsl:otherwise>
  1599.           <xsl:call-template name="AddrListTempl"/>
  1600.         </xsl:otherwise>
  1601.       </xsl:choose>
  1602.     </table>
  1603.   </xsl:template>
  1604.   <xsl:template name="GALTempl">
  1605.     <tr>
  1606.       <td>
  1607.         <xsl:value-of select="position()"/>
  1608.       </td>
  1609.       <td colspan="3">
  1610.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1611.       </td>
  1612.       <td>
  1613.         <xsl:call-template name="booltorus">
  1614.           <xsl:with-param name="value">
  1615.             <xsl:value-of select="ex:Props/ex:B[@N='IsDefaultGlobalAddressList']"/>
  1616.           </xsl:with-param>
  1617.         </xsl:call-template>
  1618.       </td>
  1619.       <td colspan="8">
  1620.         <xsl:value-of select="ex:Props/ex:S[@N='RecipientFilter']"/>
  1621.       </td>
  1622.       <td colspan="3">
  1623.         RecipientFilterApplied: <xsl:value-of select="ex:Props/ex:B[@N='RecipientFilterApplied']"/>
  1624.       </td>
  1625.       <td>
  1626.  
  1627.       </td>
  1628.     </tr>
  1629.   </xsl:template>
  1630.   <xsl:template match="//ex:Obj[@N='GAL']">
  1631.     <h2>1.18. Глобальные адресные списки</h2>
  1632.     <table xsl:use-attribute-sets="tablestyle01">
  1633.       <tr>
  1634.         <td>
  1635.           <p>#</p>
  1636.         </td>
  1637.         <td colspan="3">
  1638.           Наименование
  1639.         </td>
  1640.         <td>
  1641.           Default?
  1642.         </td>
  1643.         <td colspan="8">
  1644.           Фильтр
  1645.         </td>
  1646.         <td colspan="3">
  1647.           Дополнительные параметры
  1648.         </td>
  1649.         <td>
  1650.           Примечание
  1651.         </td>
  1652.       </tr>
  1653.       <xsl:choose>
  1654.         <xsl:when test="self::node()[ex:LST]">
  1655.           <xsl:for-each select="ex:LST/ex:Obj">
  1656.             <xsl:call-template name="GALTempl"/>
  1657.           </xsl:for-each>
  1658.         </xsl:when>
  1659.         <xsl:otherwise>
  1660.           <xsl:call-template name="GALTempl"/>
  1661.         </xsl:otherwise>
  1662.       </xsl:choose>
  1663.     </table>
  1664.   </xsl:template>
  1665.   <xsl:template name="TransportRuleTempl">
  1666.     <tr>
  1667.       <td>
  1668.         <xsl:value-of select="position()"/>
  1669.       </td>
  1670.       <td colspan="3">
  1671.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1672.       </td>
  1673.       <td colspan="2">
  1674.         <xsl:value-of select="ex:Props/ex:Obj[@N='State']/ex:ToString"/>
  1675.       </td>
  1676.       <td colspan="2">
  1677.         <xsl:value-of select="ex:Props/ex:I32[@N='Priority']"/>
  1678.       </td>
  1679.       <td colspan="8">
  1680.         <xsl:value-of select="ex:Props/ex:S[@N='Comments']"/>
  1681.       </td>
  1682.     </tr>
  1683.   </xsl:template>
  1684.   <xsl:template match="//ex:Obj[@N='TransportRules']">
  1685.     <h2>1.19. Транспортные правила</h2>
  1686.     <table xsl:use-attribute-sets="tablestyle01">
  1687.       <tr>
  1688.         <td>
  1689.           <p>#</p>
  1690.         </td>
  1691.         <td colspan="3">
  1692.           Наименование
  1693.         </td>
  1694.         <td colspan="2">
  1695.           Состояние
  1696.         </td>
  1697.         <td colspan="2">
  1698.           Приоритет
  1699.         </td>
  1700.         <td colspan="8">
  1701.           Примечание
  1702.         </td>
  1703.       </tr>
  1704.       <xsl:choose>
  1705.         <xsl:when test="self::node()[ex:LST]">
  1706.           <xsl:for-each select="ex:LST/ex:Obj">
  1707.             <xsl:call-template name="TransportRuleTempl"/>
  1708.           </xsl:for-each>
  1709.         </xsl:when>
  1710.         <xsl:otherwise>
  1711.           <xsl:call-template name="TransportRuleTempl"/>
  1712.         </xsl:otherwise>
  1713.       </xsl:choose>
  1714.     </table>
  1715.   </xsl:template>
  1716.   <xsl:template name="POP3Templ">
  1717.     <tr>
  1718.       <td>
  1719.         <xsl:value-of select="position()"/>
  1720.       </td>
  1721.       <td colspan="2">
  1722.         <xsl:value-of select="ex:MS/ex:Obj[@N='Identity']/ex:ToString"/>
  1723.       </td>
  1724.       <td>
  1725.         <xsl:value-of select="ex:MS/ex:Obj[@N='ServiceStatus']/ex:ToString"/>
  1726.       </td>
  1727.       <td colspan="2">
  1728.         <xsl:for-each select="ex:MS/ex:Obj[@N='UnencryptedOrTLSBindings']/ex:LST/ex:Obj">
  1729.           <xsl:value-of select="ex:ToString"/>
  1730.           <br/>
  1731.         </xsl:for-each>
  1732.       </td>
  1733.       <td colspan="2">
  1734.         <xsl:for-each select="ex:MS/ex:Obj[@N='SSLBindings']/ex:LST/ex:Obj">
  1735.           <xsl:value-of select="ex:ToString"/>
  1736.           <br/>
  1737.         </xsl:for-each>
  1738.       </td>
  1739.       <td colspan="3">
  1740.         <xsl:value-of select="ex:MS/ex:S[@N='X509CertificateName']"/>
  1741.       </td>
  1742.       <td colspan="2">
  1743.         <xsl:value-of select="ex:MS/ex:Obj[@N='LoginType']/ex:ToString"/>
  1744.       </td>
  1745.       <td colspan="2">
  1746.        
  1747.       </td>
  1748.     </tr>
  1749.   </xsl:template>
  1750.   <xsl:template match="//ex:Obj[@N='Pop3Set']">
  1751.     <h2>1.20. Конфигурация POP3</h2>
  1752.     <table xsl:use-attribute-sets="tablestyle01">
  1753.       <tr>
  1754.         <td>
  1755.           <p>#</p>
  1756.         </td>
  1757.         <td colspan="2">
  1758.           Сервер
  1759.         </td>
  1760.         <td>
  1761.           Служба
  1762.         </td>
  1763.         <td colspan="2">
  1764.           Bindings
  1765.         </td>
  1766.         <td colspan="2">
  1767.           SSLBindings
  1768.         </td>
  1769.         <td colspan="3">
  1770.           X509Name
  1771.         </td>
  1772.         <td colspan="2">
  1773.           LoginType
  1774.         </td>
  1775.         <td colspan="2">
  1776.           Дополнительные параметры
  1777.         </td>
  1778.       </tr>
  1779.       <xsl:choose>
  1780.         <xsl:when test="self::node()[ex:LST]">
  1781.           <xsl:for-each select="ex:LST/ex:Obj">
  1782.             <xsl:call-template name="POP3Templ"/>
  1783.           </xsl:for-each>
  1784.         </xsl:when>
  1785.         <xsl:otherwise>
  1786.           <xsl:call-template name="POP3Templ"/>
  1787.         </xsl:otherwise>
  1788.       </xsl:choose>
  1789.     </table>
  1790.   </xsl:template>
  1791.   <xsl:template name="IMAP4Templ">
  1792.     <tr>
  1793.       <td>
  1794.         <xsl:value-of select="position()"/>
  1795.       </td>
  1796.       <td colspan="2">
  1797.         <xsl:value-of select="ex:MS/ex:Obj[@N='Identity']/ex:ToString"/>
  1798.       </td>
  1799.       <td>
  1800.         <xsl:value-of select="ex:MS/ex:Obj[@N='ServiceStatus']/ex:ToString"/>
  1801.       </td>
  1802.       <td colspan="2">
  1803.         <xsl:for-each select="ex:MS/ex:Obj[@N='UnencryptedOrTLSBindings']/ex:LST/ex:Obj">
  1804.           <xsl:value-of select="ex:ToString"/>
  1805.           <br/>
  1806.         </xsl:for-each>
  1807.       </td>
  1808.       <td colspan="2">
  1809.         <xsl:for-each select="ex:MS/ex:Obj[@N='SSLBindings']/ex:LST/ex:Obj">
  1810.           <xsl:value-of select="ex:ToString"/>
  1811.           <br/>
  1812.         </xsl:for-each>
  1813.       </td>
  1814.       <td colspan="3">
  1815.         <xsl:value-of select="ex:MS/ex:S[@N='X509CertificateName']"/>
  1816.       </td>
  1817.       <td colspan="2">
  1818.         <xsl:value-of select="ex:MS/ex:Obj[@N='LoginType']/ex:ToString"/>
  1819.       </td>
  1820.       <td colspan="4">
  1821.         ShowHiddenFoldersEnabled: <xsl:value-of select="ex:MS/ex:B[@N='ShowHiddenFoldersEnabled']"/>
  1822.  
  1823.       </td>
  1824.     </tr>
  1825.   </xsl:template>
  1826.   <xsl:template match="//ex:Obj[@N='Imap4Set']">
  1827.     <h2>1.20. Конфигурация IMAP4</h2>
  1828.     <table xsl:use-attribute-sets="tablestyle01">
  1829.       <tr>
  1830.         <td>
  1831.           <p>#</p>
  1832.         </td>
  1833.         <td colspan="2">
  1834.           Сервер
  1835.         </td>
  1836.         <td>
  1837.           Служба
  1838.         </td>
  1839.         <td colspan="2">
  1840.           Bindings
  1841.         </td>
  1842.         <td colspan="2">
  1843.           SSLBindings
  1844.         </td>
  1845.         <td colspan="3">
  1846.           X509Name
  1847.         </td>
  1848.         <td colspan="2">
  1849.           LoginType
  1850.         </td>
  1851.         <td colspan="4">
  1852.           Дополнительные параметры
  1853.         </td>
  1854.       </tr>
  1855.       <xsl:choose>
  1856.         <xsl:when test="self::node()[ex:LST]">
  1857.           <xsl:for-each select="ex:LST/ex:Obj">
  1858.             <xsl:call-template name="IMAP4Templ"/>
  1859.           </xsl:for-each>
  1860.         </xsl:when>
  1861.         <xsl:otherwise>
  1862.           <xsl:call-template name="IMAP4Templ"/>
  1863.         </xsl:otherwise>
  1864.       </xsl:choose>
  1865.     </table>
  1866.   </xsl:template>
  1867.   <xsl:template name="AddrPolTempl">
  1868.     <tr>
  1869.       <td>
  1870.         <xsl:value-of select="position()"/>
  1871.       </td>
  1872.       <td colspan="3">
  1873.         <xsl:value-of select="ex:Props/ex:S[@N='Name']"/>
  1874.       </td>
  1875.       <td colspan="6">
  1876.         <xsl:value-of select="ex:Props/ex:S[@N='RecipientFilter']"/>
  1877.       </td>
  1878.       <td>
  1879.         <xsl:call-template name="booltorus">
  1880.           <xsl:with-param name="value" select="ex:Props/ex:B[@N='Enabled']"/>
  1881.         </xsl:call-template>
  1882.       </td>
  1883.       <td colspan="2">
  1884.         <xsl:value-of select="ex:Props/ex:Obj[@N='Priority']/ex:ToString"/>
  1885.       </td>
  1886.       <td colspan="6">
  1887.         <xsl:for-each select="ex:Props/ex:Obj[@N='EnabledEmailAddressTemplates']/ex:LST/ex:Obj">
  1888.           <xsl:value-of select="ex:ToString"/>
  1889.           <br/>
  1890.         </xsl:for-each>
  1891.       </td>
  1892.     </tr>
  1893.   </xsl:template>
  1894.   <xsl:template match="//ex:Obj[@N='AddressPolicies']">
  1895.     <h2>1.21. Адресные политики получателей</h2>
  1896.     <table xsl:use-attribute-sets="tablestyle01">
  1897.       <tr>
  1898.         <td>
  1899.           <p>#</p>
  1900.         </td>
  1901.         <td colspan="3">
  1902.           Наименование
  1903.         </td>
  1904.         <td colspan="6">
  1905.           Фильтр
  1906.         </td>
  1907.         <td>
  1908.           Enabled?
  1909.         </td>
  1910.         <td colspan="2">
  1911.           Приоритет
  1912.         </td>
  1913.         <td colspan="6">
  1914.           Адреса
  1915.         </td>
  1916.       </tr>
  1917.       <xsl:choose>
  1918.         <xsl:when test="self::node()[ex:LST]">
  1919.           <xsl:for-each select="ex:LST/ex:Obj">
  1920.             <xsl:call-template name="AddrPolTempl"/>
  1921.           </xsl:for-each>
  1922.         </xsl:when>
  1923.         <xsl:otherwise>
  1924.           <xsl:call-template name="AddrPolTempl"/>
  1925.         </xsl:otherwise>
  1926.       </xsl:choose>
  1927.     </table>
  1928.   </xsl:template>
  1929. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment