Where do the columns in the Data Warehouse tables come from?

Do you know what are the sources of gender, yearly income, city, education etc. in the dim.customer table in the AdventueWorksDW2008?

Searched the OLTP, only found city in the Address table. Then used the code below and only found gender in Employee and vPersonDemographics

SELECT name FROM sysobjects WHERE id IN ( SELECT id FROM syscolumns WHERE name ='Gender')

The answer: They are actually in the Person.Person table in the Demographics columns implemented as XML, although they could be implemented as a separate table or columns in the same table.

<IndividualSurvey xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey">
  <TotalPurchaseYTD>59.46</TotalPurchaseYTD>
  <DateFirstPurchase>2004-05-16Z</DateFirstPurchase>
  <BirthDate>1961-06-17Z</BirthDate>
  <MaritalStatus>M</MaritalStatus>
  <YearlyIncome>0-25000</YearlyIncome>
  <Gender>M</Gender>
  <TotalChildren>1</TotalChildren>
  <NumberChildrenAtHome>0</NumberChildrenAtHome>
  <Education>Graduate Degree</Education>
  <Occupation>Clerical</Occupation>
  <HomeOwnerFlag>1</HomeOwnerFlag>
  <NumberCarsOwned>0</NumberCarsOwned>
  <CommuteDistance>0-1 Miles</CommuteDistance>
</IndividualSurvey>