DOs & DONTs – część pierwsza

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.

6 uwag do wpisu “DOs & DONTs – część pierwsza

Zostaw komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s