I wanted to post the answer given to me by Yizhak because for me, finding the answer was extremely difficult.
The issue I was having is getting an XML File into a format that I could query. Turns out that the easiest way to do this is through Microsoft SQL Server Management Studio.
Prerequisite
You must have ADMINISTER BULK OPERATIONS or be a member of the fixed server role, bulkadmin, on the SQL Server. Also, the XML File MUST be on a network share or directly on the SQL Server.
Procedure
Login to SSMS and open a new Query Window and enter the following:
;WITH XMLNAMESPACES ( DEFAULT 'http://fbi.gov/cjis/nibrs/4.2',
'http://release.niem.gov/niem/structures/3.0/' as s,
'http://fbi.gov/cjis/1.0' as cjis,
'http://release.niem.gov/niem/niem-core/3.0/' as nc,
'http://release.niem.gov/niem/domains/jxdm/5.2/' as j,
'http://www.beyond2020.com/tnibrs/2.1' as tnibrs
)
, rs (xmlData) AS
(
SELECT TRY_CAST(BulkColumn AS XML)
FROM OPENROWSET(BULK N'C:\\NETWORK_SHARE_PATH\nibrs_GroupAIncident_Sample.xml', SINGLE_BLOB) AS x
)
--INSERT INTO targetTable (...)
SELECT c.value('@s:id', 'VARCHAR(100)') AS ID
, c.value('(ReportHeader/NIBRSReportCategoryCode/text())[1]', 'VARCHAR(50)') AS NIBRSReportCategoryCode
, c.value('(ReportHeader/ReportActionCategoryCode/text())[1]', 'VARCHAR(5)') AS ReportActionCategoryCode
, c.value('(ReportHeader/ReportDate/nc:YearMonthDate/text())[1]', 'VARCHAR(10)') AS YearMonthDate
, c.value('(ReportHeader/ReportingAgency/j:OrganizationAugmentation/j:OrganizationORIIdentification/nc:IdentificationID/text())[1]', 'VARCHAR(10)') AS IdentificationID
, c.value('(nc:Incident/nc:ActivityIdentification/nc:IdentificationID/text())[1]', 'VARCHAR(10)') AS IdentificationID
, c.value('(nc:Incident/nc:ActivityDate/nc:DateTime/text())[1]', 'VARCHAR(MAX)') AS DateTime
, c.value('(nc:Incident/nc:ActivityDate/nc:YearMonthDate/text())[1]', 'VARCHAR(MAX)') AS YearMonthDate
, c.value('(nc:Incident/nc:ActivityDate/nc:Date/text())[1]', 'VARCHAR(MAX)') AS Date
--Incident
, c.value('(nc:Incident/j:IncidentAugmentation/j:IncidentExceptionalClearanceCode/text())[1]', 'VARCHAR(MAX)') AS IncidentExceptionalClearanceCode
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Coordinates/tnibrs:Latitude/text())[1]', 'VARCHAR(MAX)') AS Latitude
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Coordinates/tnibrs:Longitude/text())[1]', 'VARCHAR(MAX)') AS Longitude
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:StreetNumber/text())[1]', 'VARCHAR(MAX)') AS StreetNumber
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:StreetNumber/text())[1]', 'VARCHAR(MAX)') AS StreetNumber
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:StreetName/text())[1]', 'VARCHAR(MAX)') AS StreetName
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:StreetNameExtension/text())[1]', 'VARCHAR(MAX)') AS StreetNameExtension
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:CityName/text())[1]', 'VARCHAR(MAX)') AS CityName
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:StateCode/text())[1]', 'VARCHAR(MAX)') AS StateCode
, c.value('(nc:Incident/tnibrs:IncidentLocation/tnibrs:Address/tnibrs:ZipCode/text())[1]', 'VARCHAR(MAX)') AS ZipCode
--Offense
--,c.value('j:Offense/@s:id[2]', 'VARCHAR(100)') AS OffenseID
,c.value('(j:Offense/tnibrs:OffenseUCRCode/text())[1]', 'VARCHAR(MAX)') AS OffenseUCRCode
,c.value('(j:Offense/tnibrs:OffenseUCRCode/text())[1]', 'VARCHAR(MAX)') AS OffenseUCRCode
FROM rs
CROSS APPLY xmlData.nodes('/Submission/Report') AS t(c)
Again, I want to thank Yizhak for helping me with this.