2011-08-10 118 views
2

我使用wsdl格式的XML,現在我想將其編碼更改爲格式XSD格式。我是否需要在Web配置中進行一些更改,或者我需要做什麼請給我建議。下面 是例如何將wsdl轉換爲XSD格式?

<wsdl:definitions name="LoginCheck" 
        targetNamespace="http://tempuri.org/"> 
    <wsdl:types> 
     <xsd:schema targetNamespace="http://tempuri.org/Imports"> 
      <xsd:import schemaLocation="http://192.168.0.6:8000/LoginCheck.svc?xsd=xsd0" 
         namespace="http://tempuri.org/"/> 
      <xsd:import schemaLocation="http://192.168.0.6:8000/LoginCheck.svc?xsd=xsd1" 
         namespace="http://schemas.microsoft.com/2003/10/Serialization/"/> 

,我想將其轉換像下面

<definitions targetNamespace="urn:saveCharacterAcc"> 
    <types> 
     <xsd:schema targetNamespace="urn:saveCharacterAcc"> 
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> 
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/> 
      <xsd:complexType name="Character"> 
       <xsd:all> 
        <xsd:element name="characterNumber" 
           type="xsd:int"/> 
        <xsd:element name="byteArray" 
           type="xsd:string"/> 
        <xsd:element name="rotationAngle" 
           type="xsd:string"/> 
        <xsd:element name="charX" type="xsd:string"/> 
+1

有些身體可以告訴我更多關於它嗎? – NoviceToDotNet

+1

我可以期待更多答案嗎? – NoviceToDotNet

回答

2

不是一個簡單的方法,但你可以嘗試使用wsdl工具(或svcutil爲WCF)來生成格式化C#類然後使用xsd工具從類生成您的XSD。

0

爲了解決這個問題,我使用了一個XSL轉換器和下面的XSL代碼。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
     version="1.0"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="wsdl:types"> 
     <xsl:copy-of select="xs:schema"/> 
    </xsl:template> 
    <xsl:template match="wsdl:documentation/text()"/> 
</xsl:stylesheet> 

<xsl:template match="wsdl:documentation/text()"/>標籤被用來去除一些不良文字元素,出現在我的生成的XSD文件。