Załącznik do Zmiany SWZ nr 1
Transkrypt
Załącznik do Zmiany SWZ nr 1
Integracja Obieg Dokumentów - GiS Spis treści 1.Opis integracji. .................................................................................................................................. 2 2.Interfejs po stronie Obiegu Dokumentów ......................................................................................... 4 3.Interfejs po stronie Gis-u................................................................................................................... 7 4.Schematy przesyłanych plików xml. ................................................................................................ 8 1 1. Opis integracji. Integracja między systemami zostanie oparta o protokół SOAP. Systemy połączone zostaną usługą sieciową wykorzystującą pliki XML do przekazywania danych. Rysunek 1 przedstawia diagram sekwencji integracji. Rysunek 1: Diagram komunikacji Komunikaty wynikowe są w formacie liczbowym. Każda metoda zwraca 1 – jeśli wykonała się poprawnie, 0 – jeśli w trakcie wykonywania wystąpił błąd. Parametry kontrahent_xml oraz 2 dokument_xml są zakodowanymi w base64 plikami xml zgodnymi ze schematami xsd: dokument.xsd oraz kontrahent.xsd. Opis wymiany danych pomiędzy systemami: • zalozSprawe (GIS->Obieg Dokumentów) – system GIS przesyła do systemu Obiegu Dokumentów żądanie założenia sprawy zawierające identyfikator dokumentu z systemu Eobieg, numer kategorii JRWA oraz identyfikator użytkownika z systemu Obiegu Dokumentów zakładającego sprawę. W momencie otrzymania takiego żądania w systemie Obiegu Dokumentów wykonywane są czynności związane z założeniem sprawy następnie odsyłana jest informacja do systemu GIS zawierająca identyfikator sprawy z systemu Obiegu Dokumentów wraz z numerem sprawy. System GIS powinien stworzyć z dokumentu którego dotyczyło pierwsze żądanie sprawę o numerze otrzymanym z systemu Obiegu Dokumentów. Jednocześnie w celu późniejszej wymiany danych system GIS powinien powiązać założoną sprawę z otrzymanym identyfikatorem sprawy z systemu Obiegu Dokumentów; • przypiszDokumentDoSprawy (GIS-> Obieg Dokumentów) – system GIS przesyła do systemu Eobieg żądanie przypisania wcześniej otrzymanego dokumentu do sprawy zawierające identyfikator dokumentu z systemu Obiegu Dokumentów oraz identyfikator sprawy z systemu Obiegu Dokumentów. System Obiegu Dokumentów po otrzymaniu żądania wykonuje czynności związane z przypisaniem dokumentu do sprawy; • zglosBlednaDekretacje (GIS-> Obieg Dokumentów) – system GIS przesyła do systemu Obiegu Dokumentów informację o błędnej dekretacji wcześniej otrzymanego dokumentu zawierającą identyfikator dokumentu z systemu Obiegu Dokumentów oraz komentarz. System Obiegu Dokumentów po odebraniu żądania dokonuje cofnięcia błędnej dekretacji; • zmienStatusSprawy (GIS-> Obieg Dokumentów) – system Gis w momencie zmiany statusu sprawy wysyła do systemu Obiegu Dokumentów informację o tym zawierającą identyfikator sprawy z systemu Obiegu Dokumentów oraz identyfikator statusu z systemu Obiegu Dokumentów; System Obiegu Dokumentów po otrzymaniu żądania dokonuje zmiany stanu sprawy; • zarejestrujDokument (GIS->Obieg Dokumentów) – system GIS przesyła nowy dokument do systemu Obiegu Dokumentów z żądaniem zarejestrowania dokumentu w systemie Obiegu Dokumentów. W parametrze żądania przesyłana jest informacja do którego pracownika należy przypisać przesłany dokument. System Obiegu Dokumentów po otrzymaniu dokumentu rejestruje go w swojej bazie danych; • zarejestrujDokument(Obiegu Dokumentów ->GIS) – system Obiegu Dokumentów przesyła nowy dokument do systemu GIS z żądaniem zarejestrowania dokumentu w systemie GIS. W parametrze żądania przesyłana jest informacja do którego pracownika należy przypisać przesłany dokument. System GIS po otrzymaniu dokumentu sprawdza czy kontrahent który złożył dokument istnieje w jego bazie. Jeżeli nie dodaje go do bazy jeżeli tak to rejestruje dokument w swojej bazie danych; • zmianaDanychKontrahenta (GIS-> Obieg Dokumentów) – system GIS przesyła do systemu Eobieg informację o zmianie danych kontrahenta zawierającą identyfikator użytkownika dokonującego zmiany z systemu Eobieg oraz dane kontrahenta który uległ zmianie. System Eobieg po otrzymaniu żądania dokonuje zmiany danych kontrahenta zapisanych w bazie danych; • zmianaDanychKontrahenta (Obieg Dokumentów ->GIS) – system Eobieg przesyła do systemu GIS informację o zmianie danych kontrahenta zawierającą identyfikator użytkownika dokonującego zmiany z systemu Eobieg oraz dane kontrahenta który uległ zmianie. System GIS po otrzymaniu żądania powinien dokonać zmiany danych kontrahenta zapisanych w bazie danych; W celu odpowiedniego działania modułu integrującego obydwa systemy konieczne jest wcześniejsze zintegrowanie danych przechowywanych w obydwu bazach danych. Do tych danych należą: • dane kontrahentów (GIS-> Obieg Dokumentów) 3 • statusy spraw (GIS-> Obieg Dokumentów) • dane użytkowników systemu (GIS-> Obieg Dokumentów) • Jednolity Rzeczowy Wykaz Akt (JRWA) (Obieg Dokumentów ->GIS) Dane te powinny zostać wyeksportowane z jednego systemu i przekazane w formie umożliwiającej ich zaimportowanie do drugiego systemu. 1. Interfejs po stronie Obiegu Dokumentów Obieg Dokumentów posiada mechanizm webservice znajdujący się pod adresem: http:// Obieg Dokumentów /gis.php?wsdl. Gdzie ADRES_EOBIEG jest adresem pod jakim widzi Obieg Dokumentów system GIS. Dla przykładu może być to 192.168.0.10/obieg. Na listingu 2.1 pokazany jest interfejs usługi sieciowej obiegu w formacie WSDL. Listing 2.1 1. <definitions name="Gis_Wsdl" targetNamespace="urn:Gis_Wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:Gis_Wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/"> 2. <types xmlns="http://schemas.xmlsoap.org/wsdl/"/> 3. 4. <!-- Messages --> 5. <!-- Input parameters for method zalozSprawe --> 6. <message name="zalozSpraweRequest"> 7. <part name="id_dokument" type="xsd:string"/> 8. <part name="numer_rwa" type="xsd:string"/> 9. <part name="id_uzytkownik" type="xsd:string"/> 10. </message> 11. <!-- Output for method zalozSprawe --> 12. <message name="zalozSpraweResponse"> 13. <part name="zalozSprawe" type="xsd:int"/> 14. </message> 15. <!-- Input parameters for method przypiszDokumentDoSprawy --> 16. <message name="przypiszDokumentDoSprawyRequest"> 17. <part name="id_dokument_eobieg" type="xsd:int"/> 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. <part name="id_sprawy_eobieg" type="xsd:int"/> </message> <!-- Output for method przypiszDokumentDoSprawy --> <message name="przypiszDokumentDoSprawyResponse"> <part name="przypiszDokumentDoSprawy" type="xsd:int"/> </message> <!-- Input parameters for method zglosBlednaDekretacje --> <message name="zglosBlednaDekretacjeRequest"> <part name="id_uzytkownik" type="xsd:int"/> <part name="id_dokument_eobieg" type="xsd:int"/> <part name="komentarz" type="xsd:int"/> </message> <!-- Output for method zglosBlednaDekretacje --> <message name="zglosBlednaDekretacjeResponse"> <part name="zglosBlednaDekretacje" type="xsd:int"/> </message> <!-- Input parameters for method zmienStatusSprawy --> 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. <message name="zmienStatusSprawyRequest"> <part name="id_sprawy_eobieg" type="xsd:int"/> <part name="id_status_eobieg" type="xsd:int"/> </message> <!-- Output for method zmienStatusSprawy --> <message name="zmienStatusSprawyResponse"> <part name="zmienStatusSprawy" type="xsd:int"/> </message> <!-- Input parameters for method zarejestrujDokument --> <message name="zarejestrujDokumentRequest"> 4 45. 46. 47. 48. 49. 50. 51. <part name="dokument_xml" type="xsd:string"/> </message> <!-- Output for method zarejestrujDokument --> <message name="zarejestrujDokumentResponse"> <part name="zarejestrujDokument" type="xsd:int"/> </message> <!-- Input parameters for method zmianaDanychKontrahenta --> 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. <message name="zmianaDanychKontrahentaRequest"> <part name="id_user" type="xsd:string"/> <part name="kotrahent_xml" type="xsd:string"/> </message> <!-- Output for method zmianaDanychKontrahenta --> <message name="zmianaDanychKontrahentaResponse"> <part name="zmianaDanychKontrahenta" type="xsd:int"/> </message> 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. </operation> <operation name="zglosBlednaDekretacje"> <input message="tns:zglosBlednaDekretacjeRequest"/> <output message="tns:zglosBlednaDekretacjeResponse"/> </operation> <operation name="zmienStatusSprawy"> <input message="tns:zmienStatusSprawyRequest"/> <output message="tns:zmienStatusSprawyResponse"/> </operation> <operation name="zarejestrujDokument"> <input message="tns:zarejestrujDokumentRequest"/> <output message="tns:zarejestrujDokumentResponse"/> </operation> <operation name="zmianaDanychKontrahenta"> <input message="tns:zmianaDanychKontrahentaRequest"/> <output message="tns:zmianaDanychKontrahentaResponse"/> </operation> <!-- Ports --> <portType name="Gis_WsdlPort"><operation name="zalozSprawe"> <input message="tns:zalozSpraweRequest"/> <output message="tns:zalozSpraweResponse"/> </operation> <operation name="przypiszDokumentDoSprawy"> <input message="tns:przypiszDokumentDoSprawyRequest"/> <output message="tns:przypiszDokumentDoSprawyResponse"/> 86. </portType> 87. 88. <!-- SOAP Bindings --> 89. <binding name="Gis_WsdlBinding" type="tns:Gis_WsdlPort"> 90. <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 91. <operation name="zalozSprawe"> 92. <soap:operation soapAction="urn:Gis_Wsdl#Gis_Wsdl#zalozSprawe"/> 93. <input><soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 94. </input> 95. <output> 96. <soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 97. </output> 98. </operation> 99. <operation name="przypiszDokumentDoSprawy"> 100. <soap:operation soapAction="urn:Gis_Wsdl#Gis_Wsdl#przypiszDokumentDoSprawy"/> 101. <input><soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 102. </input> 103. <output> 104. <soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 105. </output> 5 106. </operation> 107. <operation name="zglosBlednaDekretacje"> 108. <soap:operation soapAction="urn:Gis_Wsdl#Gis_Wsdl#zglosBlednaDekretacje"/> 109. <input><soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 110. </input> 111. <output> 112. <soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 113. </output> 114. </operation> 115. <operation name="zmienStatusSprawy"> 116. <soap:operation soapAction="urn:Gis_Wsdl#Gis_Wsdl#zmienStatusSprawy"/> 117. <input><soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 118. </input> 119. <output> 120. <soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 121. </output> 122. </operation> 123. <operation name="zarejestrujDokument"> 124. <soap:operation soapAction="urn:Gis_Wsdl#Gis_Wsdl#zarejestrujDokument"/> 125. <input><soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 126. </input> 127. <output> 128. <soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 129. </output> 130. </operation> 131. <operation name="zmianaDanychKontrahenta"> 132. <soap:operation soapAction="urn:Gis_Wsdl#Gis_Wsdl#zmianaDanychKontrahenta"/> 133. <input><soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 134. </input> 135. <output> 136. <soap:body use="encoded" namespace="urn:Gis_Wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 137. </output> 138. </operation> 139. </binding> 140. 141. <!-- Service (location) --> 142. <service name="Gis_Wsdl"> 143. <documentation/> 144. <port name="Gis_WsdlPort" binding="tns:Gis_WsdlBinding"><soap:address location="http://localhost:80/eobieg2_zdm_bb/gis.php"/> 145. </port> 146. </service> 147. </definitions> Webservice pokazany na listingu 1 obsługuje metody dostępowe systemu Obiegu Dokumentów. Dla łatwiejszego wyjaśnienia metody widoczne są na listingu 2.2. Listing 2.2 1. 2. 3. 4. 5. 6. 7. public zalozSprawe(int id_dokument, string numer_rwa, int id_uzytkownik) { } public przypiszDokumentDoSprawy(int id_dokument_eobieg,int id_sprawy_eobieg) 6 8. 9. 10. 11. { } 12. public zglosBlednaDekretacje(int id_uzytkownik,int id_dokument_eobieg,string komentarz) 13. { 14. 15. } 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. public zmienStatusSprawy(int id_sprawy_eobieg,int id_status_eobieg) { } public zarejestrujDokument(string $dokument_xml) { } public zmianaDanychKontrahenta(string id_user,string kotrahent_xml) { } Przykładowe wywołanie webservice z poziomu języka PHP widoczne jest na listingu 2.3. Listing 2.3 1. $klient=new SoapClient("http://192.168.0.10/gis.php?wsdl"); 2. 3. //zakladanie sprawy 4. $klient->zalozSprawe(6913,111,176); W linii 1 listingu 3 następuje połączenie do usługi sieciowej obiegu. W linii 4 wykonana jest metoda zakładająca sprawę w obiegu. 1. Interfejs po stronie Gis-u. Usługa sieciowa po stronie Gis posiada metody widoczne na listingu 3.1. Listing 3.1 public zarejestrujDokument(string $dokument_xml) { } public zmianaDanychKontrahenta(string id_user,string kotrahent_xml) { } Powyższe metody powinny zostać zaimplementowane po stronie GIS. 7 2. Schematy przesyłanych plików xml. Parametry metod o nazwie kontahent_xml oraz dokument_xml są przesyłane w postaci zakodowanej base64. Czyli implementacje metod usług sieciowych powinny odkodować zmienne a następnie traktować je jako treść dokumentów xml. Przykład w pseudo kodzie: Listing 4.1 1. public zarejestrujDokument(string dokument_xml) 2. { 3. xml=base64_decode(document_xml) 4. // zmienna xml zawiera treść dokumentu xml 5. } Parametr dokument_xml jest dokumentem w formacie xml zgodnym ze schematem widocznym na listingu 4.2. Listing 4.2: Schemat dokument.xsd. 1. 2. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > 3. 4. 5. 6. 7. 8. <xsd:complexType name="dokumentType"> <xsd:sequence> <xsd:choice maxOccurs="1" minOccurs="1"> <xsd:element name="dogis" type="dogis" maxOccurs="1" minOccurs="0"> 9. 10. </xsd:element> <xsd:element name="doeobieg" type="doeobieg" maxOccurs="1" minOccurs="0"> 11. 12. 13. </xsd:element> </xsd:choice> <xsd:element name="metryczka" type="metryczka" maxOccurs="1" minOccurs="1"> 14. 15. </xsd:element> <xsd:element name="zalaczniki" type="zalaczniki" maxOccurs="1" minOccurs="0"></xsd:element> 16. <xsd:element name="kontrahenci" type="kontrahenci" maxOccurs="1" minOccurs="1"></xsd:element> 17. 18. </xsd:sequence> </xsd:complexType> 19. 20. 21. 22. 23. <xsd:complexType name="dogis"> <xsd:sequence> <xsd:element name="id_dok_eobieg" type="xsd:int" maxOccurs="1" minOccurs="1"></xsd:element> 24. 25. </xsd:sequence> </xsd:complexType> 26. 8 27. 28. 29. <xsd:complexType name="doeobieg"> <xsd:annotation> <xsd:documentation>element występujący przy rejestrowaniu dokumentu z gis w eobieg</xsd:documentation> 30. 31. 32. </xsd:annotation> <xsd:sequence> <xsd:element name="id_sprawy_eobieg" type="xsd:int" maxOccurs="1" minOccurs="1"></xsd:element> 33. <xsd:element name="id_uzytkownik_eobieg" type="xsd:int" maxOccurs="1" minOccurs="1"></xsd:element> 34. 35. </xsd:sequence> </xsd:complexType> 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. <xsd:complexType name="metryczka"> <xsd:sequence> <xsd:element name="data" type="xsd:string" maxOccurs="1" minOccurs="1"> </xsd:element> <xsd:element name="numer" type="xsd:string" maxOccurs="1" minOccurs="1"> </xsd:element> <xsd:element name="opis" type="xsd:string" maxOccurs="1" minOccurs="0"> </xsd:element> <xsd:element name="dostarczono" type="dostarczono" maxOccurs="1" minOccurs="1"></xsd:element> 49. 50. </xsd:sequence> </xsd:complexType> 51. 52. 53. 54. 55. 56. 57. <xsd:complexType name="zalaczniki"> <xsd:sequence> <xsd:element name="zalacznik" type="zalacznik" maxOccurs="unbounded" minOccurs="0"></xsd:element> 58. 59. </xsd:sequence> </xsd:complexType> 60. 61. 62. 63. <xsd:complexType name="kontrahenci"> <xsd:sequence> <xsd:element name="kontrahent" type="kontrahent" maxOccurs="unbounded" minOccurs="1"></xsd:element> 64. 65. </xsd:sequence> </xsd:complexType> 66. 67. <xsd:element name="dokument" type="dokumentType"></xsd:element> 68. 69. 70. 71. <xsd:complexType name="zalacznik"> <xsd:sequence> <xsd:element name="plik" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element> 72. <xsd:element name="podpis" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element> 73. 74. </xsd:sequence> <xsd:attribute name="nazwa" type="xsd:string"></xsd:attribute> 9 75. 76. <xsd:attribute name="podpis" type="podpis"></xsd:attribute> </xsd:complexType> 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. <xsd:complexType name="kontrahent"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="status" type="status"></xsd:attribute> </xsd:extension> </xsd:simpleContent> </xsd:complexType> 87. 88. 89. 90. 91. 92. 93. 94. 95. <xsd:simpleType name="podpis"> 97. 98. 99. <xsd:simpleType name="dostarczono"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="zew"></xsd:enumeration> <xsd:enumeration value="wew"></xsd:enumeration> </xsd:restriction> </xsd:simpleType> 96. <xsd:annotation> <xsd:documentation>o - osobiście, 100. 101. 102. m- mailem, f- faxem, p- pocztą 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. e- przez esp</xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:enumeration value="o"></xsd:enumeration> <xsd:enumeration value="p"></xsd:enumeration> <xsd:enumeration value="f"></xsd:enumeration> <xsd:enumeration value="m"></xsd:enumeration> <xsd:enumeration value="e"></xsd:enumeration> </xsd:restriction> </xsd:simpleType> 113. 114. 115. 116. 117. 118. 119. 120. <xsd:simpleType name="status"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="glowny"></xsd:enumeration> <xsd:enumeration value="dodatkowy"></xsd:enumeration> </xsd:restriction> </xsd:simpleType> </xsd:schema> Przykładowy dokument zgodny ze schematem z listingu 4.2. Listing 4.2 1. 2. <?xml version="1.0" encoding="UTF-8"?> <dokument> 10 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. <doeobieg> <id_sprawy_eobieg>123</id_sprawy_eobieg> <id_uzytkownik_eobieg>111</id_uzytkownik_eobieg> </doeobieg> <metryczka> <data>data</data> <numer>12</numer> <opis>opis</opis> <dostarczono>o</dostarczono> </metryczka> <zalaczniki> <zalacznik nazwa="nazwa_pliku" podpis="zew" > <plik>base64 zalacznika binarnego</plik> <podpis>base64 podpisu</podpis> </zalacznik > <zalacznik nazwa="nazwa_pliku"> <plik>base64 zalacznika binarnego</plik> </zalacznik> </zalaczniki> <kontrahenci> <kontrahent status="glowny"> base64 kontrahent_xml 24. 25. 26. </kontrahent > <kontrahent status="dodatkowy" > base64 kontrahent_xml 27. 28. 29. 30. </kontrahent> </kontrahenci> </dokument> Przed wysłaniem powinien zostać zakodowany w base64. Parametr kontahent_xml jest dokumentem xml zgodnym ze schematem widocznym na listingu 4.3. Listing 4.3 1. 2. <?xml version="1.0" encoding="UTF-8"?> 4. 5. 6. 7. 8. 9. 10. <element name="kontrahent"> <schema elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" > 3. <complexType> <sequence> <element name="id_eobieg" type="string" maxOccurs="1" minOccurs="1"> </element> <element name="id_typ_eobieg" type="string" maxOccurs="1" minOccurs="1"></element> 11. 12. 13. 14. 15. <element name="nazwa" type="string" maxOccurs="1" minOccurs="1"> </element> <element name="ulica_miejscowosc" type="string" maxOccurs="1" minOccurs="1"> 11 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. </element> <element name="nr_domu" type="string" maxOccurs="1" minOccurs="1"> </element> <element name="kod_pocztowy" type="string" maxOccurs="1" minOccurs="1"> </element> <element name="regon" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="nip" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="poczta" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="telefon" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="telefon_kom" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="email" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="pesel" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="krs" type="string" maxOccurs="1" minOccurs="0"> </element> <element name="fax" type="string" maxOccurs="1" minOccurs="0"> </element> </sequence> </complexType> </element> 53. 54. </schema> Przykładowy dokument zgodny ze schematem z listingu 4.4: Listing 4.4 1. 2. 3. 4. 5. 6. 7. 8. 9. <?xml version="1.0" encoding="UTF-8"?> <kontrahent> <id_eobieg>0</id_eobieg> <id_typ_eobieg>1</id_typ_eobieg> <nazwa>nazwa</nazwa> <ulica_miejscowosc>ulica</ulica_miejscowosc> <nr_domu>12</nr_domu> <kod_pocztowy>22-100</kod_pocztowy> <regon>123</regon> 12 10. 11. 12. 13. 14. 15. 16. 17. 18. <nip>123</nip> <poczta>Lublin</poczta> <telefon>213123</telefon> <telefon_kom>123213</telefon_kom> <email>[email protected]</email> <pesel>123</pesel> <krs>123</krs> <fax>123</fax> </kontrahent> Przed wysłaniem powinien zostać zakodowany w base64. 13