mdex_client 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><mdata:Response xmlns:mdata="http://www.endeca.com/MDEX/data/IR600"><mdata:TypedResult><NavigationResults xmlns="http://www.endeca.com/MDEX/data/IR600"><Dimensions><Dimension Name="Category" Id="4294959480" MultiSelect="None"><DimensionValue Name="Category" Id="4294959480" IsLeaf="false" IsNavigable="false"><DimensionValues><DimensionValue Name="HEALTH CARE" Id="4294959366" IsLeaf="false" IsNavigable="true"><DimensionValues><DimensionValue Name="Ambulatory &amp; Primary Health Care" Id="4294959354" IsLeaf="false" IsNavigable="true"><DimensionValues><DimensionValue Name="Group Health Practices" Id="4294959353" IsLeaf="true" IsNavigable="true"/></DimensionValues></DimensionValue><DimensionValue Name="Research Institutes &amp; Public Policy Analysis" Id="4294959362" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Hospitals" Id="4294959358" IsLeaf="false" IsNavigable="true"><DimensionValues><DimensionValue Name="Specialty Hospitals" Id="4294959355" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Community Health Systems" Id="4294959357" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="General Hospitals" Id="4294959356" IsLeaf="true" IsNavigable="true"/></DimensionValues></DimensionValue></DimensionValues></DimensionValue><DimensionValue Name="PUBLIC SAFETY, DISASTER PREPAREDNESS &amp; RELIEF" Id="4294959157" IsLeaf="false" IsNavigable="true"><DimensionValues><DimensionValue Name="Disaster Preparedness &amp; Relief Services" Id="4294959149" IsLeaf="false" IsNavigable="true"/></DimensionValues></DimensionValue><DimensionValue Name="COMMUNITY IMPROVEMENT &amp; CAPACITY BUILDING" Id="4294958988" IsLeaf="false" IsNavigable="true"><DimensionValues><DimensionValue Name="Community Service Clubs" Id="4294958968" IsLeaf="false" IsNavigable="true"/></DimensionValues></DimensionValue></DimensionValues></DimensionValue></Dimension><Dimension Name="State" Id="13" MultiSelect="None"><DimensionValue Name="State" Id="13" IsLeaf="false" IsNavigable="false"><DimensionValues><DimensionValue Name="Iowa" Id="28" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Massachusetts" Id="35" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Arizona" Id="17" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="California" Id="14" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Maryland" Id="36" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Ohio" Id="49" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Oregon" Id="51" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Illinois" Id="30" IsLeaf="true" IsNavigable="true"/></DimensionValues></DimensionValue></Dimension><Dimension Name="Income" Id="5" MultiSelect="None"><DimensionValue Name="Income" Id="5" IsLeaf="false" IsNavigable="false"><DimensionValues><DimensionValue Name="Greater than $10M" Id="12" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="$100k - $500k" Id="7" IsLeaf="true" IsNavigable="true"/></DimensionValues></DimensionValue></Dimension><Dimension Name="IRS Sub Section" Id="4" MultiSelect="None"><DimensionValue Name="IRS Sub Section" Id="4" IsLeaf="false" IsNavigable="false"><DimensionValues><DimensionValue Name="501(c)(3) Public Charity" Id="4294959940" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="501(c)(3) Private Nonoperating Foundation" Id="4294959893" IsLeaf="true" IsNavigable="true"/></DimensionValues></DimensionValue></Dimension><Dimension Name="City" Id="1" MultiSelect="None"><DimensionValue Name="City" Id="1" IsLeaf="false" IsNavigable="false"><DimensionValues><DimensionValue Name="Cleveland" Id="4294958394" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Phoenix" Id="4294958396" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Northfield" Id="4294957554" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Stanford" Id="4294958825" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Portland" Id="4294958395" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Westborough" Id="4294957507" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Cedar Falls" Id="4294952063" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="San Pedro" Id="4294956472" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Oakland" Id="4294958818" IsLeaf="true" IsNavigable="true"/><DimensionValue Name="Glenview" Id="4294955486" IsLeaf="true" IsNavigable="true"/></DimensionValues></DimensionValue></Dimension></Dimensions><NavigationStatesResult><DimensionStates><DimensionState DimensionName="Category" DimensionId="4294959480"><Refinements ParentName="Category" ParentId="4294959480" HasMore="false" IsRefinable="true"/></DimensionState><DimensionState DimensionName="State" DimensionId="13"><Refinements ParentName="State" ParentId="13" HasMore="false" IsRefinable="true"/></DimensionState><DimensionState DimensionName="Income" DimensionId="5"><Refinements ParentName="Income" ParentId="5" HasMore="false" IsRefinable="true"/></DimensionState><DimensionState DimensionName="IRS Sub Section" DimensionId="4"><Refinements ParentName="IRS Sub Section" ParentId="4" HasMore="false" IsRefinable="true"/></DimensionState></DimensionStates></NavigationStatesResult><RecordsResult Offset="0" RecordsPerPage="10" TotalRecordCount="829320"><Records><Record Id="45-0233470"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959357">Community Health Systems</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="17">Arizona</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294958396">Phoenix</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="12">Greater than $10M</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">1441 N 12TH St</Property><Property Key="Assets">5738090000.000000</Property><Property Key="ContactPhone">602-747-4000</Property><Property Key="created_at">2011-07-20 15:39:34.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes">1</Property><Property Key="Description">Community Health Systems</Property><Property Key="EIN">45-0233470</Property><Property Key="guidestar_updated_at">2011-08-04 00:34:17.0</Property><Property Key="id">1</Property><Property Key="IncomeValue">4180549890.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">BANNER HEALTH&apos;S NONPROFIT MISSION IS TO MAKE A DIFFERENCE IN PEOPLE&apos;S LIVES THROUH EXCELLENT PATIENT CARE</Property><Property Key="ntees">,,,E21</Property><Property Key="OrgName">BANNER HEALTH</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 21:01:44.0</Property><Property Key="RulingYear">1977</Property><Property Key="UniqueId">45-0233470</Property><Property Key="updated_at">2011-08-04 00:34:17.0</Property><Property Key="Zip">85006</Property></Attributes></Record><Record Id="94-1105628"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959357">Community Health Systems</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="51">Oregon</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294958395">Portland</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="12">Greater than $10M</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">2701 Nw Vauahn Street</Property><Property Key="Assets">22753200100.000000</Property><Property Key="ContactPhone">510-271-6611</Property><Property Key="created_at">2011-07-20 15:39:34.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes"/><Property Key="Description">Community Health Systems</Property><Property Key="EIN">94-1105628</Property><Property Key="guidestar_updated_at">2011-08-03 23:56:37.0</Property><Property Key="id">3</Property><Property Key="IncomeValue">14795299800.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">TO PROVIDE HIGH-QUALITY, AFFORDABLE HEALTH CARE SERVICES TO IMPROVE THE HEALTH OF OUR MEMBERS AND THE COMMUNITIES WE SERVE</Property><Property Key="ntees">,,,E21</Property><Property Key="OrgName">KAISER FOUNDATION HOSPITALS</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 23:12:09.0</Property><Property Key="RulingYear">1949</Property><Property Key="UniqueId">94-1105628</Property><Property Key="updated_at">2011-08-03 23:56:37.0</Property><Property Key="Zip">97210</Property></Attributes></Record><Record Id="23-7095578"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294958968">Community Service Clubs</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="28">Iowa</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294952063">Cedar Falls</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">2221 W 8th St</Property><Property Key="Assets">0.000000</Property><Property Key="ContactEmail">KLaCascia@toastmasters.org</Property><Property Key="ContactFirstName">Kelly</Property><Property Key="ContactLastName">LaCascia</Property><Property Key="ContactPhone">949-8582865</Property><Property Key="ContactPrefix">Ms</Property><Property Key="ContactTitle">Associate Editor</Property><Property Key="created_at">2011-07-26 18:54:26.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes"/><Property Key="Description">Community Service Clubs (Kiwanis, Lions, Jaycees, etc.)</Property><Property Key="EIN">23-7095578</Property><Property Key="guidestar_updated_at">2011-08-03 13:25:19.0</Property><Property Key="id">212265</Property><Property Key="IncomeValue">0.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">The mission of a Toastmasters Club is to provide a mutually supportive and positive learning environment in which every member has the opportunity to develop communication and leadership skills, which in turn foster self-confidence and personal growth.</Property><Property Key="ntees">S80,,,</Property><Property Key="OrgName">Toastmasters International</Property><Property Key="Programs">Members of Toastmaster Clubs have access to a wide range of educational materials, including books, audio and videotapes, and seminar programs available at reduced cost through the Toastmasters International Supply Catalog.</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 18:54:26.0</Property><Property Key="UniqueId">23-7095578</Property><Property Key="updated_at">2011-08-03 13:25:19.0</Property><Property Key="Url">http://www.toastmasters.org</Property><Property Key="Zip">50613</Property></Attributes></Record><Record Id="94-1340523"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959353">Group Health Practices</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="14">California</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294958818">Oakland</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="12">Greater than $10M</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">One Kaiser Plz Ste 15L</Property><Property Key="Assets">11001900000.000000</Property><Property Key="ContactPhone">510-271-6611</Property><Property Key="created_at">2011-07-20 15:39:34.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes"/><Property Key="Description">Group Health Practice (Health Maintenance Organizations)</Property><Property Key="EIN">94-1340523</Property><Property Key="guidestar_updated_at">2011-08-04 00:47:45.0</Property><Property Key="id">4</Property><Property Key="IncomeValue">33221900300.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">TO PROVIDE HIGH-QUALITY, AFFORDABLE HEALTH CARE SERVICES TO IMPROVE THE HEALTH OF OUR MEMBERS AND THE COMMUNITIES WE SERVE</Property><Property Key="ntees">,,,E31</Property><Property Key="OrgName">KAISER FOUNDATION HEALTH PLAN INC</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 23:12:19.0</Property><Property Key="RulingYear">1981</Property><Property Key="UniqueId">94-1340523</Property><Property Key="updated_at">2011-08-04 00:47:45.0</Property><Property Key="Zip">94612</Property></Attributes></Record><Record Id="36-6961913"><Attributes><AssignedDimensionValue Key="State" DimensionId="13" Id="30">Illinois</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294957554">Northfield</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="7">$100k - $500k</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959893">501(c)(3) Private Nonoperating Foundation</AssignedDimensionValue><Property Key="Address1">631 Briar Ln</Property><Property Key="Assets">1770170.000000</Property><Property Key="ContactPhone">847-291-4341</Property><Property Key="created_at">2011-07-26 20:29:47.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes">4</Property><Property Key="EIN">36-6961913</Property><Property Key="guidestar_updated_at">2011-08-03 20:37:19.0</Property><Property Key="id">424277</Property><Property Key="IncomeValue">208897.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">
2
+ No information currently in database.
3
+ </Property><Property Key="OrgName">THOMAS L &amp; KATHLEEN G BINDLEY CHARITABLE TRUST</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 20:29:47.0</Property><Property Key="RulingYear">1991</Property><Property Key="UniqueId">36-6961913</Property><Property Key="updated_at">2011-08-03 20:37:19.0</Property><Property Key="Zip">60093</Property></Attributes></Record><Record Id="23-7095580"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294958968">Community Service Clubs</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="14">California</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294956472">San Pedro</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">1748 Cumbre Dr</Property><Property Key="Assets">0.000000</Property><Property Key="ContactEmail">KLaCascia@toastmasters.org</Property><Property Key="ContactFirstName">Kelly</Property><Property Key="ContactLastName">LaCascia</Property><Property Key="ContactPhone">949-8582865</Property><Property Key="ContactPrefix">Ms</Property><Property Key="ContactTitle">Associate Editor</Property><Property Key="created_at">2011-07-26 18:54:26.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes"/><Property Key="Description">Community Service Clubs (Kiwanis, Lions, Jaycees, etc.)</Property><Property Key="EIN">23-7095580</Property><Property Key="guidestar_updated_at">2011-07-28 00:10:08.0</Property><Property Key="id">212266</Property><Property Key="IncomeValue">0.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">The mission of a Toastmasters Club is to provide a mutually supportive and positive learning environment in which every member has the opportunity to develop communication and leadership skills, which in turn foster self-confidence and personal growth.</Property><Property Key="ntees">S80,,,</Property><Property Key="OrgName">Toastmasters International</Property><Property Key="Programs">Members of Toastmaster Clubs have access to a wide range of educational materials, including books, audio and videotapes, and seminar programs available at reduced cost through the Toastmasters International Supply Catalog.</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 18:54:26.0</Property><Property Key="UniqueId">23-7095580</Property><Property Key="updated_at">2011-07-28 00:10:08.0</Property><Property Key="Url">http://www.toastmasters.org</Property><Property Key="Zip">90732</Property></Attributes></Record><Record Id="34-0714585"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959357">Community Health Systems</AssignedDimensionValue><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959353">Group Health Practices</AssignedDimensionValue><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959362">Research Institutes &amp; Public Policy Analysis</AssignedDimensionValue><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959355">Specialty Hospitals</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="49">Ohio</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294958394">Cleveland</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="12">Greater than $10M</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">9500 Euclid Ave</Property><Property Key="Address2">H-18</Property><Property Key="Aka">CCF</Property><Property Key="Assets">4721790000.000000</Property><Property Key="ContactEmail">waitkur@ccf.org</Property><Property Key="ContactFax">216-4457470</Property><Property Key="ContactFirstName">Robert</Property><Property Key="ContactLastName">Waitkus</Property><Property Key="ContactPhone">216-4442200</Property><Property Key="ContactPrefix">Mr.</Property><Property Key="ContactTitle">Senior Director - Taxation &amp; Compliance</Property><Property Key="created_at">2011-07-20 15:39:34.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes">1</Property><Property Key="Description">Hospital (Specialty)Group Health Practice (Health Maintenance Organizations)Research Institutes and/or Public Policy AnalysisCommunity Health Systems</Property><Property Key="EIN">34-0714585</Property><Property Key="ExecutiveFirstName">Delos (Toby)</Property><Property Key="ExecutiveLastName">Cosgrove</Property><Property Key="ExecutivePrefix">Dr.</Property><Property Key="ExecutiveTitle">CEO &amp; President, Chairman, Board of Governors</Property><Property Key="guidestar_updated_at">2011-08-03 21:21:28.0</Property><Property Key="id">5</Property><Property Key="IncomeValue">2975079940.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">Patient Care, Research and Education.</Property><Property Key="ntees">E24,E31,E05,E21</Property><Property Key="OrgName">Cleveland Clinic Foundation</Property><Property Key="Programs">The Cleveland Clinic Foundation was established in 1921 for the singular purpose of benefiting humanity through the efficient, effective and ethical practice of medicine, by advocating scientific investigation and medical education, by maintaining the highest standards of quality, and by honoring creativity and innovation. That ideal continues today with the delivery of world-class healthcare to thousands of patients from Northeast Ohio, across the United States, and around the world. The Foundation is dedicated to its mission statement: &quot;..better care of the sick, investigation into their problems, and further education of those who serve.&quot; The goals of the Foundation are pursued and achieved through three significant functions: Patient Care, Research, and Education. The Cleveland Clinic has distinguished itself as a world premier health care institution not by simply carrying out these activities, but rather by the successful interaction between these functions on a collaborative basis.</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 20:10:59.0</Property><Property Key="RulingYear">1928</Property><Property Key="UniqueId">34-0714585</Property><Property Key="updated_at">2011-08-03 21:21:28.0</Property><Property Key="Url">www.clevelandclinic.org</Property><Property Key="YearFounded">1921</Property><Property Key="Zip">44195</Property></Attributes></Record><Record Id="94-6174066"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959356">General Hospitals</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="14">California</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294958825">Stanford</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="12">Greater than $10M</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">300 Pasteur Dr Mc 5510</Property><Property Key="Assets">2156940030.000000</Property><Property Key="ContactPhone">650-723-4000</Property><Property Key="created_at">2011-07-20 15:39:34.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes"/><Property Key="Description">Hospital (General)</Property><Property Key="EIN">94-6174066</Property><Property Key="guidestar_updated_at">2011-08-03 21:21:33.0</Property><Property Key="id">28</Property><Property Key="IncomeValue">1769549950.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">STANFORD HOSPITAL AND CLINICS (&quot;SHC&quot;) IS A NON-PROFIT CALIFORNIA PUBLIC BENEFIT CORPORATION OF WHICH THE BOARD OF TRUSTEES OF LELAND STANFORD JUNIOR UNIVERSITY (THE &quot;UNIV ERSITY&quot;) IS THE SOLE MEMBER THE objective and the PURPOSE OF SHC IS TO provide patient care services, SUPPORT, BENEFIT AND FURTHER THE CHARITABLE, and SCHIENTIFIC AND EDUCATIONAL PURPOSES OF THE UNIVERSITY AND THE UNIVERSITY&apos;S SCHOOL OF MEDICINE</Property><Property Key="ntees">,,,E22</Property><Property Key="OrgName">STANFORD HOSPITAL AND CLINICS </Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 23:19:27.0</Property><Property Key="RulingYear">1959</Property><Property Key="UniqueId">94-6174066</Property><Property Key="updated_at">2011-08-03 21:21:33.0</Property><Property Key="Zip">94305</Property></Attributes></Record><Record Id="36-6961931"><Attributes><AssignedDimensionValue Key="State" DimensionId="13" Id="30">Illinois</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294955486">Glenview</AssignedDimensionValue><AssignedDimensionValue Key="Income" DimensionId="5" Id="7">$100k - $500k</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959893">501(c)(3) Private Nonoperating Foundation</AssignedDimensionValue><Property Key="Address1">800 Waukegan Rd</Property><Property Key="Assets">1983400.000000</Property><Property Key="ContactPhone">847-729-1900</Property><Property Key="created_at">2011-07-26 20:29:47.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes">4</Property><Property Key="EIN">36-6961931</Property><Property Key="guidestar_updated_at">2011-08-03 20:52:08.0</Property><Property Key="id">424278</Property><Property Key="IncomeValue">435475.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">
4
+ No information currently in database.
5
+ </Property><Property Key="OrgName">PETER G WAGNER CHARITABLE FOUNDATION</Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 20:29:47.0</Property><Property Key="RulingYear">1991</Property><Property Key="UniqueId">36-6961931</Property><Property Key="updated_at">2011-08-03 20:52:08.0</Property><Property Key="Zip">60025</Property></Attributes></Record><Record Id="27-1325280"><Attributes><AssignedDimensionValue Key="Category" DimensionId="4294959480" Id="4294959149">Disaster Preparedness &amp; Relief Services</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="36">Maryland</AssignedDimensionValue><AssignedDimensionValue Key="State" DimensionId="13" Id="35">Massachusetts</AssignedDimensionValue><AssignedDimensionValue Key="City" DimensionId="1" Id="4294957507">Westborough</AssignedDimensionValue><AssignedDimensionValue Key="IRS Sub Section" DimensionId="4" Id="4294959940">501(c)(3) Public Charity</AssignedDimensionValue><Property Key="Address1">PO Box 41</Property><Property Key="Address2">% Tarun Batra</Property><Property Key="Assets">0.000000</Property><Property Key="created_at">2011-07-26 19:39:28.0</Property><Property Key="Deductibility">Contributions are deductible, as provided by law</Property><Property Key="deductibility_codes"/><Property Key="Description">Disaster Preparedness and Relief Services</Property><Property Key="EIN">27-1325280</Property><Property Key="guidestar_updated_at">2011-08-03 14:41:56.0</Property><Property Key="id">310376</Property><Property Key="IncomeValue">0.000000</Property><Property Key="is_pub78_verified">true</Property><Property Key="Mission">
6
+ No information currently in database.
7
+ </Property><Property Key="ntees">,,,M20</Property><Property Key="OrgName">VOICE FOR EARTH INC </Property><Property Key="pub78_date">2011-06-28</Property><Property Key="pub78_updated_at">2011-07-26 19:39:28.0</Property><Property Key="RulingYear">2010</Property><Property Key="UniqueId">27-1325280</Property><Property Key="updated_at">2011-08-03 14:41:56.0</Property><Property Key="Zip">1581</Property></Attributes></Record></Records></RecordsResult><AppliedFilters/><BusinessRulesResult/><KeywordRedirects/><AnalyticsResult/></NavigationResults></mdata:TypedResult></mdata:Response></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,15 @@
1
+ require 'mdex_client/mdata/node'
2
+
3
+ module MDEXClient
4
+ module MData
5
+ class AggregateRecord < Record
6
+ attr_accessor :derived_properties, :constituent_records, :records_in_aggregate
7
+
8
+ def initialize_from_element!
9
+ @records_in_aggregate = @element["RecordsInAggregate"].to_i
10
+ @derived_properties = property_list("mdata:DerivedProperties/mdata:Property")
11
+ @constituent_records = record_list("mdata:ConstituentRecords")
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ require 'mdex_client/mdata/node'
2
+
3
+ module MDEXClient
4
+ module MData
5
+ class AggregationKey < Node
6
+ attr_accessor :name, :records_per_aggregate_record
7
+
8
+ def initialize_from_element!
9
+ @name = element.text
10
+ @records_per_aggregate_record = element["RecordsPerAggregateRecord"].to_i
11
+ end
12
+
13
+ def write_xml!(xml)
14
+ xml.mdata :AggregationKey, "RecordsPerAggregateRecord" => records_per_aggregate_record,
15
+ name
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,51 @@
1
+ require 'mdex_client/mdata/node'
2
+ require 'mdex_client/mdata/dimension_value'
3
+
4
+ module MDEXClient
5
+ module MData
6
+ class Dimension < Node
7
+ attr_accessor :id, :name, :multi_select, :group_name, :values, :refinements,
8
+ :parent_id, :selected_value_ids, :implicit_value_ids
9
+
10
+ def initialize_from_element!
11
+ @id = @element["Id"].to_i
12
+ @name = @element["Name"]
13
+ @multi_select = @element["MultiSelect"]
14
+ @group_name = @element["GroupName"]
15
+
16
+ @values = {}
17
+ xpath("mdata:DimensionValue").each do |value|
18
+ dv = DimensionValue.new(value)
19
+ dv.dimension = self
20
+ @values[dv.id] = dv
21
+ end
22
+
23
+ @refinements ||= []
24
+ @selected_value_ids ||= []
25
+ @implicit_value_ids ||= []
26
+ end
27
+
28
+ def initialize_dimension_state!(element, dimension_values)
29
+ node = Node.new(element)
30
+ refinement_list = node.xpath("mdata:Refinements").first
31
+ if refinement_list
32
+ @parent_id = refinement_list["ParentId"].to_i
33
+ @has_more_refinements = (refinement_list["HasMore"] == "true")
34
+ @is_refinable = (refinement_list["IsRefinable"] == "true")
35
+ end
36
+
37
+ @refinements = node.dimension_value_state_list("mdata:Refinements", dimension_values)
38
+ @selected_value_ids = node.dimension_value_state_list("mdata:SelectedDimensionValues", dimension_values)
39
+ @implicit_value_ids = node.dimension_value_state_list("mdata:ImplicitDimensionValues", dimension_values)
40
+ end
41
+
42
+ def has_more_refinements?
43
+ @has_more_refinements
44
+ end
45
+
46
+ def refinable?
47
+ @is_refinable
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,47 @@
1
+ require 'mdex_client/mdata/node'
2
+
3
+ module MDEXClient
4
+ module MData
5
+ class DimensionValue < Node
6
+ attr_accessor :id, :dimension, :parent, :name, :static_record_count, :values, :properties
7
+
8
+ def initialize_from_element!
9
+ @id = @element["Id"].to_i
10
+ @name = @element["Name"]
11
+ @is_leaf = @element["IsLeaf"] == "true"
12
+ @is_navigable = @element["IsNavigable"] == "true"
13
+ @static_record_count = @element["StaticRecordCount"].to_i
14
+
15
+ @values = {}
16
+ xpath("mdata:DimensionValues/mdata:DimensionValue").each do |value|
17
+ dv = DimensionValue.new(value)
18
+ dv.parent = self
19
+ @values[dv.id] = dv
20
+ end
21
+
22
+ @properties = property_list("mdata:Properties/mdata:Property")
23
+ end
24
+
25
+ def dimension=(new_dimension)
26
+ @dimension = new_dimension
27
+ values.each do |id, value|
28
+ value.dimension = new_dimension
29
+ end
30
+ end
31
+
32
+ def leaf?
33
+ @is_leaf
34
+ end
35
+
36
+ def navigable?
37
+ @is_navigable
38
+ end
39
+
40
+ def ancestors
41
+ a = parent ? parent.ancestors : []
42
+ a << parent if parent
43
+ a
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,14 @@
1
+ require 'mdex_client/mdata/node'
2
+
3
+ module MDEXClient
4
+ module MData
5
+ class Geocode < Node
6
+ attr_accessor :latitude, :longitude
7
+
8
+ def initialize_from_element!
9
+ @latitude = element["Latitude"].to_f
10
+ @longitude = element["Longitude"].to_f
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,135 @@
1
+ require 'mdex_client/mdata/node'
2
+ require 'mdex_client/mdata/sort'
3
+ require 'mdex_client/mdata/search'
4
+ require 'mdex_client/mdata/range_filter'
5
+
6
+ module MDEXClient
7
+ module MData
8
+ class NavigationQuery < Node
9
+ attr_accessor :selected_dimension_value_ids, :refinement_configs,
10
+ :expose_all_refinements, :aggregation_key,
11
+ :record_offset, :records_per_page, :included_record_attributes, :sorts,
12
+ :business_rules_filter, :business_rules_preview_time, :eql_expression,
13
+ :record_filter, :range_filters, :searches, :enable_did_you_mean, :analytics_expression,
14
+ :user_profiles, :language_id, :dimension_value_strata, :alternative_phrasing_mode
15
+
16
+ def write_xml!(xml)
17
+ if selected_dimension_value_ids
18
+ xml.mdata :SelectedDimensionValueIds do
19
+ selected_dimension_value_ids.each do |id|
20
+ xml.mdata :DimensionValueId, id
21
+ end
22
+ end
23
+ end
24
+
25
+ if refinement_configs || expose_all_refinements
26
+ params = {}
27
+ params["ExposeAllRefinements"] = true if expose_all_refinements
28
+ xml.mdata :RefinementConfigs, params do
29
+ if refinement_configs
30
+ refinement_configs.each do |conf|
31
+ conf.write_xml!(xml)
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ aggregation_key.try(:write_xml!)
38
+ xml.mdata :RecordOffset, record_offset if record_offset
39
+ xml.mdata :RecordsPerPage, records_per_page if records_per_page
40
+
41
+ if included_record_attributes
42
+ xml.mdata :IncludedRecordAttributes do
43
+ included_record_attributes.each do |a|
44
+ xml.mdata :IncludedRecordAttribute, a
45
+ end
46
+ end
47
+ end
48
+
49
+ if sorts
50
+ xml.mdata :Sorts do
51
+ sorts.each do |sort|
52
+ sort.write_xml!(xml)
53
+ end
54
+ end
55
+ end
56
+
57
+ xml.mdata :BusinessRulesFilter, business_rules_filter if business_rules_filter
58
+ if business_rules_preview_time
59
+ xml.mdata :BusinessRulesPreviewTime,
60
+ business_rules_preview_time.utc.strftime("%Y-%m-%dT%H:%M:%S")
61
+ end
62
+
63
+ xml.mdata :EqlExpression, eql_expression if eql_expression
64
+ xml.mdata :RecordFilter, record_filter if record_filter
65
+
66
+ if range_filters.present?
67
+ xml.mdata :RangeFilters do
68
+ range_filters.each do |filter|
69
+ filter.write_xml!(xml)
70
+ end
71
+ end
72
+ end
73
+
74
+ if searches && searches.any? { |key, search| search.query.present? }
75
+ searches_attrs = {}
76
+ searches_attrs["EnableDidYouMean"] = enable_did_you_mean.to_s if enable_did_you_mean
77
+ xml.mdata :Searches, searches_attrs do
78
+ searches.each do |key, search|
79
+ next unless search.query.present?
80
+ search.write_xml!(xml)
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ def sorts=(new_sorts)
87
+ @sorts = convert_items(new_sorts, Sort)
88
+ end
89
+
90
+ def searches=(new_searches)
91
+ @searches = new_searches.inject({}) do |memo, (key, params)|
92
+ memo[key] = case params
93
+ when Search
94
+ params
95
+ when Hash
96
+ Search.new(params.merge(:key => key))
97
+ else
98
+ raise "Can't initialize a Search using #{params.inspect}"
99
+ end
100
+
101
+ memo
102
+ end
103
+ end
104
+
105
+ def refinement_configs=(new_rcs)
106
+ @refinement_configs = convert_items(new_rcs, RefinementConfig)
107
+ end
108
+
109
+ def main_search_query
110
+ @searches ||= {}
111
+ @searches["mainSearch"].try(:query)
112
+ end
113
+
114
+ def main_search_query=(query)
115
+ @searches ||= {}
116
+ @searches["mainSearch"] ||= Search.new
117
+ @searches["mainSearch"].key = "mainSearch"
118
+ @searches["mainSearch"].query = query
119
+ @searches["mainSearch"].enable_snippeting = true
120
+ @searches["mainSearch"].snippet_length = 100
121
+ end
122
+
123
+ protected
124
+ def convert_items(arr, klass)
125
+ arr.collect do |item|
126
+ if item.is_a?(klass)
127
+ item
128
+ else
129
+ klass.new(item)
130
+ end
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,75 @@
1
+ require 'mdex_client/mdata/node'
2
+ require 'mdex_client/mdata/dimension'
3
+ require 'mdex_client/mdata/refinement_config'
4
+ require 'mdex_client/mdata/record'
5
+ require 'mdex_client/mdata/aggregate_record'
6
+
7
+ module MDEXClient
8
+ module MData
9
+ class NavigationResult < Node
10
+ attr_accessor :dimensions, :dimension_values, :refinement_configs, :offset,
11
+ :records_per_page, :total_record_count,
12
+ :total_aggregate_record_count, :records, :eql_expression,
13
+ :range_filters, :record_filter, :search_reports, :selected_dimension_value_ids,
14
+ :language_id, :business_rules, :keyword_redirects, :analytics
15
+
16
+ def initialize_from_element!
17
+ @dimensions = {}
18
+ @dimension_values = {}
19
+ xpath("mdata:Dimensions/mdata:Dimension").each do |child|
20
+ dim = Dimension.new(child)
21
+ @dimensions[dim.id.to_i] = dim
22
+ add_dimension_values!(dim.values)
23
+ end
24
+
25
+ xpath("mdata:NavigationStatesResult/mdata:DimensionStates/mdata:DimensionState").each do |child|
26
+ dim = @dimensions[child["DimensionId"].to_i]
27
+ dim.initialize_dimension_state!(child, @dimension_values)
28
+ end
29
+
30
+ refinement_configs = xpath("mdata:NavigationStatesResult/mdata:RefinementConfigs").first
31
+ @expose_all_refinements = (refinement_configs["ExposeAllRefinements"] == "true") if refinement_configs
32
+ @refinement_configs = xpath("mdata:NavigationStatesResult/mdata:RefinementConfigs/mdata:RefinementConfig").collect do |child|
33
+ RefinementConfig.new(child)
34
+ end
35
+
36
+ records_result = xpath("mdata:RecordsResult").first
37
+
38
+ @offset = records_result["Offset"].to_i
39
+ @records_per_page = records_result["RecordsPerPage"].to_i
40
+ @total_record_count = records_result["TotalRecordCount"].to_i
41
+ @total_aggregate_record_count = records_result["TotalAggregateRecordCount"].to_i
42
+ @records = record_list("mdata:RecordsResult/mdata:Records")
43
+
44
+ applied_filters = xpath("mdata:NavigationAppliedFilters")
45
+ if applied_filters.count > 0
46
+ af = Node.new(applied_filters.first)
47
+ @eql_expression = af.xpath("mdata:EqlExpression").text
48
+ @record_filter = af.xpath("mdata:RecordFilter").text
49
+ #TODO: search reports
50
+ @selected_dimension_value_ids = af.xpath("mdata:SelectedDimensionValueIds/mdata:DimensionValueId").collect(&:to_i)
51
+ @language_id = af.xpath("mdata:LanguageId").text
52
+ end
53
+ @range_filters = xpath("mdata:NavigationAppliedFilters/mdata:RangeFilterList").children.collect do |filter|
54
+ RangeFilter.from_element(filter)
55
+ end
56
+
57
+ #TODO: business rules
58
+ #TODO: keyword redirects
59
+ #TODO: analytics
60
+ end
61
+
62
+ def add_dimension_values!(values)
63
+ values.each do |id, value|
64
+ next if @dimension_values[id]
65
+ @dimension_values[id] = value
66
+ add_dimension_values!(value.values)
67
+ end
68
+ end
69
+
70
+ def expose_all_refinements?
71
+ @expose_all_refinements
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,64 @@
1
+ require 'mdex_client/client'
2
+
3
+ module MDEXClient
4
+ module MData
5
+ class Node
6
+ attr_accessor :element
7
+
8
+ def initialize(element_or_hash=nil)
9
+ return if element_or_hash.nil?
10
+
11
+ case element_or_hash
12
+ when Nokogiri::XML::Element, Nokogiri::XML::NodeSet
13
+ @element = element_or_hash
14
+ initialize_from_element!
15
+ when Hash
16
+ element_or_hash.each do |key, value|
17
+ send("#{key}=", value)
18
+ end
19
+ else
20
+ raise "Invalid type to initialize a MDEXClient::MData::Node: #{element_or_hash.class}"
21
+ end
22
+ end
23
+
24
+ # Subclasses should override this to initialize the appropriate fields from the
25
+ # provided XML element.
26
+ def initialize_from_element!
27
+ end
28
+
29
+ def css(search)
30
+ @element.css(search, MDEXClient::Client::NAMESPACES)
31
+ end
32
+
33
+ def xpath(search)
34
+ @element.xpath(search, MDEXClient::Client::NAMESPACES)
35
+ end
36
+
37
+ def record_list(search)
38
+ records = xpath("#{search}/mdata:Record").collect do |child|
39
+ Record.new(child)
40
+ end
41
+
42
+ xpath("#{search}/mdata:AggregateRecord").each do |child|
43
+ records << AggregateRecord.new(child)
44
+ end
45
+
46
+ records
47
+ end
48
+
49
+ def property_list(search)
50
+ xpath(search).inject({}) do |memo, property|
51
+ memo[property["Key"]] = property.text
52
+ memo
53
+ end
54
+ end
55
+
56
+ def dimension_value_state_list(search, dimension_values)
57
+ query = "#{search}/mdata:DimensionValue | #{search}/mdata:DimensionValueReference"
58
+ xpath(query).collect do |dv|
59
+ dimension_values[dv["Id"].to_i]
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,163 @@
1
+ require 'mdex_client/mdata/node'
2
+ require 'mdex_client/mdata/geocode'
3
+
4
+ module MDEXClient
5
+ module MData
6
+ class RangeFilter < Node
7
+ class UnknownFilterType < Exception
8
+ attr_accessor :filter_type
9
+
10
+ def initialize(filter_type)
11
+ @filter_type = filter_type
12
+ super("Unknown filter type: #{filter_type}")
13
+ end
14
+ end
15
+
16
+ attr_accessor :attribute_name
17
+
18
+ def initialize_from_element!
19
+ @attribute_name = element["AttributeName"]
20
+ end
21
+
22
+ def attribute_attr
23
+ { "AttributeName" => @attribute_name }
24
+ end
25
+
26
+ def self.from_element(element)
27
+ case element.name
28
+ when "LessThanFilter"
29
+ LessThanFilter.new(element)
30
+ when "LessThanOrEqualFilter"
31
+ LessThanOrEqualFilter.new(element)
32
+ when "GreaterThanFilter"
33
+ GreaterThanFilter.new(element)
34
+ when "GreaterThanOrEqualFilter"
35
+ GreaterThanOrEqualFilter.new(element)
36
+ when "BetweenFilter"
37
+ BetweenFilter.new(element)
38
+ else
39
+ raise UnknownFilterType.new(element.name)
40
+ end
41
+ end
42
+
43
+ module UpperBound
44
+ attr_accessor :upper_bound
45
+
46
+ def init_upper_bound_from_element!
47
+ @upper_bound = element["UpperBound"].to_f
48
+ end
49
+
50
+ def upper_bound_attr
51
+ { "UpperBound" => @upper_bound }
52
+ end
53
+ end
54
+
55
+ module LowerBound
56
+ attr_accessor :lower_bound
57
+
58
+ def init_lower_bound_from_element!
59
+ @lower_bound = element["LowerBound"].to_f
60
+ end
61
+
62
+ def lower_bound_attr
63
+ { "LowerBound" => @lower_bound }
64
+ end
65
+ end
66
+
67
+ module GeocodeReference
68
+ attr_accessor :geocode_reference
69
+
70
+ def init_geocode_reference_from_element!
71
+ gc = xpath("mdata:GeocodeReference")
72
+ @geocode_reference = Geocode.new(gc) if gc
73
+ end
74
+
75
+ def write_geocode_reference!(xml)
76
+ return unless @geocode_reference
77
+
78
+ xml.mdata :GeocodeReference, "Latitude" => @geocode_reference.latitude,
79
+ "Longitude" => @geocode_reference.longitude
80
+ end
81
+ end
82
+ end
83
+
84
+ class LessThanFilter < RangeFilter
85
+ include RangeFilter::UpperBound
86
+ include RangeFilter::GeocodeReference
87
+
88
+ def initialize_from_element!
89
+ super
90
+ init_upper_bound_from_element!
91
+ init_geocode_reference_from_element!
92
+ end
93
+
94
+ def write_xml!(xml)
95
+ xml.mdata :LessThanFilter, attribute_attr.merge(upper_bound_attr) do
96
+ write_geocode_reference! xml
97
+ end
98
+ end
99
+ end
100
+
101
+ class LessThanOrEqualFilter < RangeFilter
102
+ include RangeFilter::UpperBound
103
+
104
+ def initialize_from_element!
105
+ super
106
+ init_upper_bound_from_element!
107
+ end
108
+
109
+ def write_xml!(xml)
110
+ xml.mdata :LessThanOrEqualFilter, attribute_attr.merge(upper_bound_attr)
111
+ end
112
+ end
113
+
114
+ class GreaterThanFilter < RangeFilter
115
+ include RangeFilter::LowerBound
116
+ include RangeFilter::GeocodeReference
117
+
118
+ def initialize_from_element!
119
+ super
120
+ init_lower_bound_from_element!
121
+ init_geocode_reference_from_element!
122
+ end
123
+
124
+ def write_xml!(xml)
125
+ xml.mdata :GreaterThanFilter, attribute_attr.merge(lower_bound_attr) do
126
+ write_geocode_reference! xml
127
+ end
128
+ end
129
+ end
130
+
131
+ class GreaterThanOrEqualFilter < RangeFilter
132
+ include RangeFilter::LowerBound
133
+
134
+ def initialize_from_element!
135
+ super
136
+ init_lower_bound_from_element!
137
+ end
138
+
139
+ def write_xml!(xml)
140
+ xml.mdata :GreaterThanOrEqualFilter, attribute_attr.merge(lower_bound_attr)
141
+ end
142
+ end
143
+
144
+ class BetweenFilter < RangeFilter
145
+ include RangeFilter::UpperBound
146
+ include RangeFilter::LowerBound
147
+ include RangeFilter::GeocodeReference
148
+
149
+ def initialize_from_element!
150
+ super
151
+ init_upper_bound_from_element!
152
+ init_lower_bound_from_element!
153
+ init_geocode_reference_from_element!
154
+ end
155
+
156
+ def write_xml!(xml)
157
+ xml.mdata :BetweenFilter, attribute_attr.merge(lower_bound_attr).merge(upper_bound_attr) do
158
+ write_geocode_reference! xml
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end