Dzisiejszym wpisem chciałbym zapoczątkować krótką serię na temat tego co powinniśmy robić, a czego nie powinniśmy (a przynajmniej tak mi się wydaje). W części pierwszej przyjrzymy się XML.
XML – jeden z ważniejszych elementów w życiu każdego programisty. Pozwala nam m.in. przechowywać dane, które później możemy importować i tworzyć obiekty. Chciałbym teraz się skupić na konkretnym elemencie – mianowicie co robić, kiedy mamy węzeł nullowalny przechowujący string, czyli taki, który może nie mieć żadnej wartości. W kodzie najczęściej możemy spotkać 2 rodzaje definiowania takich węzłów:
<Email></Email> // lub <Email xsi:nil="true" />
Sposób nr 1 to nic innego jak przechowywanie string.Empty co nie jest najlepszym rozwiązaniem, ponieważ w przypadku, gdy nastąpi zapis do bazy danych, będziemy przechowywać pusty string.
Sposób nr 2 jest dużo lepszy, operujemy na elemencie nullable, przy zapisie do bazy danych nie przekazujemy żadnych pustych stringów, a po prostu null’a. Żeby osiągnąć węzeł nullowalny, musimy wykonąc taki zabieg w schemacie xsd:
<element name="Email" nillable="true"> <annotation> <documentation>User's email</documentation> </annotation> <simpleType> <restriction base="string"> <maxLength value="50"/> </restriction> </simpleType> </element>
Jak widać, najważniejszym atrybutem jest tutaj nillable, któremu przypisujemy wartość true. Mówimy w ten sposób, że nasz węzeł może (ale nie musi) przechowywać wartości. Jeśli nie przechowuje, wtedy w trakcie deserializacji przypisywany jest null. Domyślnie nillable ma wartość false.
Ja bym w ogóle XMLa zaliczył do DONT’s 🙂
+1
+1
10/10
+1 !!
(miało być +1 dla komentarza Pawła Łukasika) :]