Para gerar uma página, o NPS (Novell Portal Services) usa a XSL para transformar os dados XML e criar uma página em HTML que pode ser exibida em um browser. O código XSL usado para gerar ou renderizar a HTML é especificado dentro de um conjunto de folhas de estilo XSL ou arquivos XSL. O NPS usa a XSL de dois tipos de folhas de estilo XSL para renderizar os dados.
Esta seção aborda os seguintes tópicos:
As folhas de estilo do portal controlam a aparência geral de todo o portal.
Cada máscara do NPS contém quatro folhas de estilo que se aplicam a diferentes partes da área de trabalho do portal. Isso permite que você localize facilmente informações específicas e personalize determinado arquivo. Por exemplo, você pode personalizar uma seção específica da máscara, como o cabeçalho na área personalizada. Para personalizar essa parte da máscara, você deverá abrir a folha de estilo branding_area.xsl. Você também pode anexar uma parte ou toda uma folha de estilo a outra. Esta seção oferece uma explicação sucinta sobre cada folha de estilo.
Área Personalizada. O arquivo branding_area.xsl é responsável pela criação da área personalizada. Essa folha de estilo consiste de cabeçalho, corpo e rodapé.
Área Herdável. O inheritable_area.xsl é o responsável pela criação da área herdável. Essa área consiste de dois modos: paginado, que contém páginas (esquemas de objetos), e não-paginado, que cria o cabeçalho, corpo e rodapé.
Página. O object_scheme.xsl compõe a página ativa maximizada (esquema de objetos). Esse esquema consiste de cabeçalho, corpo e rodapé e é responsável pela organização dos gadgets dentro da página. Por exemplo, ele controla a largura das colunas no corpo da mensagem e determina se os gadgets da área personalizada e do rodapé devem ficar empilhados ou na horizontal.
Frame do Gadget. O gadget_frame.xsl define o estilo dos frames do gadget e da barra de título. Ele também aplica o gabarito que coincide com o indicador de dados do gadget.
A seção a seguir descreve os diferentes arquivos de folha de estilo que controlam a aparência do portal.
Contém a definição primária de estilo do NPS. O arquivo main.xsl funciona como um arquivo "principal" na programação e fornece um ponto inicial para o processamento da folha de estilo. Ele inclui referências aos quatro tópicos mencionados anteriormente.
NOTA: Durante a instalação, você especificou um caminho de diretório para arquivos de aplicativos da Web, como tomcat\jakarta-tomcat-3.2.1\webapps. Se esse for o caminho do seu diretório webapps, suas folhas de estilo devem estar localizadas em: tomcat\jakarta-tomcat-3.2.1\webapps\nps\portal\stylesheets\skins\.
O arquivo main.xsl geralmente contém referências a outros três arquivos XSL. A seguir, uma descrição desses arquivos XSL:
A seguir, uma lista dos arquivos mencionados no mail.xsl:
Define a maioria das configurações que determinam a apresentação da página do portal. Isso permite que você mude as cores e outras configurações de exibição visual de forma rápida de fácil. O arquivo LayoutSettings.xsl se resume em uma coleção de declarações de valores constantes que são usadas pelo arquivo main.xsl do portal e por diversas folhas de estilo do gadget.
Por exemplo, no arquivo LayoutSettings.xsl você pode encontrar as seguintes declarações:
<xsl:variable name="Portal.Gadget.Titlebar.Color.Background">#4477aa</xsl:variable>
<xsl:variable name="Portal.Gadget.Titlebar.Color.Foreground">#FFFFFF</xsl:variable>
Os arquivos mencionados no main.xsl podem usar essas variáveis com "xsl:value-of" e com gabaritos de valor de atributo XSL. Por exemplo:
<td bgcolor="{$Portal.Gadget.Titlebar.Color.Background}">
Essas declarações de variável permitem que usuários principiantes em HTML e XSL mudem facilmente o esquema de cores e outras configurações da folha de estilo.
Para obter informações sobre como personalizar esses arquivos para compor a aparência de um portal, consulte Personalizando a máscara do portal.
O NPS (Novell Portal Services) fornece uma variedade de aparências e máscaras de portal contidas nos arquivos XSL. Quando você instala o NPS, um assistente de configuração no gadget de administração oferece uma lista de máscaras para que você faça a sua seleção. Consulte Editando propriedades do tema.
Ao mudar de máscaras, o NPS e a exibição do browser podem perder a sincronia e resultar em erro na página. Se isso ocorrer, use a ferramenta de administração do portal para atualizar o NPS. Para obter instruções sobre como atualizar o NPS, consulte Atualizando o objeto e as configurações do portal.
As máscaras contidas no NPS são totalmente funcionais e completas; dessa forma, você poderá efetuar apenas pequenas modificações para criar sua máscara personalizada.
IMPORTANTE: Se você colocar um gadget no rodapé da página, as máscaras Slide, Digair e iLogin não exibirão o gadget. Essas máscaras não são projetadas para exibir gadgets na área do rodapé.
As folhas de estilo a seguir são fornecidas como uma ferramenta ou ponto inicial para você desenvolver seu próprio portal:
Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\base\. A máscara Base é uma folha de estilo básica que contém apenas os componentes de máscara necessários.

Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\base-js\. A máscara Base-js é semelhante à máscara Base, com exceção de que a navegação de página utiliza JavaScript.

Essa máscara foi criada pela Gravity Media e é uma outra opção de máscara disponível com o NPS. Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\clinic\.

Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\default\. A máscara Default é uma máscara padrão que contém apenas os componentes necessários e é a máscara que aparece depois que o NPS é instalado pela primeira vez.

Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\digiair\. A máscara Digital Airlines é uma máscara de apenas uma coluna. A folha de estilo substitui as configurações do layout de página e coloca todos os gadgets em um única coluna. Os links da área personalizada dessa máscara são codificados. Para usar esses links, é necessário modificá-los para vinculá-los às informações relevantes.

Essa máscara foi criada pela Gravity Media e é uma outra opção de máscara disponível com o NPS. Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\digiair2\.

Essa máscara foi criada pela Gravity Media e é uma outra opção de máscara disponível com o NPS. Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\finance\.

Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\clinic\i-login. A máscara i-Login suporta navegação hierárquica. Essa máscara permite configurar atalhos gráficos dos links na barra de navegação para cada link de navegação principal. No arquivo XSL, existe um gabarito no branding_area.xsl denominado BA-index. Modifique esse gabarito na folha de estilo iLogin para usar esse recurso de atalho em uma página e ícone específicos.
NOTA: Quando você usa um gráfico para um botão, o nome de cada página deve coincidir com o nome do gráfico armazenado no diretório images da sua folha de estilo. Por exemplo, se o título da página for "inicial", o arquivo de imagem correspondente ao botão deverá ser inicial.gif.
Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\nwwa\. Use a máscara NetWare WebAccess para o NetWare WebAccess apenas depois de efetuar o upgrade para o NPS 1.5. Essa máscara não suporta navegação de página hierárquica.
Essa página é fornecida como um suporte adicional ao NetWare WebAccess.

Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\slide\. A máscara Slide permite remover ou armazenar a barra de navegação, clicando no ícone de seta localizado diretamente acima da navegação de página no lado esquerdo da tela.

Essa máscara foi criada pela Gravity Media e é uma outra opção de máscara disponível com o NPS. Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\vision\.

Essa máscara foi criada pela Gravity Media e é uma outra opção de máscara disponível com o NPS. Os arquivos dessa máscara do portal podem ser encontrados no diretório: webapps\nps\portal\stylesheets\skins\waterbox\.

Um arquivo contendo uma descrição das máscaras a seguir está disponível no diretório raiz de cada máscara.
As informações contidas nesses diretórios também incluem instruções para criar botões que correspondam às máscaras. A máscara Waterbox contém um documento do PhotoShop que permite modificar os botões da página.
Assim como a aparência do portal, a aparência de um gadget dentro do NPS (Novell Portal Services) é definida por folhas de estilo XSL/XSLT. Cada gadget controla sua própria folha de estilo. A folha de estilo do gadget é indicada pelo NPS para determinar como renderizar os dados que o gadget retorna.
Como os gadgets dispõem de uma grande variedade de funções, a estrutura de suas folhas de estilo não é tão consistente e semelhante como a das folhas de estilo do portal. Um gadget deve ter pelo menos uma folha de estilo (ele pode ter mais de uma também). A folha de estilo principal de um gadget geralmente é denominada main.xsl, mas pode ter outro nome dependendo do gadget. Uma folha de estilo do gadget pode também se referir a outros arquivos, como o LayoutSettings.xsl, por exemplo.
As folhas de estilo de um gadget específico podem ser encontradas no diretório WEBAPPS\NPS\PORTAL\GADGETS do seu portal. Quando você distribui o NPS, é provável que deseje modificar as folhas de estilo do gadget para que coincidam com a aparência geral do seu portal. Para obter informações sobre como personalizar uma folha de estilo do gadget, consulte Personalizando as interfaces do gadget.
As versões futuras do NPS (Novell Portal Services) deverão permitir conexões com outros sistemas. Para habilitar esse processo, o NPS deve ser capaz de mudar dinamicamente os URLs em suas folhas de estilo XSL. Dessa forma, você poderá fazer solicitações via HTTP a sistemas de terceiros.
Esta seção fornece instruções para migrar folhas de estilo que foram personalizadas em versões anteriores do NPS. Use essas instruções para todas as folhas de estilo de terceiros e folhas de estilo personalizadas que foram escritas para o NPS 1.0 ou 1.01.
Todas as folhas de estilo XSL contidas no 1.5 foram migradas. Se você não personalizou folha de estilo original alguma, não é necessário migrá-las.
As variáveis XSL são agora usadas no lugar do arquivo PortalEntities.dtd. A tabela a seguir mostra as substituições para cada uma das entidades HTML.
| Entidade HTML | Substituição da variável XSL |
|---|---|
ServletPath |
Portal.Servlet.Normal |
ResourcePath |
Portal.ResourcePath |
As definições para as novas variáveis XSL estão no arquivo LayoutSettings.xsl. Cada uma das novas variáveis XSL se refere a dados XML específicos, retornados pelo NPS.
Use a ferramenta de migração de folha de estilo que acompanha o NPS 1.5 para tornar as folhas de estilo do NPS 1.0 ou NPS 1.01 compatíveis com as do NPS 1.5. Essa ferramenta efetua uma pesquisa automática em cada arquivo XSL e substitui as referências às entidades HTML do NPS antigas pelas variáveis XSL adequadas.
Acesse o seguinte diretório:
webapps/nps/WEB-INF/Tools/StylesheetMigrator/
Efetue um dos seguintes procedimentos para executar o comando da ferramenta de migração:
java -classpath ../../WEB-INF/lib/collections.jar:../../WEB-INF/lib/xerces.jar -jar xsl_migrator.jar
A ferramenta de migração é uma ferramenta gráfica que requer o uso do XWindows ou que você a execute a partir de um console do sistema.
Antes de migrar as folhas de estilo no NPS, você pode ver como as suas folhas de estilo XSL serão migradas.
Clique em Tools (Ferramentas) > Options (Opções).
Na caixa de diálogo Stylesheet Migrator Options (Opções de Migração de Folha de Estilo), digite um caminho de saída opcional no qual serão criados os arquivos XSL migrados.
Por exemplo, você pode digitar c:\temp\nps-xsl-files. As folhas de estilo migradas são criadas no diretório c:\temp\nps-xsl-files; assim, você pode verificar o que ocorre durante a migração.
IMPORTANTE: O NPS não mantém arquivos de backup dos originais. Faça uma verificação preliminar da migração conforme explicado na Passo 1 e Passo 2 antes de migrar os arquivos de folha de estilo XSL.
Clique em File (Arquivo) > Migrate (Migrar).
Selecione os arquivos e diretórios a serem migrados.
Marque a caixa de seleção Recourse Subdirectories (Subdiretórios de Recursos) e, em seguida, clique em Add (Adicionar).
Clique em Migrate (Migrar).
Verifique as informações de confirmação e clique em Yes (Sim).
As folhas de estilo são migradas para se adequarem às mudanças feitas ao NPS 1.5. Após a migração ser concluída, cada arquivo modificado será exibido na janela principal da ferramenta de migração. Essa janela também exibe mensagens de erro e outras mensagens sobre o processamento. Grave essas mensagens para referência futura selecionando Save (Gravar) ou Save As (Gravar Como) no menu File (Arquivo).
A ferramenta de migração geralmente determina a ação a ser tomada ao migrar folhas de estilo. Por exemplo, quando FULLPAGE=branding ou CustomContent=Y estão aninhados em uma instrução XSL condicional, é impossível determinar a substituição do servlet correta. Em casos como esse, a ferramenta de migração substitui a entidade ServletPath pela $Portal.Servlet.Normal e inclui uma mensagem na saída alertando-o do problema.
Se um arquivo exibir esse problema, examine manualmente a folha de estilo para verificar se ela está funcionando de acordo com o design original. Pode ser necessário rescrever a seção contendo o comando FULLPAGE=Branding ou CustomContent=Y. Essa mensagem indica apenas que a folha de estilo original estava ambígua de alguma forma.
O exemplo a seguir mostra como o problema aparece:
<form action="&ServletPath;" method= "post">
<xsl:if test="StateLoggedIn">
<input type="hidden" name="FULLPAGE" value ="branding"/>
</xsl:if>
<input type="submit" value="OK"/>
</form>
A ferramenta de migração de folha de estilo não pode determinar se a entidade ServletPath deve ser mudada para $Portal.Servlet.Normal ou $Portal.Servlet.FullPage. Se a entidade mudar para $Portal.Servlet.FullPage, isso fará com que o NPS entre no modo de página inteira quando o usuário clicar em OK. Para que isso não ocorra, a ferramenta de migração substitui as entidades nessas condições por &Portal.Servlet.Normal e insere um comentário para você localizá-las.
O exemplo a seguir mostra como corrigir o problema:
<form method="post">
<xsl:attribute name="action">
<xsl:choose>
<xsl:when test="StateLoggedIn">
<xsl:value-of select="$Portal.Servlet.FullPage"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Portal.Servlet.Normal"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<input type="submit" value="OK"/>
</form>
O exemplo a seguir é uma outra maneira de corrigir o problema:
<xsl:choose>
<xsl:when test="StateLoggedIn">
<form action="{$Portal.Servlet.FullPage} "method="POST">
<input type="submit" value="OK"/>
</form>
</xsl:when>
<xsl:otherwise>
<form action="{$Portal.Servlet.Normal}">
<input type="submit" value="OK"/>
</form>
</xsl:otherwise>
</xsl:choose>
A ferramenta de migração da folha de estilo não modifica o código XSL embutido em comentários XML. Por isso, ela talvez não possa modificar todas as referências a ServletPath e ResourcePath.
Ela escreverá todos os arquivos migrados usando XML "bem-formado". Com isso, os comentários XML ficarão em apenas uma linha, o que poderá causar problemas com o conteúdo JavaScript que estiver embutido em um comentário XML. Será necessário rever os arquivos com conteúdo JavaScript.
O NPS suporta diferentes idiomas no mesmo portal sendo executado na mesma máquina e com diversas strings. Você deve extrair essas strings das folhas de estilo e colocá-las em um arquivo denominado main_lang.xsl no diretório.
O NPS localiza automaticamente arquivos traduzidos, desde que eles tenham um nome de país ou idioma dentro do padrão ISO. Por exemplo, um arquivo main_lang.xsl traduzido para o português seria denominado: main_lang_pt.xsl. Como o portal localiza automaticamente esses arquivos, uma instrução <xsl:include> não deverá ser usada para incluir o arquivo main_lang.xsl na folha de estilo principal.
Abra o arquivo main.xsl do qual você deseja extrair as strings traduzíveis.
Crie um arquivo main_lang.xsl no qual colocará as strings traduzíveis.
Esse arquivo deve ser colocado no diretório skins/default/devices/default/.
A primeira linha desse arquivo deve ser a seguinte:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
NOTA: O NPS tentará localizar o arquivo correto no diretório da máscara e dispositivo sendo usados. Porém, se esse arquivo não for encontrado, ele voltará para o diretório padrão. Ao criar os arquivos de idioma XSL no diretório skins/default/devices/default, você permite que cada variação de máscara e dispositivo utilize uma versão do arquivo de idioma. Assim, você não precisará manter cópias de arquivos traduzidos para cada máscara e dispositivo.
Identifique uma string localizável dentro do seu arquivo main.xsl.
Crie uma variável XSL para a string contida no arquivo main_lang.xsl.
Cada variável XSL deve ser exclusiva para que possa coexistir com todos os demais gadgets em potencial oferecidos pelo portal. Todos os arquivos XSL do gadget são importados para uma lista simples quando uma página do portal é renderizada. Se uma variável XSL duplicada for definida, o portal não poderá renderizar a página.
Para criar uma variável XSL para a string "Bem-vindo ao Novell Portal Services", use a variável a seguir.
IMPORTANTE: Todos os comandos e arquivos fazem distinção entre maiúsculas e minúsculas.
<xsl:variable name="com.novell.nps.gadgets.MeuGadget.TextoBoas-Vindas"> Bem-vindo ao Novell Portal Services</xsl:variable>
Para criar um nome exclusivo, use o nome da classe Java completo referente a um gadget. Por exemplo, nome do pacote Java e nome da classe Java.
Determine que tipo de método de substituição você precisa para essa string traduzível dentro do arquivo main.xsl.
Se a string se encontrar dentro de um atributo HTML, use um gabarito de valor de atributo XSL para se referir à variável. As chaves ({ }) iniciam a instrução do gabarito de valor de atributo XSL. O cifrão ($) indica uma referência a uma variável XSL. Isso é mostrado no exemplo a seguir, em que o texto pop-up do arquivo de imagem bem-vindo.gif usa um gabarito de valor de atributo XSL.
<img src="bem-vindo.gif" alt="{$com.novell.nps.gadgets.MeuGadget.TextoBoas-Vindas}"/>
Se a string estiver localizada fora de um atributo HTML, você deverá usar uma instrução <xsl:value-of>. As chaves não são necessárias neste caso. Elas são usadas apenas em um gabarito de valor de atributo XSL. Por exemplo:
<xsl:value-of select="$com.novell.nps.gadgets.MeuGadget.TextoBoas-Vindas"/>Continue extraindo cada string localizável como no exemplo anterior.
A última linha do arquivo main_lang.xsl deve encerrar o elemento <xsl:stylesheet> para que seja um XML "bem-formado". Inclua essa linha no fim do arquivo:
<xsl:stylesheet>Crie uma cópia do arquivo main_lang.xsl no mesmo diretório e renomeie o novo arquivo de acordo com código de idioma do padrão ISO 639.
Por exemplo, o nome para main_lang.xsl localizado em português será:
main_lang_pt.xslAbra o novo arquivo e modifique todas as strings.
Conclua esse processo para cada máscara e gadget que você executa no portal e reinicie-o.
Para obter mais informações sobre como configurar idiomas para usuários, consulte Definindo idiomas.
O Novell Portal Services permite que você utilize diferentes máscaras (aparências da folha de estilo) para exibir o seu tema do NPS. Cada máscara no NPS é organizada em um diretório separado localizado em: nps\portal\stylesheets\skins. A ferramenta de administração do NPS detecta automaticamente cada máscara (quando um novo diretório é adicionado ao diretório skins) e as torna disponíveis quando você cria um tema.
NOTA: Atualize o NPS caso você adicione uma nova máscara enquanto ele estiver sendo executado. Para atualizá-lo, abra a ferramenta de administração do portal e marque a caixa de seleção Aparências do Portal em Cache (máscaras) da opção Atualizar portal.
Esta seção explica como criar uma nova máscara. Um exemplo de nome de máscara é "deep_blue".
Identifique uma máscara existente que mais se assemelhe à máscara que você está criando.
Faça uma cópia da máscara existente no diretório nps\skins.
Renomeie a cópia de deep_blue.
Edite os arquivos XSL conforme necessário para criar a aparência que deseja para sua nova máscara.
Use a ferramenta de administração do portal para atribuir a máscara a um tema específico.
Se necessário, crie diretórios e arquivos no diretório devices para suportar os dispositivos usados no NPS.
Os arquivos devem estar no diretório correto para que o NPS possa usá-los.
Todos os gadgets contêm o mesmo layout de folha de estilo de diretório. Isso permite que eles suportem diferentes dispositivos e máscaras da mesma forma que as folhas de estilo do sistema o fazem. No entanto, você deve criar diferentes folhas de estilo para máscaras e dispositivos variados.
O recurso de detecção de dispositivo permite que o Novell Portal Services (NPS) detecte dispositivos especiais com um browser especial como o PDA. O NPS detecta os dispositivos com base nas informações da string de cabeçalho Usuário-Agente. Essa string exibe informações sobre o tipo de browser e dispositivos que você pode usar para acessar o NPS. Para dispositivos com telas pequenas, o NPS permite exibir um gadget de cada vez.
Esta seção explica como configurar o NPS para que ele detecte dispositivos especiais. Os exemplos apresentados nas etapas se referem a dispositivos PDA, uma vez que as folhas de estilo para esses dispositivos estão disponíveis no NPS.
Para acessar e exibir a string Usuário-Agente, use um JSP (Java Server Page). O comando para utilização do JSP aparece nas etapas seguintes.
Acesse a string de cabeçalho Usuário-Agente no dispositivo para o qual deseja configurar a detecção. Para isso, digite o comando JSP a seguir na barra de endereços do seu browser.
IMPORTANTE: Todos os comandos e arquivos fazem distinção entre maiúsculas e minúsculas.
PortalDomain/nps/user-agent.jsp
Por exemplo, para um dispositivo iPAQ executando o Pocket PC 2002, a string do usuário-agente será:
Mozilla/2.0 (compatível; MSIE 3.02; Windows CE; PPC; 240x320)Consulte a string do cabeçalho Usuário-Agente para obter as informações de que precisa para identificar o dispositivo.
Por exemplo, ela deverá exibir o sistema operacional ou um nome de dispositivo específico. Esse é o tipo de informação que deverá ser usada para identificar o dispositivo quando você configurar o objeto do portal. O processo de detecção verifica o cabeçalho Usuário-Agente para identificar as informações que você insere no objeto do portal.
Abra a Administração do Portal e clique em Editar portal.
O gráfico seguinte mostra os campos que você deve preencher para a Passo 4 e a Passo 5.

Digite o tipo de dispositivo (com distinção entre maiúsculas e minúsculas) no campo Nomes para todos os dispositivos da Web (PDAs) que acessam o portal.
Por exemplo, se você estiver usando um dispositivo PDA, digite pda.
Essa configuração mantém uma lista de todos os dispositivos a serem detectados. Esses valores serão correspondentes aos diretórios de dispositivos (devices) dentro de seus diretórios de máscaras (skins) específicos.
Informe o tipo de dispositivo no campo Dispositivos da Web (PDAs) que devem mostrar apenas um gadget de cada vez.
Essa configuração é útil para dispositivos com tela pequena ou área de exibição limitada.
Adicione uma nova configuração personalizada com o nome do novo dispositivo, juntamente com DetectionStrings. O valor dessa configuração deve ser a parte da string de Usuário-Agente usada para detectar esse dispositivo.
Por exemplo, para criar uma nova configuração que suporte o iPAQ, conforme descrito na Passo 1, insira uma nova configuração denominada pdaDetectionStrings. O valor dessa nova configuração pode ser definido como WindowsCE.
Depois de configurar o recurso de detecção de dispositivo especial, os usuários podem acessar o NPS a partir dos dispositivos que você adicionou à ferramenta de administração do portal. Quando eles acessam o NPS a partir de um dispositivo especial como o PDA, o NPS procura a máscara com o mesmo nome do dispositivo.
Por exemplo, o NPS pode estar configurado para usar a máscara padrão, e um dispositivo PDA pode estar configurado para reconhecer um dispositivo Windows CE. Quando um usuário acessa o NPS com um dispositivo Windows CE/Pocket PC, a folha de estilo nps\skin\default\devices\pda\main.xsl é usada porque está disponível. Se o dispositivo especificado não existir, o NPS usará a folha de estilo padrão.
