Here's a fun trick if you've ever wanted to have related/cascading drop-downs in InfoPath:
1) Create the data source for your drop-downs. Here I am using an XML file:

2) Add your data source as a resource file:


3) Add a data connection for your resource:




4) Add your drop-downs to the form:
5) Configure the data source for your parent drop-down:

6) Configure the related drop-down:
This is where it gets tricky. We need to add a pretty complex filter here. First click on Filter Data:

Then add a filter:

Choose to select a field or group:

Change the data source to Main and select the parent field:

Then you'll have most of the filter defined:

Now switch to the expression view:

And update your expression:

In this instance we're saying that the title attribute of the parent state element should match what was selected in the parent drop-down.
7) To make sure the drop-downs work properly you'll want to clear the related field every time the parent field gets changed. To do that, add a rule to the field:

Select Rules:

Add the following rule with an action to set the related field's value = to ""

8) Test the form by selecting preview:
When I select MN I should get a list of just the MN cities:

After selecting a city:
When I change the state to WI, Bloomington is unselected:

And when I hit the city drop-down again, I should get a list of just the WI cities:

You can download my example XSN here.