11 Ekim 2008 Cumartesi

Create XSL Document Using An Existing XML Document

To create an xml schema document(XSL), you should know XSL specification. But, thank goodness, there is another time saving option. Intellij IDEA does the job for us, without any effort. Intellij IDEA is capable of generating XSL documents from existing XML files. Assuming that we have such an XML document as follows:
<table>
<column>
<name>Name</name>
<type>String</type>
</column>
<column>
<name>Surname</name>
<type>String</type>
</column>
<column>
<name>Birthday</name>
<type>Date</type>
</column>
</table>


Because we don't have an XSD file for our XML file, Intellij complains about this and cannot make syntax-highlighting. Let's resolve this issue. Go to Tools/Generate Xml Schema From Document menu option:



Then, change the filename to "xml-format.xsd" and change the value of "Detect enumerations limit" to any value less than 3. This is because, we have 3 column regions in the XML document and the values inside the column tags are not enumerations. If we don't change this value to something lower than 3, xsd generator will interpret the values inside the column tag as enumerations, and generate the xsd file based on this interpretation. So, change it to 1, for example. Then click OK.



You will get the following XSD document as a result:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="table" type="tableType"/>
<xs:complexType name="columnType">
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="String"/>
<xs:enumeration value="Date"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="tableType">
<xs:sequence>
<xs:element type="columnType" name="column" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

You can also change the format of the generated XSD document, using "Design Type" area in "Generate Schema From Instance Document" dialog box. There are 3 available choices:



But we are not done yet. We should tell our XML document the location of its schema document(XSD) which we just created before. Assuming that, our XML and XSD files are on the same path, change the first line of the XML as follows:

<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="xml-format.xsd">
<column>
<name>Namename>
<type>Stringtype>
column>
<column>
<name>Surnamename>
<type>Stringtype>
column>
<column>
<name>Birthdayname>
<type>Datetype>
column>
table>

Now, our xml editor is able to make syntax-highlighting, using the newly generated XSD file.



And now, Ctrl+Space works also. We may not write erronous XML files any more:).

9 Ekim 2008 Perşembe

NLS_DATE_FORMAT Kullanımı

SQL> select sysdate from dual;

SYSDATE
----------
09/10/2008

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

Oturum değiştirildi.

SQL> select sysdate from dual;

SYSDATE
-------------------
2008-10-09 17:27:38

30 Eylül 2008 Salı

A Nice Maven Feature In Intellij 8

There is a useful maven feature in Intellij 8. As you know, maven doesn't download the sources.jar files of the libraries into the local repository, by default. You can download the sources.jar files of the dependencies of the project by just one click of a button. First open the Maven view in Intellij. Then press the "Download artifacts" button from the toolbar:



Actually this feature also exists in Intellij IDEA v7 but I can't make it work. Probably, there is a bug. Please inform me, if there is anyone who can use the feature in version 7.

17 Ağustos 2008 Pazar

Intellij Knows Swing

As I use Intellij more and more, I get more and more suprised, more and more excited.

Yesterday, I was trying to change the cursor in a swing project, using setCursor() method. I expected Cursor.W_RESIZE_CURSOR would return a java.awt.Cursor object and coded as below. But something was wrong with my code:












...And immediately, Intellij told me what was wrong with my code:). I should have called Cursor.getPreferredCursor(). I applied Intellij's suggestion, and the error was corrected. My intelligent IDE again saved me to search for example codes on the internet:

4 Ağustos 2008 Pazartesi

How To Sort Collections Using commons-beanutils?

Hi everybody,
Following is another simple way of sorting collections using commons-beanutils package:
Assume that we have an object as below:

public class User {
private long userId;
private String userName;
private String password;
}

And we want to sort based on userName field. We can use BeanComparator class of commons-beanutils package as below to sort the list:

ArrayList list = new ArrayList();
//...
//add User object inside the list.
//...
Collections.sort(list, new BeanComparator("userName"));

Notice that, we passed the name of the field to be sorted, as the parameter, to BeanComparator class constructor. We accomplished sorting of a collection using just one line of code:).

Download commons-beanutils from http://commons.apache.org/beanutils.

28 Temmuz 2008 Pazartesi

JBoss server'a IP numarası ile erişim

Lokal makinemizde çalışan jboss'a http://localhost:8080 adresiyle erişebiliyoruz. Ama http://127.0.0.1:8080 adresiyle denediğimizde, şeklinde erişemeyiz. Bununla beraber uzaktaki bir istemci de ip numaramızı bilmesine rağmen erişim problemi yaşayacaktır. IP numarası ile erişimi aktive etmek için Jboss'u "-b" parametresiyle başlatmamız gerekmektedir. Bu durumda kullanacağımız komut aşağıdaki gibi olacaktır.

> run.bat -b 0.0.0.0

27 Temmuz 2008 Pazar

JBoss'u baska bir domain ile başlatmak

Standart Jboss kurulumu "default" adli server instance'ı başlatmaktadır. Başka bir server instance'i başlatmak için "-c" parametresini kullanmalıyız. Örneğin standart kurulumda gelen, "minimal" adli server'ı başlatmak için aşağıdaki komutu kullanmalıyız:

> run.bat -c minimal