<p>An XML attribute declared as xs:boolean can acceptable be "true", "false", "0" or "1".  However, in .NET, Boolean.Parse() will only accept "true" or "false". If it sees a "0" or "1", it throws a "Bad Format" exception.</p>

<p>So, given that, what's the best way to parse such a value into a Boolean?</p>

<p>(Unfortunately, I'm limited to .NET 2.0 solutions, but if v3.5 offers something, I'd love to hear about it.)</p>

Using
```
CBool
```
instead of
```
Boolean.Parse
```
should do the trick: although you'll have to embed it in a
```
try/catch
```
block (which wouldn't be required when using
```
Boolean.TryParse
```
), it will successfully convert most 'sensible' boolean values, including true/false and 0/1.
Edit: as pointed out in a comment, this answer is kinda useless for C# programmers, as
```
CBool
```
is a VB-ism. It maps to
```
Microsoft.VisualBasic.CompilerServices.Conversions::ToBoolean
```
, which is not suitable for general consumption. Which makes the XMLConvert class pointed out in the accepted answer an even better alternative.