<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3935042400120719734</id><updated>2026-04-05T20:55:18.789+02:00</updated><category term="Development"/><category term="PHP"/><category term="SOAP"/><category term="WebService"/><category term="Database"/><category term="Oracle"/><category term="WSDL"/><category term="JAXB"/><category term="Java"/><category term="Maven2"/><category term="Movie"/><category term="SQL"/><category term="Tools"/><category term="XML"/><category term="XSD"/><category term="Youtube"/><category term=".NET"/><category term="ASP"/><category term="Administration"/><category term="AirTunes"/><category term="AirportExpress"/><category term="Apple"/><category term="Archive-Logs"/><category term="Binding"/><category term="Error"/><category term="Gutzmann EDV"/><category term="Installation"/><category term="MacOS"/><category term="MySQL"/><category term="ORA-00257"/><category term="Oracle Text"/><category term="PostgreSQL"/><category term="RMAN"/><category term="Tracking"/><category term="Vimeo"/><category term="VisualBasic"/><category term="VisualStudio"/><category term="blogger.com"/><category term="iTunes"/><title type='text'>Arne Kröger&#39;s Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7649092370455017083</id><published>2011-09-28T23:35:00.000+02:00</published><updated>2011-09-28T23:35:45.769+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Administration"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Installation"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><title type='text'>Oracle 11G XE Installation error: Database Configuration failed</title><content type='html'>While running the oracle configuration after installation:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;/etc/init.d/oracle-xe configure&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;the following error specified:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
After looking inside the log file /u01/app/oracle/product/11.2.0/xe/config/log/CloneRmanRestore.log you can see an error which looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;nbsp;ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00130: invalid listener address &#39;(ADDRESS=(PROTOCOL=TCP)(HOST=oralinux)(PORT=1521))&#39;&lt;/code&gt; &lt;br /&gt;
&lt;br /&gt;
The hostname &quot;oralinux&quot; cannot be found because it is not registered inside the dns-server. You can simply add an /etc/hosts file:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;127.0.0.1 oralinux&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
After saving the file, rerun &quot;/etc/init.d/oracle-xe configure&quot; and everything should be fine.</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7649092370455017083/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/09/oracle-11g-xe-installation-error.html#comment-form' title='15 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7649092370455017083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7649092370455017083'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/09/oracle-11g-xe-installation-error.html' title='Oracle 11G XE Installation error: Database Configuration failed'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7513582533548747603</id><published>2011-09-10T09:06:00.001+02:00</published><updated>2011-09-11T14:01:44.266+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Archive-Logs"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Error"/><category scheme="http://www.blogger.com/atom/ns#" term="ORA-00257"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="RMAN"/><title type='text'>Oracle - Error - ORA-00257: archiver error. Connect internal only, until freed.</title><content type='html'>The problem was that the harddisk space ist full and oracle has no space to create new archivelogs. I am removing the obsolete archive logs to regain the space.&lt;br /&gt;
&lt;br /&gt;
First of all I remove all the archive-logs from harddisk:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;cd /u01/app/oracle/ORCL/archivelog/&lt;br /&gt;
rm -rf&amp;nbsp;2011_09_08 2011_09_09&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Now the system utilities would tell you that all was great but the connect to oracle still tells you the same error. We have to remove the files from the oracle internal storage management. We need to connect via rman to our database:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;rman&lt;br /&gt;
RMAN&amp;gt;&amp;nbsp;connect target user/password&lt;br /&gt;&lt;/code&gt;
&lt;br /&gt;
And now we instruct rman to check internal storage against the filesystem:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;RMAN&amp;gt; crosscheck archivelog all;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
He will flag all the archivelogs as &quot;expired&quot;. Now we remove all the obsolete files from storage:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;delete expired archivelog all;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Now the connect to oracle works fine.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7513582533548747603/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/09/oracle-error-ora-00257-archiver-error.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7513582533548747603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7513582533548747603'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/09/oracle-error-ora-00257-archiver-error.html' title='Oracle - Error - ORA-00257: archiver error. Connect internal only, until freed.'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7916853250789329280</id><published>2011-08-30T19:21:00.001+02:00</published><updated>2011-09-06T15:27:55.210+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AirportExpress"/><category scheme="http://www.blogger.com/atom/ns#" term="AirTunes"/><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iTunes"/><category scheme="http://www.blogger.com/atom/ns#" term="MacOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Youtube"/><title type='text'>Streaming Sound via Airtunes (AirportExpress)</title><content type='html'>While using Airtunes via iTunes I messed around with the problem to stream the system sound to the AirportExpress (e.g. Youtube Music).&lt;br /&gt;
After looking through some forums I stumbled over a little tool called &quot;&lt;a href=&quot;http://www.rogueamoeba.com/airfoil/index.php&quot;&gt;Airfoil&lt;/a&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
After installing it I can choose the AirportExpress as the output speaker for my system sound:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6alzi5YTpNvFuMsssYVnilO54ypfJW03df88i3S-3V1_jPiUZ8ClSXy9jlx0JleGA9YALUb2VieuuI047fABPfL4p1DLscsfE_f95-VD0tMEbFb99Qi70g8kHC2onnvdOUmrZZGcb6E/s1600/Bild+3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6alzi5YTpNvFuMsssYVnilO54ypfJW03df88i3S-3V1_jPiUZ8ClSXy9jlx0JleGA9YALUb2VieuuI047fABPfL4p1DLscsfE_f95-VD0tMEbFb99Qi70g8kHC2onnvdOUmrZZGcb6E/s320/Bild+3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Now all system sounds are streamed to the AirportExpress and it&#39;s possible to play sound of youtube videos directly to the AirportExpress. The sound is a little bit delayed (so using it as movie sound stream is senthless).</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7916853250789329280/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/08/streaming-sound-via-airtunes.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7916853250789329280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7916853250789329280'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/08/streaming-sound-via-airtunes.html' title='Streaming Sound via Airtunes (AirportExpress)'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6alzi5YTpNvFuMsssYVnilO54ypfJW03df88i3S-3V1_jPiUZ8ClSXy9jlx0JleGA9YALUb2VieuuI047fABPfL4p1DLscsfE_f95-VD0tMEbFb99Qi70g8kHC2onnvdOUmrZZGcb6E/s72-c/Bild+3.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-6623855026749037704</id><published>2011-06-28T19:50:00.001+02:00</published><updated>2011-06-28T19:50:57.278+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Binding"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JAXB"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven2"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><category scheme="http://www.blogger.com/atom/ns#" term="XSD"/><title type='text'>Java: JAXB: Extend generated Classes</title><content type='html'>We use the same maven2 configuration as mentioned in &lt;a href=&quot;http://arnekroeger.blogspot.com/2011/06/java-jaxb-classes-with-maven2.html&quot;&gt;this post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Now we add the following line to the JAXB-plugin configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;code&gt;&amp;lt;bindingDirectory&amp;gt;${basedir}/xml/binding&amp;lt;/bindingDirectory&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Our complete pom.xml now looks like here:&lt;br /&gt;
&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;br /&gt;
&lt;code&gt;&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;com.my.package&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;my-jaxb-artifact&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;0.1&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;dependencies&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2_commons&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;artifactId&amp;gt;jaxb2-basics-testing&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;version&amp;gt;0.5.2&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2_commons&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;artifactId&amp;gt;jaxb2-basics&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;version&amp;gt;0.5.2&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;repositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;repository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;id&amp;gt;maven2-repository.dev.java.net&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/repository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/repositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;pluginRepositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;id&amp;gt;maven2-repository.dev.java.net&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;id&amp;gt;central&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;url&amp;gt;http://repo1.maven.org/maven2&amp;lt;/url&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/pluginRepositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;build&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2.maven2&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;artifactId&amp;gt;maven-jaxb2-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;version&amp;gt;0.7.1&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;executions&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;execution&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;goals&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;goal&amp;gt;generate&amp;lt;/goal&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;/goals&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;/execution&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;/executions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;extension&amp;gt;true&amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;args&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-XtoString&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xequals&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-XhashCode&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xcopyable&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xmergeable&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xinheritance&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;/args&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;bindingDirectory&amp;gt;${basedir}/xml/binding&amp;lt;/bindingDirectory&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;schemaDirectory&amp;gt;${basedir}/src/main/resources/xsd&amp;lt;/schemaDirectory&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;packagename&amp;gt;com.my.package&amp;lt;/packagename&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;generateDirectory&amp;gt;${basedir}/target/generated-sources/xjc&amp;lt;/generateDirectory&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2_commons&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;artifactId&amp;gt;jaxb2-basics&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;version&amp;gt;0.5.2&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;/plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-jar-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.1&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;default-jar&amp;lt;/id&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;jar&amp;lt;/goal&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/executions&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;outputDirectory&amp;gt;${basedir}/build/libs&amp;lt;/outputDirectory&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;reporting&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/reporting&amp;gt;&lt;br /&gt;
&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
After that we create a file called &quot;extend.binding.xml&quot; in the folder &quot;xml/binding/&quot;.&lt;br /&gt;
The file contains the following information:&lt;br /&gt;
&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&amp;lt;jxb:bindings&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:xjc=&quot;http://java.sun.com/xml/ns/jaxb/xjc&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:jxb=&quot;http://java.sun.com/xml/ns/jaxb&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:pd=&quot;http://chubb.com/cpi/polsvc/xmlobj&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:inheritance=&quot;http://jaxb2-commons.dev.java.net/basic/inheritance&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;jxb:extensionBindingPrefixes=&quot;inheritance&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;version=&quot;2.1&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;jxb:bindings schemaLocation=&quot;../../src/main/resources/xsd/schema.xsd&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jxb:bindings node=&quot;//xs:element[@name=&#39;main.object&#39;]/xs:complexType&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;inheritance:extends&amp;gt;com.my.package.BaseClass&amp;lt;/inheritance:extends&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/jxb:bindings&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/jxb:bindings&amp;gt;&lt;br /&gt;
&amp;lt;/jxb:bindings&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The previous XML tells the xjc compiler that he should extend the class created for the xsd-object &lt;b&gt;main.object&lt;/b&gt; from the class called &lt;b&gt;com.my.package.BaseClass&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
When running &lt;code&gt;mvn generate-sources&lt;/code&gt; the&amp;nbsp;BaseClass is subclassed by the&amp;nbsp;generated class for main.object.</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/6623855026749037704/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/06/java-jaxb-extend-generated-classes.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/6623855026749037704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/6623855026749037704'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/06/java-jaxb-extend-generated-classes.html' title='Java: JAXB: Extend generated Classes'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-9166077988088732284</id><published>2011-06-28T19:50:00.000+02:00</published><updated>2011-06-28T19:50:21.294+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JAXB"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven2"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><category scheme="http://www.blogger.com/atom/ns#" term="XSD"/><title type='text'>Java: JAXB Classes with maven2</title><content type='html'>With existing XSD-Files JAXB gives a very nice opportunity to autogenerate the fitting Java classes to use the xml-Data based on the mentioned XSD-files.&lt;br /&gt;
&lt;br /&gt;
Based on the xsd objects JAXB&amp;nbsp;(xjc)&amp;nbsp;generates the Java Beans.&lt;br /&gt;
&lt;br /&gt;
The following pom.xml enables JAXB Java source file generation via maven&#39;s &quot;generate-sources&quot; goal.&amp;nbsp;The files are created at the directory specified by the &quot;generateDirectory&quot;-tag.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px;&quot;&gt;&lt;code&gt;&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;com.my.package&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;my-jaxb-artifact&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;0.1&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;dependencies&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2_commons&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;artifactId&amp;gt;jaxb2-basics-testing&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;version&amp;gt;0.5.2&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2_commons&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;artifactId&amp;gt;jaxb2-basics&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;version&amp;gt;0.5.2&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/dependencies&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;repositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;repository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;id&amp;gt;maven2-repository.dev.java.net&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/repository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/repositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;pluginRepositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;id&amp;gt;maven2-repository.dev.java.net&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;id&amp;gt;central&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;url&amp;gt;http://repo1.maven.org/maven2&amp;lt;/url&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/pluginRepositories&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;build&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2.maven2&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;artifactId&amp;gt;maven-jaxb2-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;version&amp;gt;0.7.1&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;executions&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;execution&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;goals&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;goal&amp;gt;generate&amp;lt;/goal&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;/goals&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;/execution&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;/executions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;extension&amp;gt;true&amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;args&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-XtoString&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xequals&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-XhashCode&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xcopyable&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xmergeable&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;arg&amp;gt;-Xinheritance&amp;lt;/arg&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;/args&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;schemaDirectory&amp;gt;${basedir}/src/main/resources/xsd&amp;lt;/schemaDirectory&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;packagename&amp;gt;com.my.package&amp;lt;/packagename&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;generateDirectory&amp;gt;${basedir}/target/generated-sources/xjc&amp;lt;/generateDirectory&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;groupId&amp;gt;org.jvnet.jaxb2_commons&amp;lt;/groupId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;artifactId&amp;gt;jaxb2-basics&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;&amp;lt;version&amp;gt;0.5.2&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;      &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;/plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;maven-jar-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;2.3.1&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;executions&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;execution&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;default-jar&amp;lt;/id&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goals&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;goal&amp;gt;jar&amp;lt;/goal&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/goals&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/execution&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/executions&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;outputDirectory&amp;gt;${basedir}/build/libs&amp;lt;/outputDirectory&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/plugins&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;
&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/9166077988088732284/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/06/java-jaxb-classes-with-maven2.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/9166077988088732284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/9166077988088732284'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/06/java-jaxb-classes-with-maven2.html' title='Java: JAXB Classes with maven2'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-6771394413767727829</id><published>2011-04-12T22:44:00.001+02:00</published><updated>2011-04-12T22:45:00.889+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="PostgreSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>DBVisualizer: ERROR: column c.reltriggers does not exist</title><content type='html'>DBVisualizer is one of my favourite database development tools because it&#39;s plattform and database independent and is really&amp;nbsp;intuitive.&lt;br /&gt;
&lt;br /&gt;
Since I updated my PostgreSQL Database Instance to V9 I get an error in DBVisualizer due to missing relations in the database.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ7rRlWTB97F55FbjpiGRvqJNnM-ak769TboG-xF_ve__DGOPF09XY_84WCWcAqJ2ZKnhDtjoEiwp0omqjeF6IyXSAZTsdz0ScsCOqa7DoHtbsvZxyLLhLKEiR3jEBaNeRr75Q1EnN900/s1600/Bild+9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;281&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ7rRlWTB97F55FbjpiGRvqJNnM-ak769TboG-xF_ve__DGOPF09XY_84WCWcAqJ2ZKnhDtjoEiwp0omqjeF6IyXSAZTsdz0ScsCOqa7DoHtbsvZxyLLhLKEiR3jEBaNeRr75Q1EnN900/s400/Bild+9.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;It is possible to edit the statements DBVisualizer executes for displaying tables and data. Go to the Application folder and Right-Click on the DBVisualizer.app and Choose &quot;Show package contents&quot;:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;Then step down to the following directory&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj7PXaYwUZVHaGjYcvSYEy9aDZKEyBrBw_ks6GABwsJCDFJq7XuYWnuYzB6VnzqQjXSNSbwxmnyPUgqlCEXFOSzty0uN2CfN756MjZQJWw66cBJhf1Mg_NWDE_rjTcVQvhzeBP3pWYp0A/s1600/Bild+8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj7PXaYwUZVHaGjYcvSYEy9aDZKEyBrBw_ks6GABwsJCDFJq7XuYWnuYzB6VnzqQjXSNSbwxmnyPUgqlCEXFOSzty0uN2CfN756MjZQJWw66cBJhf1Mg_NWDE_rjTcVQvhzeBP3pWYp0A/s1600/Bild+8.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;Now open the postgresql8.xml file and search and replace:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;Search:&amp;nbsp;(c.reltriggers &amp;gt; 0)&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;Replace:&amp;nbsp;(/*c.reltriggers*/ 0 &amp;gt; 0)&lt;/div&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;Save and close the file. After a restart of the DBVisualizer everything should work fine.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/6771394413767727829/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/04/dbvisualizer-error-column-creltriggers.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/6771394413767727829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/6771394413767727829'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/04/dbvisualizer-error-column-creltriggers.html' title='DBVisualizer: ERROR: column c.reltriggers does not exist'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ7rRlWTB97F55FbjpiGRvqJNnM-ak769TboG-xF_ve__DGOPF09XY_84WCWcAqJ2ZKnhDtjoEiwp0omqjeF6IyXSAZTsdz0ScsCOqa7DoHtbsvZxyLLhLKEiR3jEBaNeRr75Q1EnN900/s72-c/Bild+9.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-1943809330502282239</id><published>2011-02-18T10:59:00.001+01:00</published><updated>2011-02-18T11:01:28.338+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SOAP"/><category scheme="http://www.blogger.com/atom/ns#" term="VisualBasic"/><category scheme="http://www.blogger.com/atom/ns#" term="VisualStudio"/><category scheme="http://www.blogger.com/atom/ns#" term="WebService"/><category scheme="http://www.blogger.com/atom/ns#" term="WSDL"/><title type='text'>ASP.NET: Consuming a PHP WSDL SOAP Webservice</title><content type='html'>After starting Visual Studio we create a new Visual Basic ASP.NET Web Application project:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0jrDzLGNi_p3cD0INc3jiiHjy8fjYPWQ50z7BgZcp0NX5FgWczTW-diIfYHb6AQHuRL0VXsB0R4ks3sbXqPJ08YmTkhw0Fr1eAmDKD9m1sYLqkyKBOJ2FXHfIUe7rr25EqS3jdw4FglY/s1600/screenshot-vs-01.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0jrDzLGNi_p3cD0INc3jiiHjy8fjYPWQ50z7BgZcp0NX5FgWczTW-diIfYHb6AQHuRL0VXsB0R4ks3sbXqPJ08YmTkhw0Fr1eAmDKD9m1sYLqkyKBOJ2FXHfIUe7rr25EqS3jdw4FglY/s400/screenshot-vs-01.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
After it opens up we right-click on the project name in the &quot;Solution Explorer&quot; and choose &quot;Add Web Reference...&quot;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieHZfjvHzDJkMbQ1dIURJlKXN0GI-_qhwfn4g9vZ3jytFQnC-5jZD4rBkJc3QB5DWv5ts8btYDZ8Doomy1QrtILpaCAA8RZQ-t7vgAzzNtFcMN2fGGZe-TjFrdzjyfvjOhy09v7DZcfUY/s1600/screenshot-vs-02.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieHZfjvHzDJkMbQ1dIURJlKXN0GI-_qhwfn4g9vZ3jytFQnC-5jZD4rBkJc3QB5DWv5ts8btYDZ8Doomy1QrtILpaCAA8RZQ-t7vgAzzNtFcMN2fGGZe-TjFrdzjyfvjOhy09v7DZcfUY/s400/screenshot-vs-02.jpg&quot; width=&quot;265&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Now we can enter the URL of the WSDL file &#39;http://customer-ws.tld/customer-ws_Customers.wsdl&#39; and press &#39;Enter&#39;. Visual Studio fetches all the information provided by the xml file and shows up all the data:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlpXN0epV-uRmiC7nL02OJsW449Id_5w3ElBsPC2q1bys3___Jcz9i0TMA8oy_-4KrfnZI7ygvgNtWAIMpIcpikSFoG9-2SRaR3bv6iZsFhoQwWyWIBrB2u7DVG2s5MCZcy24vht7Q7wM/s1600/screenshot-vs-03.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlpXN0epV-uRmiC7nL02OJsW449Id_5w3ElBsPC2q1bys3___Jcz9i0TMA8oy_-4KrfnZI7ygvgNtWAIMpIcpikSFoG9-2SRaR3bv6iZsFhoQwWyWIBrB2u7DVG2s5MCZcy24vht7Q7wM/s320/screenshot-vs-03.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
We enter a &quot;Web reference name&quot; (I choose &#39;WSDLWebService&#39;) and click on &quot;Add Reference&quot;.&amp;nbsp;Now we can see the entered Web Reference in the &quot;Solution Explorer&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1KrTahnyvv57qvxd-C6E57Fi_1V-1WacWto3JyIAJuCmEihXY4WMRM6nt_Oa_BJ-taM1kJaOL5Hj49xFyqjTzw_FgGr-qi8nTLXRjLxbBIekW17-09ZXGGf8cOxpOiVrJwlkbra5SB0M/s1600/screenshot-vs-04.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1KrTahnyvv57qvxd-C6E57Fi_1V-1WacWto3JyIAJuCmEihXY4WMRM6nt_Oa_BJ-taM1kJaOL5Hj49xFyqjTzw_FgGr-qi8nTLXRjLxbBIekW17-09ZXGGf8cOxpOiVrJwlkbra5SB0M/s400/screenshot-vs-04.jpg&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Now we right-click the Web Reference called &quot;WSDLWebService&quot; and choose &quot;View in Object Window&quot;:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmdAQg0K1e391nRVGwWKalHK-Jnj3uCpDM0nL4Sc7__onUQQ7jgWpXkK6SKbsof836x2j47YnAZwQV5Xxg7_agW5PCTPzPK9mnmzd7z-gy8wOLJvs7g6rQ8DoTLvOTPUvUtjywO7ppFTM/s1600/screenshot-vs-05.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmdAQg0K1e391nRVGwWKalHK-Jnj3uCpDM0nL4Sc7__onUQQ7jgWpXkK6SKbsof836x2j47YnAZwQV5Xxg7_agW5PCTPzPK9mnmzd7z-gy8wOLJvs7g6rQ8DoTLvOTPUvUtjywO7ppFTM/s1600/screenshot-vs-05.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;We can see here that Visual Studio has created all the objects and methods that the WSDL file announced.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;So we go to the &quot;Code Editor&quot; of our Default.aspx by right-clicking the file in the &quot;Solution Explorer&quot; and enter the following lines:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Public Class _Default&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Inherits System.Web.UI.Page&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim CallWebservice As New WSDLWebService.customer-ws_Customers&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim Cache As System.Net.CredentialCache = New System.Net.CredentialCache&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim vUserId As String&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vUserId = &quot;1889941&quot;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim vCustomer() As WSDLWebService.Customer&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;vCustomer = CallWebservice.getCustomers()&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Label1.Text = vCustomer.length&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;End Sub&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;End Class&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;I have added a Label with the ID &quot;Label1&quot; with the &quot;Designer&quot; and the Toolbar to the Default-Page:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9DJIsYqE3QRU-wWrQ8kb9UgRzJbCPCmM1wD8wtcUKrw-YsvLakUUiTe0QJUGZ10JRhyAi91maBEZORDcN2LPPBm9rODP_-ZiNRVCmLc1Cjqm9ag5a-7hwREaGQK7hD33sZt2a2aZlX84/s1600/screenshot-vs-08.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9DJIsYqE3QRU-wWrQ8kb9UgRzJbCPCmM1wD8wtcUKrw-YsvLakUUiTe0QJUGZ10JRhyAi91maBEZORDcN2LPPBm9rODP_-ZiNRVCmLc1Cjqm9ag5a-7hwREaGQK7hD33sZt2a2aZlX84/s400/screenshot-vs-08.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Now we can press debug and the Internet Explorer should pop up and display in the Label1 field the amount of Customers returned by the WebService.&lt;br /&gt;
&lt;br /&gt;
More information about SOAP Webservices:&lt;br /&gt;
&lt;a href=&quot;http://arnekroeger.blogspot.com/2011/02/php-soap-creating-and-consuming-wsdl.html&quot;&gt;PHP : SOAP: Creating and Consuming a WSDL Web-Service&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/1943809330502282239/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/aspnet-consuming-php-wsdl-soap.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/1943809330502282239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/1943809330502282239'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/aspnet-consuming-php-wsdl-soap.html' title='ASP.NET: Consuming a PHP WSDL SOAP Webservice'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0jrDzLGNi_p3cD0INc3jiiHjy8fjYPWQ50z7BgZcp0NX5FgWczTW-diIfYHb6AQHuRL0VXsB0R4ks3sbXqPJ08YmTkhw0Fr1eAmDKD9m1sYLqkyKBOJ2FXHfIUe7rr25EqS3jdw4FglY/s72-c/screenshot-vs-01.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-8278366625636945550</id><published>2011-02-17T11:17:00.000+01:00</published><updated>2011-02-17T11:17:17.210+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SOAP"/><category scheme="http://www.blogger.com/atom/ns#" term="WebService"/><category scheme="http://www.blogger.com/atom/ns#" term="WSDL"/><title type='text'>PHP: SOAP: Handle requests with class functions</title><content type='html'>To use a PHP class to handle the requests fetched by the server script you can simply assign the class file to the server:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;$vClassName = &#39;MyHandlerClassName&#39;;&lt;br /&gt;
$vServer = new SoapServer(&#39;customer-ws_Customers.wsdl&#39;);&lt;br /&gt;
$vServer-&amp;gt;setClass($vClassName); &lt;br /&gt;
$vServer-&amp;gt;handle();&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
More information about SOAP Webservices:&amp;nbsp;&lt;br /&gt;
&lt;a href=&quot;http://arnekroeger.blogspot.com/2011/02/php-soap-creating-and-consuming-wsdl.html&quot;&gt;PHP : SOAP: Creating and Consuming a WSDL Web-Service&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/8278366625636945550/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-handle-requests-with-class.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/8278366625636945550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/8278366625636945550'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-handle-requests-with-class.html' title='PHP: SOAP: Handle requests with class functions'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-5546393658052711902</id><published>2011-02-17T11:07:00.000+01:00</published><updated>2011-02-17T11:07:36.812+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SOAP"/><category scheme="http://www.blogger.com/atom/ns#" term="WebService"/><category scheme="http://www.blogger.com/atom/ns#" term="WSDL"/><title type='text'>PHP : SOAP: Creating and Consuming a WSDL Web-Service</title><content type='html'>WebServices are very usefull if you need an common interface between external applications and your software. Especially WSDL driven WebServices are widely supported by many programming languages. Some SDKs offer possibilities to automatically create classes, functions and objects that you need to interact with the WSDL WebService.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;u&gt;The WSDL File&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
The WSDL File is an xml file that contains all information about the interface.&lt;br /&gt;
So we will find here information about the functionality the interface offers and how to access it. It also delivers the definition of parameters and return values required/delivered by the interface.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&amp;lt;?xml version =&#39;1.0&#39; encoding =&#39;iso-8859-1&#39; ?&amp;gt;&lt;br /&gt;
&amp;lt;wsdl:definitions&lt;br /&gt;
xmlns:soap=&quot;http://schemas.xmlsoap.org/wsdl/soap/&quot;&lt;br /&gt;
xmlns:tm=&quot;http://microsoft.com/wsdl/mime/textMatching/&quot;&lt;br /&gt;
xmlns:soapenc=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&lt;br /&gt;
xmlns:mime=&quot;http://schemas.xmlsoap.org/wsdl/mime/&quot;&lt;br /&gt;
xmlns:tns=&quot;http://customer-ws.tld/customer-ws_Customers.wsdl&quot;&lt;br /&gt;
xmlns:s=&quot;http://www.w3.org/2001/XMLSchema&quot;&lt;br /&gt;
xmlns:soap12=&quot;http://schemas.xmlsoap.org/wsdl/soap12/&quot;&lt;br /&gt;
xmlns:http=&quot;http://schemas.xmlsoap.org/wsdl/http/&quot;&lt;br /&gt;
xmlns:wsdl=&quot;http://schemas.xmlsoap.org/wsdl/&quot;&lt;br /&gt;
targetNamespace=&quot;http://customer-ws.tld/customer-ws_Customers.wsdl&quot;&lt;br /&gt;
name=&quot;customer-WS&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The definitions are requiered by the clients who access the WSDL-File to get information about the structure of the WSDL file and how to parse it.&lt;br /&gt;
&lt;i&gt;targetNamespace &lt;/i&gt;and&amp;nbsp;&lt;i&gt;xmlns:tns&lt;/i&gt; are set to the URL (in my case:&amp;nbsp;http://customer-ws.tld/customer-ws_Customers.wsdl) of the WSDL file.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Complex Types&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;wsdl:types&amp;gt;&lt;br /&gt;
&amp;lt;s:schema&lt;br /&gt;
targetNamespace=&quot;http://customer-ws.tld/customer-ws_Customers.wsdl&quot;&lt;br /&gt;
xmlns:tns=&quot;http://customer-ws.tld/PAF/customer-ws_Customers.wsdl&quot;&amp;gt;&lt;br /&gt;
&amp;lt;s:complexType name=&quot;Customer&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;s:sequence&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;customerNr&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;salutation&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;title&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;firstname&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;lastname&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;phone&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;fax&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;email&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;postalZip&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;postalCityName&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;postalStreet&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;postalStreetNumber&quot; type=&quot;s:string&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/s:sequence&amp;gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&lt;br /&gt;
&amp;lt;/s:complexType&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&amp;lt;s:complexType name=&quot;CustomerArray&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;s:complexContent&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;s:restriction base=&quot;soapenc:Array&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;s:attribute ref=&quot;soapenc:arrayType&quot; wsdl:arrayType=&quot;tns:Customer[]&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/s:restriction&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/s:complexContent&amp;gt;&lt;br /&gt;
&amp;lt;/s:complexType&amp;gt;&lt;br /&gt;
&amp;lt;/s:schema&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:types&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The WSDL delivers simple data types like int, string etc. but in most cases we need much more complex data structures that have to be returned by our service. We have to define complex data types in the WSDL xml file. We define an object called &#39;Customer&#39; and a type &#39;CustomerArray&#39; which is an array consists of &#39;Customer&#39; objects.&lt;br /&gt;
&lt;br /&gt;
The Customer objects has the following attributes:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;customerNr&lt;/li&gt;
&lt;li&gt;salutation&lt;/li&gt;
&lt;li&gt;title&lt;/li&gt;
&lt;li&gt;firstname&lt;/li&gt;
&lt;li&gt;lastname&lt;/li&gt;
&lt;li&gt;phone&lt;/li&gt;
&lt;li&gt;fax&lt;/li&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;postalZip&lt;/li&gt;
&lt;li&gt;postalCityName&lt;/li&gt;
&lt;li&gt;postalStreet&lt;/li&gt;
&lt;li&gt;postalStreetNumber&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Methods&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Now it&#39;s time to define the methods our WebService should offer. For now we are creating 3 different methods:&lt;br /&gt;
&lt;br /&gt;
1. getCustomers()&lt;br /&gt;
It returns an array of Customer objects.&lt;br /&gt;
&lt;br /&gt;
2. getCustomer(aCustomerId)&lt;br /&gt;
It returns the customer with the given &#39;aCustomerId&#39; as an Customer object&lt;br /&gt;
&lt;br /&gt;
3. sendCustomer(aCustomer)&lt;br /&gt;
It sends a Customer Object to the server and returns the new Customer object.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;wsdl:message name=&#39;getCustomersRequest&#39;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;
&amp;lt;wsdl:message name=&#39;getCustomersResponse&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:part name=&#39;Result&#39; type=&#39;tns:CustomerArray&#39;/&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;
&amp;lt;wsdl:message name=&#39;getCustomerRequest&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:part name=&#39;aCustomerId&#39; type=&#39;s:string&#39;/&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;
&amp;lt;wsdl:message name=&#39;getCustomerResponse&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:part name=&#39;Result&#39; type=&#39;tns:Customer&#39;/&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;
&amp;lt;wsdl:message name=&#39;sendCustomerRequest&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:part name=&#39;aCustomer&#39; type=&#39;tns:Customer&#39;/&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;
&amp;lt;wsdl:message name=&#39;sendCustomerResponse&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:part name=&#39;Result&#39; type=&#39;tns:Customer&#39;/&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;wsdl:portType name=&#39;CustomerPortType&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:operation name=&#39;getCustomers&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input message=&#39;tns:getCustomersRequest&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output message=&#39;tns:getCustomersResponse&#39;/&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:operation name=&#39;getCustomer&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input message=&#39;tns:getCustomerRequest&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output message=&#39;tns:getCustomerResponse&#39;/&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:operation name=&#39;sendCustomer&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input message=&#39;tns:sendCustomerRequest&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output message=&#39;tns:sendCustomerResponse&#39;/&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:operation&amp;gt; &amp;nbsp; &lt;br /&gt;
&amp;lt;/wsdl:portType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;wsdl:binding name=&#39;ServiceSoap&#39; type=&#39;tns:CustomerPortType&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;soap:binding style=&#39;rpc&#39; transport=&#39;http://schemas.xmlsoap.org/soap/http&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:operation name=&#39;getCustomers&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&#39;urn:customer-ws.tld-scramble#getCustomers&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&#39;encoded&#39; namespace=&#39;urn:customer-ws.tld-scramble&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;encodingStyle=&#39;http://schemas.xmlsoap.org/soap/encoding/&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&#39;encoded&#39; namespace=&#39;urn:customer-ws.tld-scramble&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;encodingStyle=&#39;http://schemas.xmlsoap.org/soap/encoding/&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:operation name=&#39;getCustomer&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&#39;urn:customer-ws.tld-scramble#getCustomer&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&#39;encoded&#39; namespace=&#39;urn:customer-ws.tld-scramble&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;encodingStyle=&#39;http://schemas.xmlsoap.org/soap/encoding/&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&#39;encoded&#39; namespace=&#39;urn:customer-ws.tld-scramble&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;encodingStyle=&#39;http://schemas.xmlsoap.org/soap/encoding/&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:operation&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:operation name=&#39;sendCustomer&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;soap:operation soapAction=&#39;urn:customer-ws.tld-scramble#sendCustomer&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:input&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&#39;encoded&#39; namespace=&#39;urn:customer-ws.tld-scramble&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;encodingStyle=&#39;http://schemas.xmlsoap.org/soap/encoding/&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:input&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;wsdl:output&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;soap:body use=&#39;encoded&#39; namespace=&#39;urn:customer-ws.tld-scramble&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;encodingStyle=&#39;http://schemas.xmlsoap.org/soap/encoding/&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/wsdl:output&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:operation&amp;gt; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;lt;/wsdl:binding&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;WSDL method definitions always consists of two parts:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Request&lt;/li&gt;
&lt;li&gt;Response&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
The request defines the handle of the data send to the server and the response the resultset.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Service-Definition&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
The service definition describes how the WebService is accessed and where the server component is located.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;wsdl:service name=&#39;customer-WS&#39;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;wsdl:port name=&quot;ServiceSoap&quot; binding=&quot;tns:ServiceSoap&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;soap:address location=&#39;http://customer-ws.tld/server.php&#39;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/wsdl:port&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:service&amp;gt;&lt;br /&gt;
&amp;lt;/wsdl:definitions&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;u&gt;&lt;b&gt;The SOAP server&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;br /&gt;
First of all we create a new PHP class that extends the SoapServer class delivered with PHP (if compiled in: for more details see &lt;a href=&quot;http://www.php.net/manual/en/soap.installation.php&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;): &lt;br /&gt;
MySoapServer.class.php&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;?php&lt;br /&gt;
&amp;nbsp;if(class_exists(&#39;SoapServer&#39;)){&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;class Customer_SoapServer extends SoapServer {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Now we create the Customer class that we previously defined in the WSDL file:&lt;br /&gt;
Customer.class.php&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;?php&lt;br /&gt;
class Customer {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $customerNr;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $salutation;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $title;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $firstname;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $lastname;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $phone;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $fax;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $email;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $postalZip;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $postalCityName;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $postalStreet;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public $postalStreetNumber;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Then we create the server script, that initializes the SOAP server and supplies the functions we have defined in the WSDL file:&lt;br /&gt;
server.php&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;?php&lt;br /&gt;
include(&#39;Customer_SoapServer.class.php&#39;);&lt;br /&gt;
include(&#39;Customer.class.php&#39;);&lt;br /&gt;
&lt;br /&gt;
public function getCustomers(){&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vCustomers = CustomerUtility::getAllCustomersArray();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vReturnArray = array();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;foreach($vCustomers as $vCustomerId =&amp;gt; $vCustomer){&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;$vWSCustomer = getWSCustomer($vCustomer);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;$vReturnArray[] = $vWSCustomer;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return $vReturnArray;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function getWSCustomer($vCustomer){&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer = new Customer();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;customerNr = $vCustomer[&#39;id_user&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;salutation = $vCustomer[&#39;salutation&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;title = $vCustomer[&#39;title&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;firstname = $vCustomer[&#39;firstname&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;lastname = $vCustomer[&#39;lastname&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;phone = $vCustomer[&#39;tel&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;fax = $vCustomer[&#39;fax&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;email = $vCustomer[&#39;email&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;postalZip = $vCustomer[&#39;postal_zip&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;postalCityName = $vCustomer[&#39;postal_city&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;postalStreet = $vCustomer[&#39;postal_street&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer-&amp;gt;postalStreetNumber = $vCustomer[&#39;postal_streetnumber&#39;];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return $vWSCustomer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function getCustomer($aCustomerNr){&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vWSCustomer = getWSCustomer(CustomerUtility::getCustomerArrayByCustomerNr($aCustomerNr));&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return $vWSCustomer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function sendCustomer($aWSCustomer){&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vCustomer = CustomerUtility::storeCustomer($aWSCustomer);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return getCustomer($aWSCustomer-&amp;gt;customerNr);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// turn off the wsdl cache&lt;br /&gt;
ini_set(&quot;soap.wsdl_cache_enabled&quot;, &quot;0&quot;);&lt;br /&gt;
&lt;br /&gt;
$vServer = new Customer_SoapServer(&quot;customer-ws_Customers.wsdl&quot;);&lt;br /&gt;
&lt;br /&gt;
$vServer-&amp;gt;addFunction(&quot;getCustomers&quot;);&lt;br /&gt;
$vServer-&amp;gt;addFunction(&quot;getCustomer&quot;);&lt;br /&gt;
$vServer-&amp;gt;addFunction(&quot;sendCustomer&quot;);&lt;br /&gt;
&lt;br /&gt;
$vServer-&amp;gt;handle();&lt;br /&gt;
?&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;ve left out the actions inside the CustomerUtility because anything can be done here: fetching/storing from/to database etc.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;u&gt;&lt;b&gt;The SOAP client&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;br /&gt;
Now we create the SOAP client script that fetches the data from the WSDL file and connects to the soap server and fetches the data.&lt;br /&gt;
client.php:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;span style=&quot;font-family: Times; font-size: 12px;&quot;&gt;&amp;lt;?php&lt;br /&gt;
include(&#39;Customer.class.php&#39;);&lt;br /&gt;
&lt;br /&gt;
// turn off the WSDL cache&lt;br /&gt;
ini_set(&#39;soap.wsdl_cache_enabled&#39;, &#39;0&#39;);&lt;br /&gt;
$vLocation = &#39;http://customer-ws.tld/server.php&#39;;&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vSoapClient = new SoapClient(&#39;http://customer-ws.tld/customer-ws_Customers.wsdl&#39;,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;array(&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&quot;location&quot; =&amp;gt; $vLocation,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&quot;trace&quot;=&amp;gt;1, &quot;exceptions&quot;=&amp;gt;1&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vFunctions = $vSoapClient-&amp;gt;__getFunctions();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;var_dump($vFunctions);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;/pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vCustomerObjectArray = $vSoapClient-&amp;gt;__soapCall( &#39;getCustomers&#39;, array());&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;var_dump($vCustomerObjectArray);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;/pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vSingleCustomerObject = $vCustomerObjectArray[0];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;var_dump($vSingleCustomerObject);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;/pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vSingleCustomerObject-&amp;gt;lastname = &quot;My-Changed-Lastname&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;$vSendCustomerObject = $vSoapClient-&amp;gt;__soapCall( &#39;sendCustomers&#39;, array($vSingleCustomerObject));&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;pre&amp;gt;&quot;;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;var_dump($vSendCustomerObject);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;&amp;lt;/pre&amp;gt;&quot;;&lt;br /&gt;
}catch (SoapFault $vException) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo &quot;Error:&amp;lt;br /&amp;gt;&quot; . nl2br($vException-&amp;gt;faultcode) . &#39;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Error Details:&amp;lt;br /&amp;gt;&#39;. nl2br($vException-&amp;gt;faultstring) . &#39;&amp;lt;br /&amp;gt;&#39;;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo(&quot;&amp;lt;br /&amp;gt;REQUEST :&amp;lt;br /&amp;gt;&quot; . htmlspecialchars($vSoapClient-&amp;gt;__getLastRequest()) . &quot;&amp;lt;br /&amp;gt;&quot;);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo(&quot;&amp;lt;br /&amp;gt;RESPONSE:&amp;lt;br /&amp;gt;&quot; .htmlspecialchars($vSoapClient-&amp;gt;__getLastResponse()) . &quot;&amp;lt;br /&amp;gt;&quot;);&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
After we connect to the server, we display all functions (__getFunctions) available by the SOAP webservice. Then we call the getCustomers function and the server responds with an array of customers and we take out the first customer, change its lastname to &quot;My-Changed-Lastname&quot; and send this object back to the server.</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/5546393658052711902/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-creating-and-consuming-wsdl.html#comment-form' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/5546393658052711902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/5546393658052711902'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-creating-and-consuming-wsdl.html' title='PHP : SOAP: Creating and Consuming a WSDL Web-Service'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-4662091659876012157</id><published>2011-02-14T13:19:00.008+01:00</published><updated>2011-02-17T11:18:11.456+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SOAP"/><category scheme="http://www.blogger.com/atom/ns#" term="WebService"/><title type='text'>PHP SOAP: error: Procedure &#39;abc&#39; not present</title><content type='html'>This error happens if the WSDL doesn&#39;t return this method.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&amp;gt; &lt;br /&gt;
&amp;lt;SOAP-ENV:Body&amp;gt; &lt;br /&gt;
&amp;lt;SOAP-ENV:Fault&amp;gt; &lt;br /&gt;
&amp;lt;faultcode&amp;gt;SOAP-ENV:Server&amp;lt;/faultcode&amp;gt; &lt;br /&gt;
&amp;lt;faultstring&amp;gt;Procedure &#39;abc&#39; not present&amp;lt;/faultstring&amp;gt; &lt;br /&gt;
&amp;lt;/SOAP-ENV:Fault&amp;gt; &lt;br /&gt;
&amp;lt;/SOAP-ENV:Body&amp;gt; &lt;br /&gt;
&amp;lt;/SOAP-ENV:Envelope&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Most of the time the problem is that the &lt;a href=&quot;http://php.net/manual/en/book.soap.php&quot; target=&quot;_blank&quot;&gt;SOAP&lt;/a&gt; client/server components cache the wsdl file and changes aren&#39;t refreshed when calling it. So you should simply delete those cache files (exact position where the cache-files are stored can be obtained from phpinfo()):&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
rm /tmp/wsdl-*&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Credits goes to:&amp;nbsp;&lt;a href=&quot;http://artur.ejsmont.org/blog/content/php-soap-error-procedure-xxx-not-present&quot; target=&quot;_blank&quot;&gt;http://artur.ejsmont.org/blog/content/php-soap-error-procedure-xxx-not-present&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
More information about SOAP Webservices:&amp;nbsp;&lt;br /&gt;
&lt;a href=&quot;http://arnekroeger.blogspot.com/2011/02/php-soap-creating-and-consuming-wsdl.html&quot;&gt;PHP : SOAP: Creating and Consuming a WSDL Web-Service&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/4662091659876012157/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-error-procedure-abc-not.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/4662091659876012157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/4662091659876012157'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-error-procedure-abc-not.html' title='PHP SOAP: error: Procedure &#39;abc&#39; not present'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-2662252156353705086</id><published>2011-02-11T14:23:00.001+01:00</published><updated>2011-02-17T11:18:43.830+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SOAP"/><category scheme="http://www.blogger.com/atom/ns#" term="WebService"/><title type='text'>PHP SOAP: error: looks like we got no XML document</title><content type='html'>This error has driven me crazy for hours.&lt;br /&gt;
&lt;br /&gt;
The solution is much easier than it sounds:&lt;br /&gt;
&lt;br /&gt;
The &lt;a href=&quot;http://php.net/manual/en/book.soap.php&quot;&gt;SOAP&lt;/a&gt; Client in PHP expects plain XML without any control characters.&lt;br /&gt;
In my case I had 2 trailing newline character in one of the PHP files which were included during the initialization of the soap server.&lt;br /&gt;
&lt;br /&gt;
I just removed all trailing characters after the &#39;?&amp;gt;&#39; in all PHP files and everything worked perfectly.&lt;br /&gt;
&lt;br /&gt;
More information about SOAP Webservices:&amp;nbsp;&lt;br /&gt;
&lt;a href=&quot;http://arnekroeger.blogspot.com/2011/02/php-soap-creating-and-consuming-wsdl.html&quot;&gt;PHP : SOAP: Creating and Consuming a WSDL Web-Service&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/2662252156353705086/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-error-looks-like-we-got-no-xml.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/2662252156353705086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/2662252156353705086'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/php-soap-error-looks-like-we-got-no-xml.html' title='PHP SOAP: error: looks like we got no XML document'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7508232443182451702</id><published>2011-02-03T15:32:00.000+01:00</published><updated>2011-02-03T15:32:20.648+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Movie"/><category scheme="http://www.blogger.com/atom/ns#" term="Youtube"/><title type='text'>Despicable Me - Mini-Movie &#39;Banana&#39; Preview</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;object class=&quot;BLOGGER-youtube-video&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot; data-thumbnail-src=&quot;http://1.gvt0.com/vi/BYBw_o_2nG0/0.jpg&quot; height=&quot;266&quot; width=&quot;320&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/BYBw_o_2nG0&amp;fs=1&amp;source=uds&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;&lt;embed width=&quot;320&quot; height=&quot;266&quot; src=&quot;http://www.youtube.com/v/BYBw_o_2nG0&amp;fs=1&amp;source=uds&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7508232443182451702/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/despicable-me-mini-movie-banana-preview.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7508232443182451702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7508232443182451702'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/despicable-me-mini-movie-banana-preview.html' title='Despicable Me - Mini-Movie &#39;Banana&#39; Preview'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7587672377163037989</id><published>2011-02-03T14:46:00.002+01:00</published><updated>2011-02-04T14:09:42.575+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Tracking"/><title type='text'>DHL Tracking with PHP v0.1</title><content type='html'>The german post (packet service: &lt;a href=&quot;http://www.dhl.de/de.html&quot; target=&quot;_blank&quot;&gt;DHL&lt;/a&gt;) provides a XML webservice which gives information about the delivery state.&amp;nbsp;It just returns the current state and not the whole history, so I&#39;ve written a short &lt;a href=&quot;http://www.php.net/&quot; target=&quot;_blank&quot;&gt;PHP&lt;/a&gt; script which is pulling the state from the webservice and enters the data to a &lt;a href=&quot;http://www.mysql.com/&quot; target=&quot;_blank&quot;&gt;MySQL&lt;/a&gt; database.&lt;br /&gt;
It compares the current state and the last inserted state and sends an email when the status is saved.&lt;br /&gt;
It allows me to stay informed.&lt;br /&gt;
&lt;br /&gt;
Online-Shop like &lt;a href=&quot;http://www.amazon.com/&quot; target=&quot;_blank&quot;&gt;Amazon&lt;/a&gt; refreshes their state not live so newer information could be available before Amazon ist displaying it.&lt;br /&gt;
&lt;br /&gt;
From time to time I will extend the script with &lt;a href=&quot;http://maps.google.com/&quot; target=&quot;_blank&quot;&gt;Google Maps&lt;/a&gt; support (the webservice cotains localization data) and hopefully some other delivery services like UPS etc.&lt;br /&gt;
&lt;br /&gt;
Tell me if you have any suggestions for future versions.&lt;br /&gt;
&lt;br /&gt;
Create the tables in a MySQL Database:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
CREATE TABLE `delivery_type` (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`id` bigint(20) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`identifier` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`function_name` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;PRIMARY KEY (`id`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `delivery_type` (`id`,`identifier`,`function_name`)&lt;br /&gt;
VALUES&lt;br /&gt;
(1, &#39;dhl&#39;, &#39;dhl_tracking&#39;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `packet_tracking` (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`id` bigint(20) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`id_delivery_type` bigint(20) NOT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`identifier` varchar(255) NOT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`id_status` bigint(20) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`creation_date` bigint(20) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`last_action` bigint(20) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;PRIMARY KEY (`id`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `tracking_event` (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`id` bigint(20) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`id_packet` bigint(20) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`city` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`country` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`recipient` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`event_timestamp` bigint(20) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`status_text` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`next_status_text` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`standard_event_code` varchar(2) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;`product_name` varchar(255) DEFAULT NULL,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;PRIMARY KEY (`id`)&lt;br /&gt;
) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
And the PHP scripts:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;connect.php&lt;/b&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
$vHost = &#39;hostname&#39;;&lt;br /&gt;
$vPort = &#39;port&#39;;&lt;br /&gt;
$vUser = &#39;username&#39;;&lt;br /&gt;
$vPassword = &#39;password&#39;;&lt;br /&gt;
$vDatabase = &#39;database-name&#39;;&lt;br /&gt;
&lt;br /&gt;
$vConn = mysql_pconnect($vHost . &#39;:&#39; . $vPort, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$vUser, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$vPassword);&lt;br /&gt;
mysql_select_db($vDatabase, $vConn);&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;tracking.php&lt;/b&gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;pre&gt;include(&#39;connect.php&#39;);

function dhl_tracking(
   $aTrackingNumber, 
   $aPacketId = 1, 
   $aLastAction = null){
   
   
 global $vConn;
 
 $vRootMail = &quot;mail@mail.de&quot;;
 
 $vData  = &#39;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&amp;gt;&#39;;
 $vData .= &#39;&amp;lt;data appname=&quot;nol-public&quot; password=&quot;anfang&quot; 
   request=&quot;get-status-for-public-user&quot; 
   language-code=&quot;de&quot;&amp;gt;&#39;;
 $vData .= &#39;  &amp;lt;data 
   piece-code=&quot;&#39;.$aTrackingNumber.&#39;&quot;&amp;gt;&amp;lt;/data&amp;gt;&#39;;
 $vData .= &#39;&amp;lt;/data&amp;gt;&#39;;

 // URL bauen und File hohlen
 $vXml = simplexml_load_file(sprintf(
  &#39;http://nolp.dhl.de/nextt-online-public/direct/nexttjlibpublicservlet?xml=%s&#39;, 
  $vData));
 
 // FALSE, if Syntax or HTTP Error
 if ($vXml === false) return false;

 $vReturn = array();
 
 // coverts xml to array
 foreach ($vXml-&amp;gt;data-&amp;gt;data-&amp;gt;attributes() 
    as $vKey =&amp;gt; $vValue) {
  $vReturn[$vKey] = (string) $vValue;
 }

 $vActionTime = strptime(
  $vReturn[&#39;last-event-timestamp&#39;], 
  &#39;%d.%m.%y %H:%M&#39;);

 $vActionTime = mktime(
  $vActionTime[&#39;tm_hour&#39;], 
  $vActionTime[&#39;tm_min&#39;], 
  0, 
  $vActionTime[&#39;tm_mon&#39;]+1, 
  $vActionTime[&#39;tm_mday&#39;], 
  1900+$vActionTime[&#39;tm_year&#39;]);

 if($aLastAction === null || $vActionTime 
   &amp;gt; $aLastAction){
  
  mysql_query(&quot;INSERT INTO tracking_event values (
   null, 
   $aPacketId, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;event-location&#39;]) . &quot;&#39;, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;event-country&#39;]) . &quot;&#39;, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;recipient-name&#39;]) . &quot;&#39;, 
   &quot; . $vActionTime . &quot;, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;status&#39;]) . &quot;&#39;, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;status-next&#39;]) . &quot;&#39;, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;standard-event-code&#39;]) . &quot;&#39;, 
   &#39;&quot; . mysql_real_escape_string(
     $vReturn[&#39;product-name&#39;]) . &quot;&#39;)&quot;, 
   $vConn);

   $vStatus = (int)(
    $vReturn[&#39;delivery-event-flag&#39;] == &#39;1&#39;
    );
   mysql_query(&quot;UPDATE packet_tracking set 
    last_action = $vActionTime, 
    id_status = $vStatus 
    where id = $aPacketId&quot;, $vConn);
   
   $vMessage = var_export($vReturn,true);
   mail($vRootMail, 
    &quot;TRACKING-TOOL: New Event Found&quot;, 
    $vMessage);
 }
 
 return $vReturn;
}

function processAllOpenTrackings(){
 global $vConn;
 
 $vResult = mysql_query(&quot;SELECT pt.*, dt.function_name 
  FROM packet_tracking pt, delivery_type dt 
  where pt.id_delivery_type = dt.id and pt.id_status = 0&quot;, 
  $vConn);

 while ($vRow = mysql_fetch_array($vResult, MYSQL_ASSOC)) {
  call_user_func(
   $vRow[&#39;function_name&#39;], 
   $vRow[&#39;identifier&#39;], 
   $vRow[&#39;id&#39;], 
   $vRow[&#39;last_action&#39;]);
 }
}

processAllOpenTrackings();
?&amp;gt;
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Just create a new set in the &#39;packet_tracking&#39; table and call the script. I have entered a Cron Entry and call the script via wget. Files are attached...&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://sites.google.com/site/arnekroeger/tracking.0.1.zip?attredirects=0&amp;amp;d=1&quot;&gt;Tracking v0.1&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7587672377163037989/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/dhl-tracking-with-php-v01.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7587672377163037989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7587672377163037989'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/dhl-tracking-with-php-v01.html' title='DHL Tracking with PHP v0.1'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7568180263178735870</id><published>2011-02-03T11:10:00.000+01:00</published><updated>2011-02-03T11:18:45.541+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Movie"/><category scheme="http://www.blogger.com/atom/ns#" term="Vimeo"/><title type='text'>Inception Explosion Dubbreak.de</title><content type='html'>Great video by&amp;nbsp;&lt;a href=&quot;http://www.youtube.com/user/SaladUK&quot;&gt;SaladUK&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;225&quot; src=&quot;http://player.vimeo.com/video/19252893&quot; width=&quot;400&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href=&quot;http://vimeo.com/19252893&quot;&gt;Inception Explosion Dubbreak.de&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/dubbreak&quot;&gt;BassDrum&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Music:&amp;nbsp;Butch Clancy - Russian Lullaby</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7568180263178735870/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/inception-explosion-dubbreakde.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7568180263178735870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7568180263178735870'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/inception-explosion-dubbreakde.html' title='Inception Explosion Dubbreak.de'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-7936807928756171170</id><published>2011-02-02T17:06:00.004+01:00</published><updated>2011-02-04T14:11:07.520+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Text"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>Using Oracle Text Search</title><content type='html'>&lt;a href=&quot;http://www.oracle.com/&quot; target=&quot;_blank&quot;&gt;Oracle&lt;/a&gt; offers with &quot;&lt;a href=&quot;http://www.oracle.com/technetwork/database/enterprise-edition/index-098492.html&quot; target=&quot;_blank&quot;&gt;Oracle Text&lt;/a&gt;&quot;&amp;nbsp;a strong and highly adjustable Text Search to their database customers. We have used Oracle for years and 2 years ago we needed a Text-Search which has the ability to create a better sort order for search results.&lt;br /&gt;
&lt;br /&gt;
Requirement: It should be possible to specify different emphases in the search query.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;1. Object definition&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
A &#39;Product&#39; in our case has the following attributes:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Alternate title&lt;/li&gt;
&lt;li&gt;Feature&lt;/li&gt;
&lt;ol&gt;&lt;li&gt;Feature-Title&lt;/li&gt;
&lt;li&gt;Feature-Content&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Tags&lt;/li&gt;
&lt;li&gt;External links&lt;/li&gt;
&lt;li&gt;Link description&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;2. Table defintion&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
We created a help table in the database. All tags assigned to the product are written space-delimited into the PRODUCT_TAG column, the same for&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;PRODUCT_ALTERNATE_TITLE&amp;nbsp;&lt;/li&gt;
&lt;li&gt;PRODUCT_FEATURE&lt;/li&gt;
&lt;li&gt;FEATURE_CONTENT&lt;/li&gt;
&lt;li&gt;EXTERNAL_LINK&lt;/li&gt;
&lt;li&gt;LINK_DESCRIPTION&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;The CREATE TABLE statement looks like: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;code&gt; CREATE TABLE PRODUCT (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID NUMBER(38,0) NOT NULL, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_TITLE VARCHAR2(256), &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_ALTERNATE_TITLE clob, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_DESCRIPTION VARCHAR2(4000),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_TAG clob,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_FEATURE clob,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FEATURE_CONTENT clob,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXTERNAL_LINK clob,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LINK_DESCRIPTION clob&lt;br /&gt;
);&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;3. Index creation&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
First of all we need to grant the ctxapp to our user:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;grant ctxapp to MY_USER;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Then we need to create a &#39;&lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/text.102/b14218/cdatadic.htm#i1007538&quot; target=&quot;_blank&quot;&gt;Lexer&lt;/a&gt;&#39; to use the extended possibilities Oracle Text delivers:&lt;br /&gt;
&lt;blockquote&gt;&quot;base-letter conversion, composite word indexing, case-sensitive indexing and alternate spelling for whitespace-delimited languages that have extended character sets.&quot;&lt;/blockquote&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;code&gt; begin&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.create_preference(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#39;german_lexer&#39;,&#39;basic_lexer&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.set_attribute(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#39;german_lexer&#39;,&#39;composite&#39;,&#39;german&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.set_attribute (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#39;german_lexer&#39;, &#39;SKIPJOINS&#39;, &#39;-&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.create_preference (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#39;german_wordlist&#39;, &#39;BASIC_WORDLIST&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.set_attribute (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#39;german_wordlist&#39;, &#39;STEMMER&#39;, &#39;GERMAN&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
We have to create a preference for the index so that we can create an index over more than one column (&lt;a href=&quot;http://download.oracle.com/docs/cd/B28359_01/text.111/b28303/ind.htm#BGBFJACH&quot; target=&quot;_blank&quot;&gt;MULTI_COLUMN_DATASTORE&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
begin&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.create_preference(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preference_name =&amp;gt; &#39;PRODUCT_DATA_STORE&#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;object_name     =&amp;gt; &#39;MULTI_COLUMN_DATASTORE&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ctx_ddl.set_attribute(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;preference_name =&amp;gt; &#39;PRODUCT_DATA_STORE&#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attribute_name  =&amp;gt; &#39;COLUMNS&#39;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attribute_value =&amp;gt; &#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_TITLE, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_DESCRIPTION, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_ALTERNATE_TITLE, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_TAG, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_FEATURE, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FEATURE_CONTENT, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXTERNAL_LINK,LINK_DESCRIPTION&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
The creation of the index looks like:&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;code&gt; CREATE INDEX PRODUCT_FT_IDX ON PRODUCT(PRODUCT_TITLE)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INDEXTYPE IS CTXSYS.CONTEXT&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PARAMETERS(&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datastore PRODUCT_DATA_STORE &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;section group CTXSYS.AUTO_SECTION_GROUP &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LEXER german_lexer &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WORDLIST german_wordlist &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STOPLIST CTXSYS.EMPTY_STOPLIST &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SYNC (ON COMMIT)&#39;);&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The &#39;index column&#39; you have to specify is the first column from our MULTI_COLUMN_DATASTORE preference (here: PRODUCT_TITLE). The &#39;german_lexer&#39; we created before handles all the special character stuff for us.&lt;br /&gt;
&lt;br /&gt;
The &#39;german_wordlist&#39; enables some &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/text.102/b14218/cdatadic.htm#i1008929&quot; target=&quot;_blank&quot;&gt;extra functionality&lt;/a&gt; provided by oracle text:&lt;br /&gt;
&lt;blockquote&gt;&quot;Use the wordlist preference to enable the query options such as stemming, fuzzy matching for your language. You can also use the wordlist preference to enable substring and prefix indexing, which improves performance for wildcard queries with CONTAINS and CATSEARCH.&quot;&lt;/blockquote&gt;The &lt;a href=&quot;http://download.oracle.com/docs/cd/B19306_01/text.102/b14218/cdatadic.htm#i1014730&quot; target=&quot;_blank&quot;&gt;stoplist&lt;/a&gt; parameter specifies which words ahouldn&#39;t be indexed by Oracle; We don&#39;t want it so we specify a empty stoplist (CTXSYS.EMPTY_STOPLIST).&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;4. Search Query&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
Now the the index is ready and waits for better queries to use it. Our query looks like this:&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;code&gt; SELECT &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score(1) as SCORE_VALUE, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID_PRODUCT , &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_TITLE, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRODUCT_DESCRIPTION&lt;br /&gt;
FROM PRODUCT&lt;br /&gt;
WHERE CONTAINS(PRODUCT_TITLE,&#39;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(((autos) within (PRODUCT_TITLE))*10 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (PRODUCT_TITLE))*9 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (PRODUCT_TITLE))*2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (PRODUCT_DESCRIPTION))*9 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (PRODUCT_DESCRIPTION))*8 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (PRODUCT_DESCRIPTION))*2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (PRODUCT_ALTERNATE_TITLE))*8 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (PRODUCT_ALTERNATE_TITLE))*7 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (PRODUCT_ALTERNATE_TITLE))*2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (PRODUCT_TAG))*7 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (PRODUCT_TAG))*6 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (PRODUCT_TAG))*2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (PRODUCT_FEATURE))*6 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (PRODUCT_FEATURE))*5 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (PRODUCT_FEATURE))*1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (FEATURE_CONTENT))*5 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (FEATURE_CONTENT))*4 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (FEATURE_CONTENT))*1) &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (EXTERNAL_LINK))*4 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (EXTERNAL_LINK))*3 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (EXTERNAL_LINK))*1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (((autos) within (LINK_DESCRIPTION))*3 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM (($autos) within (LINK_DESCRIPTION))*2.5 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCUM ((%autos%) within (LINK_DESCRIPTION))&#39;,1)&amp;gt;0&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Now it is possible to adjust the criterias:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Is the searchstring found as the &#39;complete phrase&#39;:&amp;nbsp;(autos) within (COLUMN)&lt;/li&gt;
&lt;li&gt;Is the baseword of the searchstring found as the &#39;complete phrase&#39;:&amp;nbsp;($auto) within (COLUMN); [This means: Searching for &#39;cars&#39; should also find all occurrences of &#39;car&#39;]&lt;/li&gt;
&lt;li&gt;Is the searchstring anywhere inside the text:&amp;nbsp;(%autos%) within (COLUMN)&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
For all of this possiblities for every column we now can adjust the index score value: ((autos) within (PRODUCT_TITLE))*&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;&lt;b&gt;10&lt;/b&gt;&lt;/span&gt;. Oracle Text uses this value to calculate the score value (there are more criteria like: amount of&amp;nbsp;occurrences).&lt;br /&gt;
&lt;br /&gt;
Now we can sort the resultset after score(1) or SCORE_VALUE to get a better sort order for the search.</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/7936807928756171170/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/using-oracle-text-search.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7936807928756171170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/7936807928756171170'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/using-oracle-text-search.html' title='Using Oracle Text Search'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3935042400120719734.post-341205673896484291</id><published>2011-02-02T12:52:00.002+01:00</published><updated>2011-02-04T14:11:47.189+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blogger.com"/><category scheme="http://www.blogger.com/atom/ns#" term="Gutzmann EDV"/><title type='text'>Who I am &amp; Why this Blog</title><content type='html'>Hey Folks,&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;first Blog, first Time..&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Who I am&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
My name is Arne Kröger. I am working for a german company called &lt;a href=&quot;http://www.gutzmann.com/&quot; target=&quot;_blank&quot;&gt;Gutzmann EDV&lt;/a&gt;&amp;nbsp;as a Software Developer and Systemadministrator.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Why This Blog&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
After 5 Years of development I think it&#39;s time to give something back to all those bloggers and forum members who have helped me over the years with my nooby questions.&lt;br /&gt;
&lt;br /&gt;
But seriously, in times of Twitter, Youtube, Facebook etc. this blog takes place in the social community of Web 2.0 and we all know how funny, interesting and informative the web is. So I will also use this blog to share those things with all of you...&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions about any topics you want to read about, just write a comment to this post.&lt;br /&gt;
&lt;br /&gt;
Best regards,&lt;br /&gt;
Arne Kröger</content><link rel='replies' type='application/atom+xml' href='http://arnekroeger.blogspot.com/feeds/341205673896484291/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/who-i-am-why-this-blog.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/341205673896484291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3935042400120719734/posts/default/341205673896484291'/><link rel='alternate' type='text/html' href='http://arnekroeger.blogspot.com/2011/02/who-i-am-why-this-blog.html' title='Who I am &amp; Why this Blog'/><author><name>Arne Kröger&#39;s Blog</name><uri>http://www.blogger.com/profile/12564939506346857726</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGg2PpLaqqde13xy7BBhI7QgBcrqNASDdblSfm9Jb6DlCPHal_B6Nd1b_-81MKW_-oyCsgrdzPtj8CpcSL-nRZPNDdF1Chnw-bBhI0KPEDej1QgoZH46tEzoK8TLd2A/s220/profil.jpg'/></author><thr:total>0</thr:total></entry></feed>