2016-05-03 78 views
0

我需要您對此XML的幫助---> XSD生成+爲其添加命名空間。 我會解釋更多。從XML生成XSD並添加命名空間XSLT

XML (這是如果你想複製您的回覆代碼...)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:urn="urn:enterprise.soap.sforce.com" 
        xmlns:urn1="urn:sobject.enterprise.soap.sforce.com" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<urn:update> 
    <urn:sObjects xsi:type="urn1:Account"> 
     <urn1:Id>001b0000006mKKqAAM</urn1:Id> 
     <!--You may enter ANY elements at this point--> 
     <AnnualRevenue>9988</AnnualRevenue> 
     <Name>Farell Instruments WYNSYS</Name> 
    </urn:sObjects> 
</urn:update> 
</soapenv:Envelope> 

XSD (這是如果你想複製您的回覆代碼... )

<xs:schema attributeFormDefault="unqualified" 
      elementFormDefault="qualified"  
      targetNamespace="urn:enterprise.soap.sforce.com" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="update"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element name="sObjects"> 
     <xs:complexType> 
     <xs:sequence> 
      <xs:element type="xs:string" name="Id"/> 
      <xs:element type="xs:string" name="Name"/> 
     </xs:sequence> 
     <xs:attribute type="xs:string" name="type"/> 
     </xs:complexType> 
    </xs:element> 
    </xs:sequence> 
</xs:complexType> 

我的要求,現在是通過屬性與類型帳戶就像這樣: urn:sObjects xsi:type =「urn1:Account」

但是使用XSD,我認爲我需要使用XSD映射才能做到這一點! 我完全失去了我嘗試了幾種格式,但仍然沒有得到正確的。

任何想法請如何獲得XML的準確XSD格式?

感謝。 BR, Mohamed Amine。

+0

對不起,我沒有得到你想要的。你想用schema來表達'xsi:type'屬性的值是否總是爲'urn1:Account'?或者,如果給出類型屬性,它需要匹配使用模式指定的類型? – rpy

+0

這是在WS調用期間發送的XML: <?xml version =「1.0」encoding =「UTF-8」?> 001b0000006mKKqAAM 新名稱 問題是這裏:,它應該是這樣的

回答

0

XSD模式驗證使用xsi:type屬性的內置定義;無法在模式中指定它必須具有特定值或限制其值超出XSD規範強加的約束。

如果您正在嘗試編寫一個限制xsi:type值的XSD模式,那麼您現在可以停止嘗試併爲您的問題尋找不同的解決方案。如果你不想這樣做,那麼你需要再次嘗試解釋你正在嘗試做什麼;這個問題並不清楚。

+0

確實我停止了嘗試,這是一個真正的死衚衕!謝謝。 我轉而使用XSLT來嘗試更改值。 請檢查此: http://stackoverflow.com/questions/37007562/xslt-replace-attribute-and-its-value –