Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Para dar suporte ao modelo de serviço, wsutil.exe gera cabeçalho para ser usado no cliente e no lado do serviço. Ele gera o arquivo de proxy C para o lado do cliente e o arquivo de stub C para o lado do serviço, conforme necessário.
Para suportar serialização, o compilador gera cabeçalhos para descrições de elementos para definições de elementos globais e todas as informações de definição de tipo no arquivo proxy a serem consumidas pelo mecanismo de serialização.
Utilização
WsUtil.exe [command-line-switches [switch-options]:]<nome do arquivo>
opções de linha de comando
Especifica WsUtil.exe opções do compilador. Os interruptores podem aparecer em qualquer ordem. O travessão ('-') e a barra ('/') são tratados da mesma forma.
Lista de opções de linha de comando
- @filename Especifica que o arquivo de entrada deve ser tratado como um arquivo de resposta. Esta opção pode ser usada várias vezes, em qualquer lugar na lista de argumentos.
- /wsdl:<nome do arquivo>:<optional_url> Especifica que o arquivo de entrada deve ser tratado como um arquivo wsdl. Várias entradas wsdl são permitidas e todos os arquivos wsdl especificados são processados. O optional_url especifica o local de onde os metadados foram recuperados. Se nenhum optional_url for especificado, o Wsutil gerará uma url exclusiva internamente. Consulte também de Apoio a Políticas .
- /xsd:<filename> Especifica que o nome do arquivo de entrada deve ser tratado como um arquivo de esquema. Várias entradas xsd são permitidas e todos os arquivos de esquema especificados são processados.
- /wsp:<nome do arquivo>:<optional_url> Especifica que o nome do arquivo de entrada deve ser tratado como metadados de política. Várias entradas wsp são permitidas e todos os arquivos de política especificados são processados. O optional_url especifica o local de onde os metadados foram recuperados. Se nenhum optional_url for especificado, o Wsutil gerará uma url exclusiva internamente. Os arquivos de política serão ignorados se o sinalizador /nopolicy for especificado. Consulte também de Apoio a Políticas .
- /nopolicy Desative o processamento de políticas.
- /out:<dirname> Especifica o nome do diretório para arquivos de saída
- /noclient Não gere o stub do lado do cliente.
- /noservice Não gere o stub do lado do serviço.
- /prefix:<string> Prepend specified string para todos os identificadores gerados.
- /fullname Prepend nome de arquivo normalizado para identificadores gerados. Por padrão, apenas o nome especificado no atributo "name" será usado para gerar identificadores para descrições relacionadas.
- /string:<WS_STRING>|<WCHAR*> Por padrão, wsutil gera WCHAR* para o tipo xsd:string. O aplicativo pode usar esse sinalizador para substituir esse comportamento e gera WS_STRING para xsd:type.
- /help Exibir mensagem de ajuda
- /? O mesmo que /help
- /W:x Opções de tratamento de erros. Pode ser W:0-W:4 | WX
- /nologo Não gere informações específicas do compilador na saída do console.
- /nostamp Não gere informações específicas do compilador nos arquivos gerados.
Por padrão, o compilador gera os seguintes arquivos para o arquivo WSDL ou WSDL retornado da troca de metadados:
Proxy do cliente ({inputfilename}.c)
Stub de serviço ({inputfilename}.c)
Arquivo de cabeçalho ({inputfilename}.h)
A raiz do nome do arquivo gerado é o nome do arquivo de entrada. As extensões de arquivo de entrada originais são preservadas para evitar a colisão de nome de arquivo para arquivos gerados. Por padrão, os stubs de cliente e serviço são gerados no mesmo arquivo, com o código de stub de serviço gerado após o código de proxy.
Por padrão, o compilador gera os seguintes arquivos para um arquivo XSD para o esquema retornado da troca de metadados:
Descrições de serialização ({inputfilename}.c)
Arquivo de cabeçalho ({inputfilename}.h)
A raiz do nome do arquivo é o nome do serviço.
Wsutil.exe gera uma seção de "carimbo" no início de todos os arquivos gerados, indicando a opção do compilador, a versão da ferramenta, a opção de linha de comando aplicável, etc. Esta seção pode ser desativada usando a opção /nostamp para evitar ruído com a comparação de arquivos gerados.
Wsutil não suporta o download de metadados
O compilador Wsutil funciona apenas a partir do arquivo de metadados local. A ferramenta não suporta o download de metadados de serviços Web em execução. Os desenvolvedores podem usar outras ferramentas de serviço da Web suportadas, como svcutil, para baixar metadados para a máquina local, inspecionar os arquivos salvos e passar esses arquivos para wsutil.exe para compilação.
Suporte a vários arquivos de entrada/saída
O esquema WSDL e XML permite incluir/importar definições de outros espaços de nome especificados em outros locais/arquivos. O Wsutil suporta várias entradas de esquema/wsdl/política e gera um conjunto de stub/header para cada arquivo de entrada. Wsutil não segue as instruções include e import. Em vez disso, o aplicativo deve passar arquivos contendo todos os namespaces necessários para wsutil para que a ferramenta possa resolver todas as dependências durante a compilação.
WsUtil.exe /xsd:stockquote.xsd /wsdl:stockquote.wsdl /wsdl:stockquoteservice.wsdl
wsutil gera três conjuntos de arquivos de saída:
- stockquote.xsd.c stockquote.xsd.h
- stockquote.wsdl.c stockquote.wsdl.h
- stockquoteservice.wsdl.h stockquoteservices.wsdl.c
Formato de arquivo de saída
Para cada arquivo de saída, wsutil gera definições disponíveis externamente no arquivo de cabeçalho. Além das definições de estrutura C e protótipos de função stub, todas as outras definições relacionadas a serviços Web são encapsuladas em uma estrutura global nomeada com nome de arquivo normalizado.
typedef struct _stockquote_wsdl {
struct {
... // list of WS_STRUCT_DESCRIPTION for all global complex types.
} globalTypes;
struct {
... // WS_ELEMENT_DESCRIPTION for all global elements.
} globalElements;
struct {
...
} messages;
struct {
...
} contracts;
} _stockquote_wsdl;
EXTERN_C _stockquote_wsdl stockquote_wsdl;
Observe que nem todos os campos são gerados para a estrutura global. Um campo de nível superior é gerado somente quando as definições relacionadas são especificadas no arquivo de entrada. Por exemplo, nenhum campo de mensagem, operações e contratos é gerado para arquivos xsd.
Níveis de aviso e nível de erro
Semelhante ao compilador C, WsUtil.exe suporta quatro níveis de aviso e um nível de erro:
- WsUtil.exe gera erros com falhas irrecuperáveis, como arquivo WSDL inválido, opções de compilador inválidas, etc.
- WsUtil gera avisos W1 com sérios problemas recuperáveis. O compilador pode continuar, mas o usuário deve estar ciente do problema. Por exemplo, um aviso W1 será gerado se houver atributos não suportados, como algumas facetas WSDL, em wsdl que não afetam a geração de código.
- WsUtil gera avisos W2 com problemas menos graves. Não há perda de funcionalidade, mas o desenvolvedor de aplicativos pode querer saber disso. Como comportamentos que podem ser diferentes de outras plataformas.
- WsUtil gera avisos W3 com impacto mínimo no código gerado. Por exemplo, wsutil.exe gera um aviso W3 quando a string normalizada é diferente da string original.
- O aviso W4 é mais parecido com avisos "informativos" e o WsUtil emite W4 em casos como ignorar o atributo de documentação no WSDL.
- WX indica que o compilador trata o aviso como erro. Por exemplo, wsutil gera erro para todos os avisos W1 se /W:1 /WX for especificado.
/W:{N} especificar qual nível de mensagem de aviso deve ser gerado. /W:1 significa que os avisos de nível 1 devem ser gerados, e os avisos de aviso de nível 2 e inferior devem ser mascarados e não gerados pela ferramenta.
/nome completo
Esta opção indica que WsUtil.exe gera o nome completo para identificadores para evitar uma possível colisão de nomes. Por exemplo, em example.xsd temos:
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://Example.org"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" targetNamespace="http://Example.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:element name="SimpleStruct">
<xs:complexType>
<xs:sequence>
<xs:element name="a" type="xs:int" />
<xs:element name="b" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</wsdl:types>
</wsdl:definitions>
Por padrãoWsUtil.exe gera:
typedef struct SimpleStruct {
int a;
int b;
};
Mas se a opção de linha de comando /fullname for especificada, WsUtil.exe gerará a seguinte definição de estrutura:
typedef struct exmaple_xsd_SimpleStruct {
int a;
int b;
};
Globalização
A ferramenta é neutra em termos de idioma e pode ser localizada para diferentes idiomas. Todas as mensagens de erro / saída do console podem ser localizadas. No entanto, as opções de linha de comando permanecem em inglês.
Variável de ambiente
WsUtil.exe não usa nenhuma variável de ambiente.
Independente da plataforma
Os arquivos de saída do WsUtil.exe são independentes da plataforma. Não há nenhum código dependente da arquitetura gerado no stub; qualquer coisa específica da arquitetura será cuidada pelo compilador C. O stub pode ser usado em todas as plataformas que suportamos.
A descrição para wsutil.exe saída pode ser encontrada em de suporte WSDL e suporte Schema parte.