Eh Sayers Episode 5 - Why Should You Care About Inflation?

Release date: January 27, 2021

Catalogue number: 45-20-0003
ISSN: 2816-2250

Eh Sayers podcast

The COVID-19 pandemic has had an undeniable impact on the way that we spend money. Documenting these shifts in spending patterns is crucial to decision making and providing Canadians with timely and accurate information on consumer price changes. The Consumer Price Index (CPI) is the most widely used indicator of consumer price change and inflation in Canada. Our guest, Taylor Mitchell, an economist at Statistics Canada, explains why the CPI is an important tool for setting economic policy and monitoring economic conditions. She will also shed light on why you should care about inflation, its impact on different population groups and the cost of living.

Host

Tegan Bridge

Guest

Taylor Mitchell, Economist for the Consumer Price Index at Statistics Canada

Listen to audio

Eh Sayers Episode 5 - Why Should You Care About Inflation? - Transcript

Tegan:Hi everyone. Quick programing note before we start today's show. The main interview was recorded in November, and while everything was correct at the time of recording, the world of data moves fast, so some of our examples may not contain the latest information. That said, the main points of the show are still as relevant today as the day we recorded them, and we hope it doesn't detract from your podcast listening experience. Enjoy!

(Theme)

Tegan: Welcome to Eh Sayers, a podcast from Statistics Canada, where we meet the people behind the data and explore the stories behind the numbers. I’m your host, Tegan.

If you’re an economics-minded person, you’ll know that in December 2021, the CPI was up 4.8% from the year before. Even if you’re not, you've probably noticed that prices have been going up. I feel like I’m spending more on my groceries than I was a year ago, but I don't think the cost of my clothing has really changed. I have questions. And I bet you do too. To get some answers, we sat down with an economist from StatCan.

Taylor: My name is Taylor Mitchell. I am an economist, working on the CPI or the Consumer Price Index, which is one of Canada's economic indicators of consumer inflation.

Tegan: Big question, what is inflation?

Taylor: What is inflation? Inflation is essentially the change in prices over time. So what the CPI does is it tracks that change in consumer goods, everything that consumers purchase on a daily or monthly or yearly, semiannually basis. Everything from the groceries we buy to the rent we pay, to our haircuts, to our entertainment. It's all in this one basket and we track how that the price of that basket changes overtime.

Tegan: So, you said CPI. What is the CPI?

Taylor: So the CPI is the consumer price index. It's an economic indicator, and it is a measure of how prices change through time. It's often used for a number of a number of important purposes. It's it's a gauge of the health of the economy. It's also used for purposes that are quite relevant to Canadians, day-to-day. Everything from indexing tax brackets to indexing pension payments, and other government benefits to ensure that purchasing power remains constant over time so that you still can purchase the same number of goods with the dollars that you have.

Tegan: And how do you actually gather that information?

Taylor: We start with the basket so we have--a virtual basket I should say. So I'm I spoke a little bit about this before. The basket includes eight major components, which are food, shelter, household operations, furnishings and equipment, so that includes everything from buying furniture, so buying a couch, to buying a fridge, to paying some basic household bills, like cellular bills or financial services, things of that nature. The basket includes clothing and footwear. It includes transportation, which is everything from buying airline tickets, to buying gas, to paying for the bus. It includes health and personal care, recreation, education and reading, and alcoholic beverages, tobacco products, and recreational cannabis. So that's kind of the main framework and each month. We collect through various means a number of prices for various products to represent those. Those 8 major components. So when it comes to grocery prices, for instance, we do that by using transaction data. So when you go to the grocery store, we're actually using that price of the groceries that were scanned at the cashier, and that's incorporated into the CPI. Uh, for other types of goods and services we send interviewers into stores and they record the actual price that’s on the shelf. Uhm, now as we modernize the CPI, we're we're getting more and more into things like API's.

So for various travel indexes, for example, for air transportation, were able to access that data through an API. And we also do a great deal of online price collection now and and because of the pandemic, actually we're we're pretty much exclusively using the non-in person forms of price collection so prior to the pandemic I should say we used to send interviewers into stores, but now that's on hold as a result of physical distancing measures. So the bulk of our collection is now done through alternative data.

Tegan: I like the picture in my head of an economist going in and buying just different kinds of butter. Salted, unsalted, in different sizes and then comparing all the prices.

Taylor: And that's essentially what we do. We look at different types of goods for each, so you know you use the example of butter. We do look at different types of butter. We look at goods of all sizes. We adjust for the quantity to ensure that the price is not falling or staying the same, but that the quantity is the same so we adjust for for so-called shrinkflation in that way. Uh, and then once prices are collected, it's a complex but very robust statistical process that takes, you know over 100 people to do every month to produce that one number that represents inflation for the entire country.

Tegan: What is what is shrinkflation?

Taylor: So shrinkflation refers to typically when product sizes shrink, so product packages shrink in size. Uhm, and when that happens when you know, say, the size of the peanut butter jar that I buy when that gets smaller in size. I'm getting less for more. so that's considered a type of inflation, because again, you are paying more, but getting less or perhaps paying the same beginning, less so when it comes to shrinkflation the way we address that in the CPI is we receive quantity, standard quantity sizes with our price information each month, and that allows us to standardize. So, for example, if the price of peanut butter stays the same. But the jar of peanut butter falls in size becomes smaller. That would be, all else equal, considered a price increase because I'm paying more for what I'm getting.

Tegan: Do prices always rise?

Taylor: That's a great question. Typically, the CPI as an aggregate that accounts for all inflation for the entire country. For the most part, that has risen year over year historically. With that said, prices for individual components within that basket of goods and services they do sometimes fall over time. So one example would be this past year, so you know, we often we were very aware of how much more we're paying for gasoline or for meat at the grocery store, but we do have a number of products that are actually less expensive now than they were at this time last year. Uhm, mortgage interest costs. We've had historically low interest rates and that's passed along to people who are entering or renewing their mortgages. Uh, telephone services. That's your cell phone service. Uh, now we get more and more data typically involved in those packages and so that means it's a de facto price decline. Car insurance is costing Canadians less than it was a year ago. Fresh vegetables. So to answer your question, there are fluctuations, and there are some goods and services where prices do fall over time. Uh, and then there are other goods where prices. They don't really move that much from year to year. One example might be clothing.

Tegan: And are all price increases due to inflation all the time always?

Taylor: Well, inflation is kind of a general catchall term for prices that rise as opposed to deflation, which is when prices fall. So in a general economic sense, yes, when prices rise, that is, that is inflation. But I'm wondering if what you're getting at might be kind of why those prices increase over time. Like what are the factors at play?

Tegan: Yeah, I mean if you are I don't know off the top of my head if you are. If you are buying a cell phone, a smartphone, say and you bought 2 years ago and it was, I don't know $700.00 and now you buy one today and it's $900. Is that inflation or is that something different?

Taylor: It's inflation, but there are dynamics behind that inflation with price change it really all does in the end come down to supply and demand. If more people want to buy something then there are of that good or service to be purchased. Prices tend to rise. In the case of the smart phone, it may be that more people are interested in that particular smartphone than they have been in the past. It may be that there's some sort of a supply chain disruption which, like we're seeing right now for semiconductor chips that are affecting a number of consumer goods in general there are. There are a number of different factors. But when prices do rise over time, yes, we do attribute that generally, uh, to be inflation.

Tegan: Are there ever disagreements about the inflation rate?

Taylor: We you know, I certainly hear that from my neighbours. Uh, you know I. I have that conversation probably every month when the CPI comes out and I'll hear you know, “2%, 3%, 4%. I'm paying 10 or 15% more than last year.” So I think that that's definitely something that every Canadian has their own experience with. It's important to remember that the CPI is an aggregate that represents the entire country as a group, so it represents households that are very, very different. It represents people that own their homes versus people that rent their homes. It represents Canadians with children and Canadians without children. It represents Canadians that are like me and don't have a car and who take the bus or the train everywhere. And we're not paying for gas every month. It represents older Canadians, seniors and millennials who are paying university tuition. And so because of that within that big group, everyone is going to have their own unique experience with inflation. And actually that's why we created here. It's STATCAN something called a personal inflation calculator, which allows Canadians to input their own expenses every month, and they can see how their own personal rate of inflation does differ from that one number that represents the country as a whole.

Tegan: Could you elaborate on how different people's experiences with inflation would vary?

Taylor: So currently gas prices are up quite a bit compared with last year and part of that is because gas prices were actually quite low last year, and that's that was a result of the pandemic and all kinds of disruptions to both demand and supply. But this year gas prices are up about 41%, so that's quite a large increase, and that's certainly affecting some Canadians more than others. You know I mentioned that I'm a person that I. I ride the train. I take the bus, I live in an urban area where I'm fortunate to be able to do that. I don't own a car, but for Canadians that live in different, you know for Canadians who drive to work for Canadians that live in rural areas, they're absolutely going to be feeling the impact of that on their pocketbooks more than somebody like me. At the same time, you know we, renters and homeowners have different experiences with inflation. Those with kids certainly have unique experiences. There are also different regional realities. So, one area that I like to highlight is home heating so the CPI encompasses Canadians from all 10 provinces as well as the three territorial capitals and one aspect about our day-to-day lives is actually quite different in different parts of the country. Is how we heat our homes. So the Atlantic region they tend to rely quite heavily on furnace oil to heat their homes, and furnace oil tends to firm so prices tend to move quite closely with oil prices or gasoline prices. So furnace oil prices are also up quite significantly right now. Whereas West of Quebec, we tend to rely more so on natural gas. Natural gas prices are up as well, but only about half as much as furnace oil prices, and so this means that Canadians in the in Atlantic, Canada are certainly feeling a greater impact on those day-to-day expenses than then those of us using natural gas.

Tegan: In October of 2021, I was curious about the personal inflation calculator, so I played around with it a bit, exploring how inflation would affect people across the country.

I used some guesses about household expenses for a renter in Vancouver, BC, let's call her Beatrice, and came up with a personal inflation rate of 3.9%. BC's actual rate was 3.8%.

I used all of the same numbers for someone in rural PEI, I'll call her Aisha, with the only difference being that Aisha was a homeowner, so she didn't have to pay rent, but she would have some other housing-related expenses. Aisha’s personal inflation rate was 5.6%, higher than Beatrice's 3.9% in BC, but still lower than PEI’s official rate of 6.6%.

Playing around with the numbers in the tool really helped me understand how inflation affects people differently. I encourage you to check it out if you are also curious!

Tegan: You mentioned gas, could you share some examples of other goods affected by inflation? Any other notable changes or anything that you've noticed in the past little while?

Taylor: One area that's been getting a lot of attention has been housing costs, so I will I'll talk a little bit about how shelter is measured in the CPI, just to give you a bit of background. The CPI includes consumer goods. It's right there in the name, consumer price index, and a house itself is not considered a consumer good because we don't consume it. It's considered an asset. It doesn't necessarily change your net worth to purchase a house. So therefore in accordance with international standards, the way the CPI accounts for housing is to measure changes in the costs of the ongoing expenses associated with homeownership. So that would be things like property taxes, that would be things like the commission when you buy a house, that would be your the interest on your mortgage. One area where we're seeing a lot of growth lately is what we call replacement costs. Homeowners replacement costs, and that essentially would be the amount of money that it would take you if you were to rebuild your home on the piece of land that you own. So it's a bit of a tricky concept to wrap our heads around for sure, but it's very closely linked to the price of new homes. And of course we have seen quite a bit of growth in the housing market in the past year and a bit. And so we are currently seeing higher replacement costs than we've seen since the late 1980s. Which is currently it, which is definitely affecting those who are in in the market for new homes. At the same time, you know I mentioned earlier, that interest costs are at a historic low and they have been since the onset of the pandemic, so the flip side of that is that those paying interest on a mortgage are currently enjoying the largest decrease in history. So that's been one trend that we've been watching, those, uh, those inverse relationships regarding shelter.

We're also paying a lot of attention right now to supply chain disruptions, so there are a number of factors there we've seen shipping costs that are that have been quite high. We've seen the impact on a number of consumer goods, especially those that are being imported from overseas, and we're also contending with shortages, so there's been a a fairly well publicized shortage of semiconductor chips, which is in particular impacting the production of new cars and that shortage of new cars is leading to the largest price increases there since the early 90s. So that's a factor that we're also paying a lot of attention to right now.

Tegan: Could you talk a little bit more about what impact the pandemic specifically has had on inflation?

Taylor: Yeah, absolutely so the early price impacts associated with the COVID pandemic, largely to do with a few key areas, one of which was energy. We saw the largest one, two punch in terms of its decline in energy prices in March and April of 2020. Uh, it was an extremely notable decline in prices and that was just because there were some fairly sudden significant changes in terms of how we were all living our lives. We were all staying at home. We were, you know, many of us were not commuting to work anymore. We certainly weren't flying across the ocean. International commerce and trade and just general economic activity, it slowed dramatically. And as a result of that, there were some pretty sharp declines to demand for oil, which of course we saw here in Canada reflected as incredibly low prices at the gas pumps. So, so that was an initial impact, and since then we've seen prices recovering in terms of oil and the reason I bring it up now you know nearly 18 months later, it's because we are still contending with the year over year impacts of those low oil prices in those low gasoline prices from last year. I mentioned that gasoline is up over 40%, but a lot of that is actually just because prices were low this time last year and we're comparing from a low, and so that makes this year's price increases look even larger when we when we look at it in terms of a year over year increase. That's what we call a base effect. That that hasn't impact on that indicator.

We also saw prices for clothing decline towards the beginning of the pandemic and in the early days that was largely because retailers were kind of forced to pivot and discount their inventories online in order to move product. But now it seems to be a bit about longer term trend. Uhm, a lot more people are working at home or just in general staying closer to home. And we're not necessarily buying the same types of clothes that we used to buy, so it's really interesting to see how that's playing out. And, as well, I just want to highlight again just the number of supply shortages that we continue to contend with. We're seeing it, you know, I mentioned shipping costs and semiconductors, but another area where we're really seeing a lot of issue from supply chain disruptions is food prices, particularly meat prices. We've been seeing some labor shortages there that have slowed down production. Some higher prices for livestock feed and just in general of a number of challenges to the supply chain that are leading to higher meat prices for Canadians here and meat prices are up close to 10% right now compared with a year ago.

Tegan: Why should the average Canadian care about inflation?

Taylor: The average Canadian should care about inflation because it's a reflection of how their purchasing power is changing over time. When prices rise, if I have the same amount of money that I had a year ago, I can buy less. I can buy fewer goods and services, and if I'm a person that wants to, you know, keep my spending relatively constant from time to time. I care about inflation, but I also care about inflation because it does affect Canadians in some very practical ways. It impacts their tax brackets. Tax brackets are updated every year based on the CPI. If I'm a senior and I'm collecting CPP, I certainly care about inflation because my CPP payments are going to be indexed to the CPI to ensure that I still have the same amount of purchasing power year to year. Many Canadians who collect private pensions also see their payments index to the CPI. In general, the CPI is used as a gauge of economic health.

Taylor: You know, at the end of the day. I'm in economist that works on prices all day, but I'm also a Canadian and I'm a consumer and I'm a grocery shopper and when I hear that question, what I think about is when I'm in the grocery store and I want to buy some bacon and I see that it's 20% more expensive than it was a year ago. I think that every Canadian can relate to that. That sense of frustration, and I think that that is why the CPI is important. That's why we provide as much information as we do to Canadians about how prices are moving and what is affecting them, because that's, I think, an experience that that everybody can relate to. And at the end of the day, I think that's why Canadians should care about inflation.

Tegan: Is there anything about inflation that we haven't already talked about or about the CPI that? Would be really important for Canadians to know. Or just that you think is cool or interesting?

Taylor: I think I've already touched on everything that's awesome. You know, in, general I just want to stress again that some. Everybody has their own experience with inflation. I'm speaking with you right now and I know that you and I are experiencing different levels of inflation right now. So I always like to point Canadians to our personal inflation calculator. It's a very cool tool. It's a very cool way of kind of seeing your unique circumstances as far as inflation goes and seeing how your circumstances do differ from that one number that represents the entire country.

Tegan: If someone wants to learn more about the CPI or inflation, where should they go?

Taylor: So Statistics Canada has a CPI portal. It is essentially a one stop shop for all things CPI. It includes data visualization tools where Canadians can kind of look at the numbers and play with play with different indexes of interests and see how it's all looked historically it includes the personal inflation calculator, and it includes a number of our other analytical articles as well as the analysis that accompanies are release each month. So I would encourage Canadians to check it out. CPI portal.

Tegan: And that’s our show! You’ve been listening to Eh Sayers. Thank you to Taylor Mitchell, whose expertise powered this episode.

You can subscribe to this show wherever you get your podcasts. There, you can also find the French version of our show, called Hé-coutez bien. Thanks for listening!

Statistical Data and Metadata Exchange (SDMX) User Guide

Table of contents

Table of contents

Introduction

The Statistics Canada SDMX REST web services provide access to the time series made available on the Statistics Canada's website in a structured form. It complies with the SDMX standard. This service is accessible using an HTTP request.

The time series available through Statistics Canada's Common Output Data Repository (CODR) are presented in a form of Canadian indicators/cubes (short-term, structural, specific, etc.) usually representing a set of series/vectors. An indicator/cube is broken down into as many elementary series as there are possible crossover of variables/dimensions. For example, 50 industries * 13 provinces/territories = 650 different series/vectors in CODR.

The SDMX web service allows access:

  • to the values of the series
  • structural metadata describing the characteristics of the series
  • is free of charge

It is possible to quickly extract data using the CODR cube identifier and vectors. In these cases the user must have previously noted the CODR cube identifier or vector identifier from the Statistics Canada website.

What is SDMX?

The Statistical Data and Metadata Exchange initiative is sponsored by seven institutions (the Bank for International Settlements (BIS), the European Central Bank (ECB), Eurostat, the International Monetary Fund (IMF), the Organisation for Economic Co-operation and Development (OECD), the United Nations (UN) and the World Bank) to foster standards for the exchange of statistical information. The first version of the standard is an ISO standard (ISO/Technical Specification 17369:2005). It offers an information model for the representation of statistical data and metadata, as well as several formats to represent this model (SDMX-EDI, SDMX-JSON, SDMX-CSV and several SDMX-ML formats). It also proposes a standard way of implementing web services, including the use of registries.

The SDMX information model in a nutshell

The list below tells you everything you need to know about the SDMX information model in order for us to start developing an application based on the SDMX standard:

  • Descriptor concepts: In order to make sense of some statistical data, we need to know the concepts associated with them. For example, on its own the figure 1.3312 is pretty meaningless, but if we know that this is an exchange rate for the CDN dollar against the US dollar on November 19th, 2019, it starts to make more sense.
  • Packaging structure: Statistical data can be grouped together at the following levels: the observation level (the measurement of some phenomenon); the series level (the measurement of some phenomenon over time, usually at regular intervals); the group level (a group of series – a well-known example being the sibling group, a set of series which are identical, except for the fact that they are measured with different frequencies); and the dataset level (made up of several groups, to cover a specific statistical domain for instance). The descriptor concepts mentioned in point 1 can be attached at various levels in this hierarchy.
  • Dimensions and attributes: There are two types of descriptor concepts: dimensions, which both identify and describe the data, and attributes, which are purely descriptive.
  • Keys: Dimensions are grouped into keys, which allow the identification of a particular set of data (a series, for example). The key values are attached at the series level and given in a fixed sequence. Conventionally, frequency is the first descriptor concept and the other concepts are assigned an order for that particular dataset. Partial keys can be attached to groups.
  • Code lists: Every possible value for a dimension is defined in a code list. Each value on that list is given a language-independent abbreviation (code) and a language-specific description. Attributes are represented sometimes by codes, and sometimes by free-text values. Since the purpose of an attribute is solely to describe and not to identify the data, this is not a problem.
  • Data Structure Definitions: A Data Structure Definition (key family) specifies a set of concepts, which describe and identify a set of data. It tells us which concepts are dimensions (identification and description) and which are attributes (just description), and it gives the attachment level for each of these concepts on the basis of the packaging structure (dataset, group, series or observation), as well as their status (mandatory or conditional). It also specifies which code lists provide possible values for the dimensions and gives possible values for the attributes, either as code lists or free text fields.

The various SDMX-ML formats

SDMX-ML supports various use cases and, therefore, defines several XML formats. For the purpose of this guide, the following two formats will be used:

  • The Structure Definition format : This format will be used to define the structure (concepts, code lists, dimensions, attributes, etc.) of the key families.
  • The Compact format: This format will be used to define the data file. It is not a generic format (it is specific to a Data Structure Definition), but it is designed to support validation and is much more compact so as to support the exchange of large datasets.

The SDMX information model is much richer than this limited introduction, however the above should be sufficient to understand the basics of this web service. For additional information, please refer to the SDMX documentation.

SDMX Data (cube) Web Service

All the data stored in CODR can be retrieved using the query string described below.

protocol://wsEntryPoint/resource/flowRef/key?parameters

where parameters are defined as such:

startPeriod=value&endPeriod=value&firstNObservations=value&lastNObservations=value&detail=value

SDMX Data (cube) Web Service Syntax definition

protocol
The web service is available over http and https.
wsEntryPoint
The web service entry point is available at the same location of the sdmx data and metadata entry point.
resource
The resource for queries is dataflow.
flowRef

A reference to the dataflow describing the data that needs to be returned.

The syntax is the identifier of the agency maintaining the dataflow, followed by the identifier of the dataflow, followed by the dataflow version, separated by a ,(comma).

For example: AGENCY_ID, FLOW_ID, VERSION

If the parameter contains only one of these 3 elements, it is considered to be the identifier of the dataflow. The value for the identifier of the agency maintaining the dataflow will default to all, while the value for the dataflow version will default to latest.

If the string contains only two of these 3 elements, they are considered to be the identifier of the agency maintaining the dataflow and the identifier of the dataflow. The value for the dataflow version will default to latest.

key

The combination of dimensions allows statistical data to be uniquely identified. Such a combination is known as a series key in SDMX and this is what is needed in the key parameter.

Let's say for example that exchange rates can be uniquely identified by the following:

  • the frequency at which they are measured (e.g.: on a daily basis - code D),
  • the currency being measured (e.g.: US dollar - code USD),
  • the currency against which a currency is being measured (e.g.: Euro - code EUR),
  • the type of exchange rates (Foreign exchange reference rates - code SP00) and
  • the series variation (such as average or standardized measure for given frequency, code A).

In order to build the series key, you need to take the value for each of the dimensions (in the order in which the dimensions are defined in the DSD) and separate them with a .(dot). The series key for the example above therefore becomes: D.USD.EUR.SP00.A

Wildcarding is supported by omitting the value for the dimension to be wildcarded. For example, the following series key can be used to retrieve the data for all daily currencies against the euro: D..EUR.SP00.A

The OR operator is supported using the + (plus) character. For example, the following key can be used to retrieve the exchange rates against the euro for both the US dollar and the Japanese Yen: D.USD+JPY.EUR.SP00.A

You can of course combine wildcarding and the OR operator. For example, the following key can be used to retrieve daily or monthly exchange rates of any currency against the euro: D+M..EUR.SP00.A

startPeriod & endPeriod

It is possible to define a date range for which observations should be returned by using the startPeriod and/or endPeriod parameters. The values should be given according to the syntax defined in ISO 8601 or as SDMX reporting periods. The format will vary depending on the frequency.

The supported formats are:

  • YYYY for annual data (e.g.: 2013).
  • YYYY-MM for monthly data (e.g.: 2013-01).
  • YYYY-MM-DD for daily data (e.g.: 2013-01-01).
Detail

Using the detail parameter, it is possible to specify the desired amount of information to be returned by the web service.

Possible options are:

  • full: The data (series and observations) and the attributes will be returned. This is the default.
firstNObservations & lastNObservations
Using the firstNObservations and/or lastNObservations parameters, it is possible to specify the maximum number of observations to be returned for each of the matching series, starting from the first observation (firstNObservations) or counting back from the most recent observation (lastNObservations).

SDMX Data (cube) Web Service Examples

1. Retrieve the data for the series 1.1.1 (Canada / Both sexes / All ages) for the 17100005 dataflow. Table 17100005 is presented in full details in appendix 1.

https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_17100005/1.1.1

Results

SDMX-ML 2.1 Generic Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:GenericData xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:generic="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/generic" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREFe1bc0f6d2dcc41219f43d827cc979106</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-26T00:12:41</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" structureRef="StatCan_Data_Structure_17100005_1_0"><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="1" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="1" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000011124" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="466668" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2012" /><generic:ObsValue value="34714222" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2013" /><generic:ObsValue value="35082954" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2014" /><generic:ObsValue value="35437435" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="35702908" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="36109487" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2017" /><generic:ObsValue value="36543321" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2018" /><generic:ObsValue value="37057765" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2019" /><generic:ObsValue value="37589262" /></generic:Obs></generic:Series></message:DataSet></message:GenericData>
SDMX-ML 2.1 Structure Specific Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:StructureSpecificData xmlns:ss="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/structurespecific" xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:ns1="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREF6c6123ee03f2474e8c8966362092d5da</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-26T00:12:41</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" namespace="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" ss:dataScope="DataStructure" xsi:type="ns1:DataSetType" ss:structureRef="StatCan_Data_Structure_17100005_1_0"><Series Geography="1" Sex="1" Age_group="1" UOM="249" DGUID="2016A000011124" SCALAR_FACTOR="0" VECTOR_ID="466668" NB_DECIMAL="0"><Obs TIME_PERIOD="2012" OBS_VALUE="34714222" /><Obs TIME_PERIOD="2013" OBS_VALUE="35082954" /><Obs TIME_PERIOD="2014" OBS_VALUE="35437435" /><Obs TIME_PERIOD="2015" OBS_VALUE="35702908" /><Obs TIME_PERIOD="2016" OBS_VALUE="36109487" /><Obs TIME_PERIOD="2017" OBS_VALUE="36543321" /><Obs TIME_PERIOD="2018" OBS_VALUE="37057765" /><Obs TIME_PERIOD="2019" OBS_VALUE="37589262" /></Series></message:DataSet></message:StructureSpecificData>
SDMX-JSON
{"header":{"id":"IREFc0e7b4d85c50461c912ed378b326730c","prepared":"2019-11-26T00:12:50","test":true,"sender":{"id":"NOT_CONFIGURED","name":"unknown"}},"dataSets":[{"action":"Information","annotations":[],"series":{"0:0:0":{"attributes":[0,0,0,0,0,null],"annotations":[],"observations":{"0":[34714222],"1":[35082954],"2":[35437435],"3":[35702908],"4":[36109487],"5":[36543321],"6":[37057765],"7":[37589262]}}}}],"structure":{"name":"Population estimates on July 1st, by age and sex","description":"","dimensions":{"dataset":[],"series":[{"id":"Geography","name":"Geography","keyPosition":0,"role":"Geography","values":[{"id":"1","name":"Canada"}]},{"id":"Sex","name":"Sex","keyPosition":1,"role":"Sex","values":[{"id":"1","name":"Both sexes"}]},{"id":"Age_group","name":"Age group","keyPosition":2,"role":"Age_group","values":[{"id":"1","name":"All ages"}]}],"observation":[{"id":"TIME_PERIOD","name":"Time","keyPosition":3,"role":"TIME_PERIOD","values":[{"start":"2012-01-01T00:00:00","end":"2012-12-31T23:59:59","id":"2012","name":"2012"},{"start":"2013-01-01T00:00:00","end":"2013-12-31T23:59:59","id":"2013","name":"2013"},{"start":"2014-01-01T00:00:00","end":"2014-12-31T23:59:59","id":"2014","name":"2014"},{"start":"2015-01-01T00:00:00","end":"2015-12-31T23:59:59","id":"2015","name":"2015"},{"start":"2016-01-01T00:00:00","end":"2016-12-31T23:59:59","id":"2016","name":"2016"},{"start":"2017-01-01T00:00:00","end":"2017-12-31T23:59:59","id":"2017","name":"2017"},{"start":"2018-01-01T00:00:00","end":"2018-12-31T23:59:59","id":"2018","name":"2018"},{"start":"2019-01-01T00:00:00","end":"2019-12-31T23:59:59","id":"2019","name":"2019"}]}]},"attributes":{"dataSet":[],"series":[{"id":"UOM","name":"Unit of measure","role":"UOM","values":[{"id":"249","name":"Persons"}]},{"id":"DGUID","name":"DGUID","role":"DGUID","values":[{"id":"2016A000011124","name":"2016A000011124"}]},{"id":"SCALAR_FACTOR","name":"Scalar Factor","role":"SCALAR_FACTOR","values":[{"id":"0","name":"units"}]},{"id":"VECTOR_ID","name":"Vector ID","role":"VECTOR_ID","values":[{"id":"466668","name":"466668"}]},{"id":"NB_DECIMAL","name":"Number of decimal","role":"NB_DECIMAL","values":[{"id":"0","name":"0"}]},{"id":"TERMINATED","name":"Terminated","role":"TERMINATED","values":[]}],"observation":[{"id":"SYMBOL","name":"Symbol","role":"SYMBOL","values":[]},{"id":"STATUS_CAN","name":"Status","role":"STATUS_CAN","values":[]},{"id":"SECURITY_LEVEL","name":"Security Level","role":"SECURITY_LEVEL","values":[]}]},"annotations":[]}}
2. Retrieve the data for the series 1.2+3.1 (Canada / Male & Female / All ages) for the 17100005 dataflow. Table 17100005 is presented in full details in appendix 1.

https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_17100005/1.2+3.1

Results

SDMX-ML 2.1 Generic Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:GenericData xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:generic="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/generic" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREFf7ccf4e1550b46f9b91a43343e5debd3</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-26T00:17:08</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" structureRef="StatCan_Data_Structure_17100005_1_0"><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="1" /><generic:Value id="Sex" value="3" /><generic:Value id="Age_group" value="1" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000011124" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="466670" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2012" /><generic:ObsValue value="17504322" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2013" /><generic:ObsValue value="17681789" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2014" /><generic:ObsValue value="17855738" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="17990107" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="18192991" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2017" /><generic:ObsValue value="18408053" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2018" /><generic:ObsValue value="18655084" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2019" /><generic:ObsValue value="18911177" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="1" /><generic:Value id="Sex" value="2" /><generic:Value id="Age_group" value="1" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000011124" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="466669" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2012" /><generic:ObsValue value="17209900" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2013" /><generic:ObsValue value="17401165" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2014" /><generic:ObsValue value="17581697" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="17712801" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="17916496" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2017" /><generic:ObsValue value="18135268" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2018" /><generic:ObsValue value="18402681" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2019" /><generic:ObsValue value="18678085" /></generic:Obs></generic:Series></message:DataSet></message:GenericData>
SDMX-ML 2.1 Structure Specific Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:StructureSpecificData xmlns:ss="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/structurespecific" xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:ns1="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREF36867abba54c43c29ec589d4027bf84d</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-26T00:17:07</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" namespace="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" ss:dataScope="DataStructure" xsi:type="ns1:DataSetType" ss:structureRef="StatCan_Data_Structure_17100005_1_0"><Series Geography="1" Sex="3" Age_group="1" UOM="249" DGUID="2016A000011124" SCALAR_FACTOR="0" VECTOR_ID="466670" NB_DECIMAL="0"><Obs TIME_PERIOD="2012" OBS_VALUE="17504322" /><Obs TIME_PERIOD="2013" OBS_VALUE="17681789" /><Obs TIME_PERIOD="2014" OBS_VALUE="17855738" /><Obs TIME_PERIOD="2015" OBS_VALUE="17990107" /><Obs TIME_PERIOD="2016" OBS_VALUE="18192991" /><Obs TIME_PERIOD="2017" OBS_VALUE="18408053" /><Obs TIME_PERIOD="2018" OBS_VALUE="18655084" /><Obs TIME_PERIOD="2019" OBS_VALUE="18911177" /></Series><Series Geography="1" Sex="2" Age_group="1" UOM="249" DGUID="2016A000011124" SCALAR_FACTOR="0" VECTOR_ID="466669" NB_DECIMAL="0"><Obs TIME_PERIOD="2012" OBS_VALUE="17209900" /><Obs TIME_PERIOD="2013" OBS_VALUE="17401165" /><Obs TIME_PERIOD="2014" OBS_VALUE="17581697" /><Obs TIME_PERIOD="2015" OBS_VALUE="17712801" /><Obs TIME_PERIOD="2016" OBS_VALUE="17916496" /><Obs TIME_PERIOD="2017" OBS_VALUE="18135268" /><Obs TIME_PERIOD="2018" OBS_VALUE="18402681" /><Obs TIME_PERIOD="2019" OBS_VALUE="18678085" /></Series></message:DataSet></message:StructureSpecificData>
SDMX-JSON
{"header":{"id":"IREF70e5ea2ecc1c47fba2695be637395233","prepared":"2019-11-26T00:17:10","test":true,"sender":{"id":"NOT_CONFIGURED","name":"unknown"}},"dataSets":[{"action":"Information","annotations":[],"series":{"0:0:0":{"attributes":[0,0,0,0,0,null],"annotations":[],"observations":{"0":[17504322],"1":[17681789],"2":[17855738],"3":[17990107],"4":[18192991],"5":[18408053],"6":[18655084],"7":[18911177]}},"0:1:0":{"attributes":[0,0,0,1,0,null],"annotations":[],"observations":{"0":[17209900],"1":[17401165],"2":[17581697],"3":[17712801],"4":[17916496],"5":[18135268],"6":[18402681],"7":[18678085]}}}}],"structure":{"name":"Population estimates on July 1st, by age and sex","description":"","dimensions":{"dataset":[],"series":[{"id":"Geography","name":"Geography","keyPosition":0,"role":"Geography","values":[{"id":"1","name":"Canada"}]},{"id":"Sex","name":"Sex","keyPosition":1,"role":"Sex","values":[{"id":"3","name":"Females"},{"id":"2","name":"Males"}]},{"id":"Age_group","name":"Age group","keyPosition":2,"role":"Age_group","values":[{"id":"1","name":"All ages"}]}],"observation":[{"id":"TIME_PERIOD","name":"Time","keyPosition":3,"role":"TIME_PERIOD","values":[{"start":"2012-01-01T00:00:00","end":"2012-12-31T23:59:59","id":"2012","name":"2012"},{"start":"2013-01-01T00:00:00","end":"2013-12-31T23:59:59","id":"2013","name":"2013"},{"start":"2014-01-01T00:00:00","end":"2014-12-31T23:59:59","id":"2014","name":"2014"},{"start":"2015-01-01T00:00:00","end":"2015-12-31T23:59:59","id":"2015","name":"2015"},{"start":"2016-01-01T00:00:00","end":"2016-12-31T23:59:59","id":"2016","name":"2016"},{"start":"2017-01-01T00:00:00","end":"2017-12-31T23:59:59","id":"2017","name":"2017"},{"start":"2018-01-01T00:00:00","end":"2018-12-31T23:59:59","id":"2018","name":"2018"},{"start":"2019-01-01T00:00:00","end":"2019-12-31T23:59:59","id":"2019","name":"2019"}]}]},"attributes":{"dataSet":[],"series":[{"id":"UOM","name":"Unit of measure","role":"UOM","values":[{"id":"249","name":"Persons"}]},{"id":"DGUID","name":"DGUID","role":"DGUID","values":[{"id":"2016A000011124","name":"2016A000011124"}]},{"id":"SCALAR_FACTOR","name":"Scalar Factor","role":"SCALAR_FACTOR","values":[{"id":"0","name":"units"}]},{"id":"VECTOR_ID","name":"Vector ID","role":"VECTOR_ID","values":[{"id":"466670","name":"466670"},{"id":"466669","name":"466669"}]},{"id":"NB_DECIMAL","name":"Number of decimal","role":"NB_DECIMAL","values":[{"id":"0","name":"0"}]},{"id":"TERMINATED","name":"Terminated","role":"TERMINATED","values":[]}],"observation":[{"id":"SYMBOL","name":"Symbol","role":"SYMBOL","values":[]},{"id":"STATUS_CAN","name":"Status","role":"STATUS_CAN","values":[]},{"id":"SECURITY_LEVEL","name":"Security Level","role":"SECURITY_LEVEL","values":[]}]},"annotations":[]}}
3. Retrieve the data for the series .1.138 (all geographies / Both sexes / 100 years and over) for the 17100005 dataflow and for the reference years 2015 & 2016. Table 17100005 is presented in full details in appendix 1.

https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_17100005/.1.138?startPeriod=2015&endPeriod=2016

Results

SDMX-ML 2.1 Generic Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:GenericData xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:generic="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/generic" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREFe55da3e3a9cb49a8bf2e3a9846e3e9cb</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-28T00:06:41</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" structureRef="StatCan_Data_Structure_17100005_1_0"><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="2" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000210" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226575" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="107" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="99" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="15" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000262" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31227082" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="1" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="1" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="5" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000213" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226692" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="212" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="209" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="11" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000259" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226926" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="1342" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="1371" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="9" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000247" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226848" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="445" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="407" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="14" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000261" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31227043" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="1" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="3" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="6" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000224" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226731" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="1719" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="2008" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="12" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000260" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226965" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="0" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="0" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="8" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000246" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226809" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="375" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="446" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="7" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000235" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226770" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="2790" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="3067" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="4" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000212" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226653" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="263" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="279" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="1" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000011124" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226536" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="7911" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="8643" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="3" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000211" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226614" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="37" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="36" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="10" /><generic:Value id="Sex" value="1" /><generic:Value id="Age_group" value="138" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000248" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="31226887" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="619" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="717" /></generic:Obs></generic:Series></message:DataSet></message:GenericData>
SDMX-ML 2.1 Structure Specific Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:StructureSpecificData xmlns:ss="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/structurespecific" xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:ns1="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREF4aa123a91bd145399d7f81a9cc45d5b1</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-28T00:06:41</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" namespace="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" ss:dataScope="DataStructure" xsi:type="ns1:DataSetType" ss:structureRef="StatCan_Data_Structure_17100005_1_0"><Series Geography="2" Sex="1" Age_group="138" UOM="249" DGUID="2016A000210" SCALAR_FACTOR="0" VECTOR_ID="31226575" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="107" /><Obs TIME_PERIOD="2016" OBS_VALUE="99" /></Series><Series Geography="15" Sex="1" Age_group="138" UOM="249" DGUID="2016A000262" SCALAR_FACTOR="0" VECTOR_ID="31227082" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="1" /><Obs TIME_PERIOD="2016" OBS_VALUE="1" /></Series><Series Geography="5" Sex="1" Age_group="138" UOM="249" DGUID="2016A000213" SCALAR_FACTOR="0" VECTOR_ID="31226692" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="212" /><Obs TIME_PERIOD="2016" OBS_VALUE="209" /></Series><Series Geography="11" Sex="1" Age_group="138" UOM="249" DGUID="2016A000259" SCALAR_FACTOR="0" VECTOR_ID="31226926" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="1342" /><Obs TIME_PERIOD="2016" OBS_VALUE="1371" /></Series><Series Geography="9" Sex="1" Age_group="138" UOM="249" DGUID="2016A000247" SCALAR_FACTOR="0" VECTOR_ID="31226848" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="445" /><Obs TIME_PERIOD="2016" OBS_VALUE="407" /></Series><Series Geography="14" Sex="1" Age_group="138" UOM="249" DGUID="2016A000261" SCALAR_FACTOR="0" VECTOR_ID="31227043" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="1" /><Obs TIME_PERIOD="2016" OBS_VALUE="3" /></Series><Series Geography="6" Sex="1" Age_group="138" UOM="249" DGUID="2016A000224" SCALAR_FACTOR="0" VECTOR_ID="31226731" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="1719" /><Obs TIME_PERIOD="2016" OBS_VALUE="2008" /></Series><Series Geography="12" Sex="1" Age_group="138" UOM="249" DGUID="2016A000260" SCALAR_FACTOR="0" VECTOR_ID="31226965" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="0" /><Obs TIME_PERIOD="2016" OBS_VALUE="0" /></Series><Series Geography="8" Sex="1" Age_group="138" UOM="249" DGUID="2016A000246" SCALAR_FACTOR="0" VECTOR_ID="31226809" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="375" /><Obs TIME_PERIOD="2016" OBS_VALUE="446" /></Series><Series Geography="7" Sex="1" Age_group="138" UOM="249" DGUID="2016A000235" SCALAR_FACTOR="0" VECTOR_ID="31226770" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="2790" /><Obs TIME_PERIOD="2016" OBS_VALUE="3067" /></Series><Series Geography="4" Sex="1" Age_group="138" UOM="249" DGUID="2016A000212" SCALAR_FACTOR="0" VECTOR_ID="31226653" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="263" /><Obs TIME_PERIOD="2016" OBS_VALUE="279" /></Series><Series Geography="1" Sex="1" Age_group="138" UOM="249" DGUID="2016A000011124" SCALAR_FACTOR="0" VECTOR_ID="31226536" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="7911" /><Obs TIME_PERIOD="2016" OBS_VALUE="8643" /></Series><Series Geography="3" Sex="1" Age_group="138" UOM="249" DGUID="2016A000211" SCALAR_FACTOR="0" VECTOR_ID="31226614" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="37" /><Obs TIME_PERIOD="2016" OBS_VALUE="36" /></Series><Series Geography="10" Sex="1" Age_group="138" UOM="249" DGUID="2016A000248" SCALAR_FACTOR="0" VECTOR_ID="31226887" NB_DECIMAL="0"><Obs TIME_PERIOD="2015" OBS_VALUE="619" /><Obs TIME_PERIOD="2016" OBS_VALUE="717" /></Series></message:DataSet></message:StructureSpecificData>
SDMX-JSON
{"header":{"id":"IREFe54d9d171ea440efac8ea032cbbe156c","prepared":"2019-11-28T00:06:42","test":true,"sender":{"id":"NOT_CONFIGURED","name":"unknown"}},"dataSets":[{"action":"Information","annotations":[],"series":{"0:0:0":{"attributes":[0,0,0,0,0,null],"annotations":[],"observations":{"0":[107],"1":[99]}},"1:0:0":{"attributes":[0,1,0,1,0,null],"annotations":[],"observations":{"0":[1],"1":[1]}},"2:0:0":{"attributes":[0,2,0,2,0,null],"annotations":[],"observations":{"0":[212],"1":[209]}},"3:0:0":{"attributes":[0,3,0,3,0,null],"annotations":[],"observations":{"0":[1342],"1":[1371]}},"4:0:0":{"attributes":[0,4,0,4,0,null],"annotations":[],"observations":{"0":[445],"1":[407]}},"5:0:0":{"attributes":[0,5,0,5,0,null],"annotations":[],"observations":{"0":[1],"1":[3]}},"6:0:0":{"attributes":[0,6,0,6,0,null],"annotations":[],"observations":{"0":[1719],"1":[2008]}},"7:0:0":{"attributes":[0,7,0,7,0,null],"annotations":[],"observations":{"0":[0],"1":[0]}},"8:0:0":{"attributes":[0,8,0,8,0,null],"annotations":[],"observations":{"0":[375],"1":[446]}},"9:0:0":{"attributes":[0,9,0,9,0,null],"annotations":[],"observations":{"0":[2790],"1":[3067]}},"10:0:0":{"attributes":[0,10,0,10,0,null],"annotations":[],"observations":{"0":[263],"1":[279]}},"11:0:0":{"attributes":[0,11,0,11,0,null],"annotations":[],"observations":{"0":[7911],"1":[8643]}},"12:0:0":{"attributes":[0,12,0,12,0,null],"annotations":[],"observations":{"0":[37],"1":[36]}},"13:0:0":{"attributes":[0,13,0,13,0,null],"annotations":[],"observations":{"0":[619],"1":[717]}}}}],"structure":{"name":"Population estimates on July 1st, by age and sex","description":"","dimensions":{"dataset":[],"series":[{"id":"Geography","name":"Geography","keyPosition":0,"role":"Geography","values":[{"id":"2","name":"Newfoundland and Labrador"},{"id":"15","name":"Nunavut"},{"id":"5","name":"New Brunswick"},{"id":"11","name":"British Columbia"},{"id":"9","name":"Saskatchewan"},{"id":"14","name":"Northwest Territories"},{"id":"6","name":"Quebec"},{"id":"12","name":"Yukon"},{"id":"8","name":"Manitoba"},{"id":"7","name":"Ontario"},{"id":"4","name":"Nova Scotia"},{"id":"1","name":"Canada"},{"id":"3","name":"Prince Edward Island"},{"id":"10","name":"Alberta"}]},{"id":"Sex","name":"Sex","keyPosition":1,"role":"Sex","values":[{"id":"1","name":"Both sexes"}]},{"id":"Age_group","name":"Age group","keyPosition":2,"role":"Age_group","values":[{"id":"138","name":"100 years and over"}]}],"observation":[{"id":"TIME_PERIOD","name":"Time","keyPosition":3,"role":"TIME_PERIOD","values":[{"start":"2015-01-01T00:00:00","end":"2015-12-31T23:59:59","id":"2015","name":"2015"},{"start":"2016-01-01T00:00:00","end":"2016-12-31T23:59:59","id":"2016","name":"2016"}]}]},"attributes":{"dataSet":[],"series":[{"id":"UOM","name":"Unit of measure","role":"UOM","values":[{"id":"249","name":"Persons"}]},{"id":"DGUID","name":"DGUID","role":"DGUID","values":[{"id":"2016A000210","name":"2016A000210"},{"id":"2016A000262","name":"2016A000262"},{"id":"2016A000213","name":"2016A000213"},{"id":"2016A000259","name":"2016A000259"},{"id":"2016A000247","name":"2016A000247"},{"id":"2016A000261","name":"2016A000261"},{"id":"2016A000224","name":"2016A000224"},{"id":"2016A000260","name":"2016A000260"},{"id":"2016A000246","name":"2016A000246"},{"id":"2016A000235","name":"2016A000235"},{"id":"2016A000212","name":"2016A000212"},{"id":"2016A000011124","name":"2016A000011124"},{"id":"2016A000211","name":"2016A000211"},{"id":"2016A000248","name":"2016A000248"}]},{"id":"SCALAR_FACTOR","name":"Scalar Factor","role":"SCALAR_FACTOR","values":[{"id":"0","name":"units"}]},{"id":"VECTOR_ID","name":"Vector ID","role":"VECTOR_ID","values":[{"id":"31226575","name":"31226575"},{"id":"31227082","name":"31227082"},{"id":"31226692","name":"31226692"},{"id":"31226926","name":"31226926"},{"id":"31226848","name":"31226848"},{"id":"31227043","name":"31227043"},{"id":"31226731","name":"31226731"},{"id":"31226965","name":"31226965"},{"id":"31226809","name":"31226809"},{"id":"31226770","name":"31226770"},{"id":"31226653","name":"31226653"},{"id":"31226536","name":"31226536"},{"id":"31226614","name":"31226614"},{"id":"31226887","name":"31226887"}]},{"id":"NB_DECIMAL","name":"Number of decimal","role":"NB_DECIMAL","values":[{"id":"0","name":"0"}]},{"id":"TERMINATED","name":"Terminated","role":"TERMINATED","values":[]}],"observation":[{"id":"SYMBOL","name":"Symbol","role":"SYMBOL","values":[]},{"id":"STATUS_CAN","name":"Status","role":"STATUS_CAN","values":[]},{"id":"SECURITY_LEVEL","name":"Security Level","role":"SECURITY_LEVEL","values":[]}]},"annotations":[]}}

SDMX Data (vector) Web Service

All the data stored in CODR can be retrieved using the query string described below.

 protocol://wsEntryPoint/resource/vector?parameters

where parameters are defined as such:

startPeriod=value&endPeriod=value&firstNObservations=value&lastNObservations=value&detail=value

Syntax definition

protocol
The web service is available over http and https.
wsEntryPoint
The web service entry point is available at the same location of the sdmx data and metadata entry point.
resource
The resource for vector queries is vector.
vector
The vector allows statistical time series to be identified. Vectors are unique identifiers to a time series of data points. (i.e. v123456) They do not change over time. Given the vector number does not change, users can still use the same vectors as shortcuts to their data points of interest.
startPeriod & endPeriod

It is possible to define a date range for which observations should be returned by using the startPeriod and/or endPeriod parameters. The values should be given according to the syntax defined in ISO 8601 or as SDMX reporting periods. The format will vary depending on the frequency.

The supported formats are:

  • YYYY for annual data (e.g.: 2013).
  • YYYY-MM for monthly data (e.g.: 2013-01).
  • YYYY-MM-DD for daily data (e.g.: 2013-01-01).
Detail

Using the detail parameter, it is possible to specify the desired amount of information to be returned by the web service.

Possible options are:

  • full: The data (series and observations) and the attributes will be returned. This is the default.
firstNObservations & lastNObservations
Using the firstNObservations and/or lastNObservations parameters, it is possible to specify the maximum number of observations to be returned for each of the matching series, starting from the first observation (firstNObservations) or counting back from the most recent observation (lastNObservations).

Examples

4. Retrieve the data for the series (vectors) 466670 (Canada / Male / All ages). Table 17100005 is presented in full details in appendix 1.

https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/vector/v466670

Results

SDMX-ML 2.1 Generic Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:GenericData xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:generic="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/generic" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREFf7ccf4e1550b46f9b91a43343e5debd3</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-26T00:17:08</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" structureRef="StatCan_Data_Structure_17100005_1_0"><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="1" /><generic:Value id="Sex" value="3" /><generic:Value id="Age_group" value="1" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000011124" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="466670" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2012" /><generic:ObsValue value="17504322" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2013" /><generic:ObsValue value="17681789" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2014" /><generic:ObsValue value="17855738" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="17990107" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="18192991" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2017" /><generic:ObsValue value="18408053" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2018" /><generic:ObsValue value="18655084" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2019" /><generic:ObsValue value="18911177" /></generic:Obs></generic:Series><generic:Series><generic:SeriesKey><generic:Value id="Geography" value="1" /><generic:Value id="Sex" value="2" /><generic:Value id="Age_group" value="1" /></generic:SeriesKey><generic:Attributes><generic:Value id="UOM" value="249" /><generic:Value id="DGUID" value="2016A000011124" /><generic:Value id="SCALAR_FACTOR" value="0" /><generic:Value id="VECTOR_ID" value="466669" /><generic:Value id="NB_DECIMAL" value="0" /></generic:Attributes><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2012" /><generic:ObsValue value="17209900" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2013" /><generic:ObsValue value="17401165" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2014" /><generic:ObsValue value="17581697" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2015" /><generic:ObsValue value="17712801" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2016" /><generic:ObsValue value="17916496" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2017" /><generic:ObsValue value="18135268" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2018" /><generic:ObsValue value="18402681" /></generic:Obs><generic:Obs><generic:ObsDimension id="TIME_PERIOD" value="2019" /><generic:ObsValue value="18678085" /></generic:Obs></generic:Series></message:DataSet></message:GenericData>
SDMX-ML 2.1 Structure Specific Data
<?xml version="1.0" encoding="utf-8"?><!--NSI Web Service v7.8.0.0--><message:StructureSpecificData xmlns:ss="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/structurespecific" xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:ns1="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace"><message:Header><message:ID>IREF36867abba54c43c29ec589d4027bf84d</message:ID><message:Test>true</message:Test><message:Prepared>2019-11-26T00:17:07</message:Prepared><message:Sender id="NOT_CONFIGURED" /><message:Structure structureID="StatCan_Data_Structure_17100005_1_0" namespace="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0):ObsLevelDim:TIME_PERIOD" dimensionAtObservation="TIME_PERIOD"><common:Structure><Ref agencyID="StatCan" id="Data_Structure_17100005" version="1.0" /></common:Structure></message:Structure><message:DataSetAction>Information</message:DataSetAction></message:Header><message:DataSet action="Information" ss:dataScope="DataStructure" xsi:type="ns1:DataSetType" ss:structureRef="StatCan_Data_Structure_17100005_1_0"><Series Geography="1" Sex="3" Age_group="1" UOM="249" DGUID="2016A000011124" SCALAR_FACTOR="0" VECTOR_ID="466670" NB_DECIMAL="0"><Obs TIME_PERIOD="2012" OBS_VALUE="17504322" /><Obs TIME_PERIOD="2013" OBS_VALUE="17681789" /><Obs TIME_PERIOD="2014" OBS_VALUE="17855738" /><Obs TIME_PERIOD="2015" OBS_VALUE="17990107" /><Obs TIME_PERIOD="2016" OBS_VALUE="18192991" /><Obs TIME_PERIOD="2017" OBS_VALUE="18408053" /><Obs TIME_PERIOD="2018" OBS_VALUE="18655084" /><Obs TIME_PERIOD="2019" OBS_VALUE="18911177" /></Series><Series Geography="1" Sex="2" Age_group="1" UOM="249" DGUID="2016A000011124" SCALAR_FACTOR="0" VECTOR_ID="466669" NB_DECIMAL="0"><Obs TIME_PERIOD="2012" OBS_VALUE="17209900" /><Obs TIME_PERIOD="2013" OBS_VALUE="17401165" /><Obs TIME_PERIOD="2014" OBS_VALUE="17581697" /><Obs TIME_PERIOD="2015" OBS_VALUE="17712801" /><Obs TIME_PERIOD="2016" OBS_VALUE="17916496" /><Obs TIME_PERIOD="2017" OBS_VALUE="18135268" /><Obs TIME_PERIOD="2018" OBS_VALUE="18402681" /><Obs TIME_PERIOD="2019" OBS_VALUE="18678085" /></Series></message:DataSet></message:StructureSpecificData>
SDMX-JSON
{"header":{"id":"IREF70e5ea2ecc1c47fba2695be637395233","prepared":"2019-11-26T00:17:10","test":true,"sender":{"id":"NOT_CONFIGURED","name":"unknown"}},"dataSets":[{"action":"Information","annotations":[],"series":{"0:0:0":{"attributes":[0,0,0,0,0,null],"annotations":[],"observations":{"0":[17504322],"1":[17681789],"2":[17855738],"3":[17990107],"4":[18192991],"5":[18408053],"6":[18655084],"7":[18911177]}},"0:1:0":{"attributes":[0,0,0,1,0,null],"annotations":[],"observations":{"0":[17209900],"1":[17401165],"2":[17581697],"3":[17712801],"4":[17916496],"5":[18135268],"6":[18402681],"7":[18678085]}}}}],"structure":{"name":"Population estimates on July 1st, by age and sex","description":"","dimensions":{"dataset":[],"series":[{"id":"Geography","name":"Geography","keyPosition":0,"role":"Geography","values":[{"id":"1","name":"Canada"}]},{"id":"Sex","name":"Sex","keyPosition":1,"role":"Sex","values":[{"id":"3","name":"Females"},{"id":"2","name":"Males"}]},{"id":"Age_group","name":"Age group","keyPosition":2,"role":"Age_group","values":[{"id":"1","name":"All ages"}]}],"observation":[{"id":"TIME_PERIOD","name":"Time","keyPosition":3,"role":"TIME_PERIOD","values":[{"start":"2012-01-01T00:00:00","end":"2012-12-31T23:59:59","id":"2012","name":"2012"},{"start":"2013-01-01T00:00:00","end":"2013-12-31T23:59:59","id":"2013","name":"2013"},{"start":"2014-01-01T00:00:00","end":"2014-12-31T23:59:59","id":"2014","name":"2014"},{"start":"2015-01-01T00:00:00","end":"2015-12-31T23:59:59","id":"2015","name":"2015"},{"start":"2016-01-01T00:00:00","end":"2016-12-31T23:59:59","id":"2016","name":"2016"},{"start":"2017-01-01T00:00:00","end":"2017-12-31T23:59:59","id":"2017","name":"2017"},{"start":"2018-01-01T00:00:00","end":"2018-12-31T23:59:59","id":"2018","name":"2018"},{"start":"2019-01-01T00:00:00","end":"2019-12-31T23:59:59","id":"2019","name":"2019"}]}]},"attributes":{"dataSet":[],"series":[{"id":"UOM","name":"Unit of measure","role":"UOM","values":[{"id":"249","name":"Persons"}]},{"id":"DGUID","name":"DGUID","role":"DGUID","values":[{"id":"2016A000011124","name":"2016A000011124"}]},{"id":"SCALAR_FACTOR","name":"Scalar Factor","role":"SCALAR_FACTOR","values":[{"id":"0","name":"units"}]},{"id":"VECTOR_ID","name":"Vector ID","role":"VECTOR_ID","values":[{"id":"466670","name":"466670"},{"id":"466669","name":"466669"}]},{"id":"NB_DECIMAL","name":"Number of decimal","role":"NB_DECIMAL","values":[{"id":"0","name":"0"}]},{"id":"TERMINATED","name":"Terminated","role":"TERMINATED","values":[]}],"observation":[{"id":"SYMBOL","name":"Symbol","role":"SYMBOL","values":[]},{"id":"STATUS_CAN","name":"Status","role":"STATUS_CAN","values":[]},{"id":"SECURITY_LEVEL","name":"Security Level","role":"SECURITY_LEVEL","values":[]}]},"annotations":[]}}

SDMX Metadata (structure) Web Service

5. Retrieve the latest version in production of the DSD with id 17100005 data structure. Table 17100005 is presented in full details in appendix 1.

https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/structure/Data_Structure_17100005

Results

SDMX-ML Structure format
<?xml version="1.0" encoding="utf-8"?>
<!--NSI Web Service v7.8.0.0-->
<message:Structure xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:structure="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/structure" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common">
  <message:Header>
    <message:ID>IDREF2</message:ID>
    <message:Test>false</message:Test>
    <message:Prepared>2019-11-28T00:14:57.0026038+00:00</message:Prepared>
    <message:Sender id="Unknown" />
    <message:Receiver id="Unknown" />
  </message:Header>
  <message:Structures>
    <structure:Codelists>
      <structure:Codelist id="CL_17100005_Age_group" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_Age_group(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Age group</common:Name>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).1">
          <common:Name xml:lang="en">All ages</common:Name>
          <common:Name xml:lang="fr">Tous âges</common:Name>
        </structure:Code>
        <structure:Code id="7" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).7">
          <common:Name xml:lang="en">0 to 4 years</common:Name>
          <common:Name xml:lang="fr">0 à 4 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="2" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).2">
          <common:Name xml:lang="en">0 years</common:Name>
          <common:Name xml:lang="fr">0 an</common:Name>
          <structure:Parent>
            <Ref id="7" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="3" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).3">
          <common:Name xml:lang="en">1 year</common:Name>
          <common:Name xml:lang="fr">1 an</common:Name>
          <structure:Parent>
            <Ref id="7" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="4" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).4">
          <common:Name xml:lang="en">2 years</common:Name>
          <common:Name xml:lang="fr">2 ans</common:Name>
          <structure:Parent>
            <Ref id="7" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="5" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).5">
          <common:Name xml:lang="en">3 years</common:Name>
          <common:Name xml:lang="fr">3 ans</common:Name>
          <structure:Parent>
            <Ref id="7" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="6" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).6">
          <common:Name xml:lang="en">4 years</common:Name>
          <common:Name xml:lang="fr">4 ans</common:Name>
          <structure:Parent>
            <Ref id="7" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="13" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).13">
          <common:Name xml:lang="en">5 to 9 years</common:Name>
          <common:Name xml:lang="fr">5 à 9 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="8" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).8">
          <common:Name xml:lang="en">5 years</common:Name>
          <common:Name xml:lang="fr">5 ans</common:Name>
          <structure:Parent>
            <Ref id="13" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="9" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).9">
          <common:Name xml:lang="en">6 years</common:Name>
          <common:Name xml:lang="fr">6 ans</common:Name>
          <structure:Parent>
            <Ref id="13" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="10" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).10">
          <common:Name xml:lang="en">7 years</common:Name>
          <common:Name xml:lang="fr">7 ans</common:Name>
          <structure:Parent>
            <Ref id="13" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="11" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).11">
          <common:Name xml:lang="en">8 years</common:Name>
          <common:Name xml:lang="fr">8 ans</common:Name>
          <structure:Parent>
            <Ref id="13" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="12" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).12">
          <common:Name xml:lang="en">9 years</common:Name>
          <common:Name xml:lang="fr">9 ans</common:Name>
          <structure:Parent>
            <Ref id="13" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="19" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).19">
          <common:Name xml:lang="en">10 to 14 years</common:Name>
          <common:Name xml:lang="fr">10 à 14 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="14" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).14">
          <common:Name xml:lang="en">10 years</common:Name>
          <common:Name xml:lang="fr">10 ans</common:Name>
          <structure:Parent>
            <Ref id="19" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="15" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).15">
          <common:Name xml:lang="en">11 years</common:Name>
          <common:Name xml:lang="fr">11 ans</common:Name>
          <structure:Parent>
            <Ref id="19" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="16" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).16">
          <common:Name xml:lang="en">12 years</common:Name>
          <common:Name xml:lang="fr">12 ans</common:Name>
          <structure:Parent>
            <Ref id="19" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="17" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).17">
          <common:Name xml:lang="en">13 years</common:Name>
          <common:Name xml:lang="fr">13 ans</common:Name>
          <structure:Parent>
            <Ref id="19" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="18" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).18">
          <common:Name xml:lang="en">14 years</common:Name>
          <common:Name xml:lang="fr">14 ans</common:Name>
          <structure:Parent>
            <Ref id="19" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="25" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).25">
          <common:Name xml:lang="en">15 to 19 years</common:Name>
          <common:Name xml:lang="fr">15 à 19 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="20" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).20">
          <common:Name xml:lang="en">15 years</common:Name>
          <common:Name xml:lang="fr">15 ans</common:Name>
          <structure:Parent>
            <Ref id="25" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="21" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).21">
          <common:Name xml:lang="en">16 years</common:Name>
          <common:Name xml:lang="fr">16 ans</common:Name>
          <structure:Parent>
            <Ref id="25" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="22" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).22">
          <common:Name xml:lang="en">17 years</common:Name>
          <common:Name xml:lang="fr">17 ans</common:Name>
          <structure:Parent>
            <Ref id="25" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="23" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).23">
          <common:Name xml:lang="en">18 years</common:Name>
          <common:Name xml:lang="fr">18 ans</common:Name>
          <structure:Parent>
            <Ref id="25" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="24" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).24">
          <common:Name xml:lang="en">19 years</common:Name>
          <common:Name xml:lang="fr">19 ans</common:Name>
          <structure:Parent>
            <Ref id="25" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="31" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).31">
          <common:Name xml:lang="en">20 to 24 years</common:Name>
          <common:Name xml:lang="fr">20 à 24 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="26" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).26">
          <common:Name xml:lang="en">20 years</common:Name>
          <common:Name xml:lang="fr">20 ans</common:Name>
          <structure:Parent>
            <Ref id="31" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="27" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).27">
          <common:Name xml:lang="en">21 years</common:Name>
          <common:Name xml:lang="fr">21 ans</common:Name>
          <structure:Parent>
            <Ref id="31" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="28" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).28">
          <common:Name xml:lang="en">22 years</common:Name>
          <common:Name xml:lang="fr">22 ans</common:Name>
          <structure:Parent>
            <Ref id="31" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="29" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).29">
          <common:Name xml:lang="en">23 years</common:Name>
          <common:Name xml:lang="fr">23 ans</common:Name>
          <structure:Parent>
            <Ref id="31" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="30" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).30">
          <common:Name xml:lang="en">24 years</common:Name>
          <common:Name xml:lang="fr">24 ans</common:Name>
          <structure:Parent>
            <Ref id="31" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="37" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).37">
          <common:Name xml:lang="en">25 to 29 years</common:Name>
          <common:Name xml:lang="fr">25 à 29 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="32" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).32">
          <common:Name xml:lang="en">25 years</common:Name>
          <common:Name xml:lang="fr">25 ans</common:Name>
          <structure:Parent>
            <Ref id="37" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="33" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).33">
          <common:Name xml:lang="en">26 years</common:Name>
          <common:Name xml:lang="fr">26 ans</common:Name>
          <structure:Parent>
            <Ref id="37" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="34" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).34">
          <common:Name xml:lang="en">27 years</common:Name>
          <common:Name xml:lang="fr">27 ans</common:Name>
          <structure:Parent>
            <Ref id="37" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="35" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).35">
          <common:Name xml:lang="en">28 years</common:Name>
          <common:Name xml:lang="fr">28 ans</common:Name>
          <structure:Parent>
            <Ref id="37" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="36" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).36">
          <common:Name xml:lang="en">29 years</common:Name>
          <common:Name xml:lang="fr">29 ans</common:Name>
          <structure:Parent>
            <Ref id="37" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="43" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).43">
          <common:Name xml:lang="en">30 to 34 years</common:Name>
          <common:Name xml:lang="fr">30 à 34 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="38" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).38">
          <common:Name xml:lang="en">30 years</common:Name>
          <common:Name xml:lang="fr">30 ans</common:Name>
          <structure:Parent>
            <Ref id="43" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="39" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).39">
          <common:Name xml:lang="en">31 years</common:Name>
          <common:Name xml:lang="fr">31 ans</common:Name>
          <structure:Parent>
            <Ref id="43" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="40" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).40">
          <common:Name xml:lang="en">32 years</common:Name>
          <common:Name xml:lang="fr">32 ans</common:Name>
          <structure:Parent>
            <Ref id="43" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="41" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).41">
          <common:Name xml:lang="en">33 years</common:Name>
          <common:Name xml:lang="fr">33 ans</common:Name>
          <structure:Parent>
            <Ref id="43" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="42" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).42">
          <common:Name xml:lang="en">34 years</common:Name>
          <common:Name xml:lang="fr">34 ans</common:Name>
          <structure:Parent>
            <Ref id="43" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="49" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).49">
          <common:Name xml:lang="en">35 to 39 years</common:Name>
          <common:Name xml:lang="fr">35 à 39 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="44" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).44">
          <common:Name xml:lang="en">35 years</common:Name>
          <common:Name xml:lang="fr">35 ans</common:Name>
          <structure:Parent>
            <Ref id="49" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="45" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).45">
          <common:Name xml:lang="en">36 years</common:Name>
          <common:Name xml:lang="fr">36 ans</common:Name>
          <structure:Parent>
            <Ref id="49" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="46" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).46">
          <common:Name xml:lang="en">37 years</common:Name>
          <common:Name xml:lang="fr">37 ans</common:Name>
          <structure:Parent>
            <Ref id="49" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="47" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).47">
          <common:Name xml:lang="en">38 years</common:Name>
          <common:Name xml:lang="fr">38 ans</common:Name>
          <structure:Parent>
            <Ref id="49" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="48" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).48">
          <common:Name xml:lang="en">39 years</common:Name>
          <common:Name xml:lang="fr">39 ans</common:Name>
          <structure:Parent>
            <Ref id="49" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="55" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).55">
          <common:Name xml:lang="en">40 to 44 years</common:Name>
          <common:Name xml:lang="fr">40 à 44 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="50" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).50">
          <common:Name xml:lang="en">40 years</common:Name>
          <common:Name xml:lang="fr">40 ans</common:Name>
          <structure:Parent>
            <Ref id="55" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="51" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).51">
          <common:Name xml:lang="en">41 years</common:Name>
          <common:Name xml:lang="fr">41 ans</common:Name>
          <structure:Parent>
            <Ref id="55" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="52" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).52">
          <common:Name xml:lang="en">42 years</common:Name>
          <common:Name xml:lang="fr">42 ans</common:Name>
          <structure:Parent>
            <Ref id="55" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="53" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).53">
          <common:Name xml:lang="en">43 years</common:Name>
          <common:Name xml:lang="fr">43 ans</common:Name>
          <structure:Parent>
            <Ref id="55" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="54" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).54">
          <common:Name xml:lang="en">44 years</common:Name>
          <common:Name xml:lang="fr">44 ans</common:Name>
          <structure:Parent>
            <Ref id="55" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="61" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).61">
          <common:Name xml:lang="en">45 to 49 years</common:Name>
          <common:Name xml:lang="fr">45 à 49 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="56" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).56">
          <common:Name xml:lang="en">45 years</common:Name>
          <common:Name xml:lang="fr">45 ans</common:Name>
          <structure:Parent>
            <Ref id="61" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="57" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).57">
          <common:Name xml:lang="en">46 years</common:Name>
          <common:Name xml:lang="fr">46 ans</common:Name>
          <structure:Parent>
            <Ref id="61" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="58" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).58">
          <common:Name xml:lang="en">47 years</common:Name>
          <common:Name xml:lang="fr">47 ans</common:Name>
          <structure:Parent>
            <Ref id="61" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="59" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).59">
          <common:Name xml:lang="en">48 years</common:Name>
          <common:Name xml:lang="fr">48 ans</common:Name>
          <structure:Parent>
            <Ref id="61" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="60" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).60">
          <common:Name xml:lang="en">49 years</common:Name>
          <common:Name xml:lang="fr">49 ans</common:Name>
          <structure:Parent>
            <Ref id="61" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="67" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).67">
          <common:Name xml:lang="en">50 to 54 years</common:Name>
          <common:Name xml:lang="fr">50 à 54 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="62" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).62">
          <common:Name xml:lang="en">50 years</common:Name>
          <common:Name xml:lang="fr">50 ans</common:Name>
          <structure:Parent>
            <Ref id="67" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="63" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).63">
          <common:Name xml:lang="en">51 years</common:Name>
          <common:Name xml:lang="fr">51 ans</common:Name>
          <structure:Parent>
            <Ref id="67" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="64" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).64">
          <common:Name xml:lang="en">52 years</common:Name>
          <common:Name xml:lang="fr">52 ans</common:Name>
          <structure:Parent>
            <Ref id="67" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="65" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).65">
          <common:Name xml:lang="en">53 years</common:Name>
          <common:Name xml:lang="fr">53 ans</common:Name>
          <structure:Parent>
            <Ref id="67" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="66" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).66">
          <common:Name xml:lang="en">54 years</common:Name>
          <common:Name xml:lang="fr">54 ans</common:Name>
          <structure:Parent>
            <Ref id="67" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="73" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).73">
          <common:Name xml:lang="en">55 to 59 years</common:Name>
          <common:Name xml:lang="fr">55 à 59 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="68" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).68">
          <common:Name xml:lang="en">55 years</common:Name>
          <common:Name xml:lang="fr">55 ans</common:Name>
          <structure:Parent>
            <Ref id="73" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="69" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).69">
          <common:Name xml:lang="en">56 years</common:Name>
          <common:Name xml:lang="fr">56 ans</common:Name>
          <structure:Parent>
            <Ref id="73" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="70" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).70">
          <common:Name xml:lang="en">57 years</common:Name>
          <common:Name xml:lang="fr">57 ans</common:Name>
          <structure:Parent>
            <Ref id="73" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="71" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).71">
          <common:Name xml:lang="en">58 years</common:Name>
          <common:Name xml:lang="fr">58 ans</common:Name>
          <structure:Parent>
            <Ref id="73" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="72" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).72">
          <common:Name xml:lang="en">59 years</common:Name>
          <common:Name xml:lang="fr">59 ans</common:Name>
          <structure:Parent>
            <Ref id="73" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="79" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).79">
          <common:Name xml:lang="en">60 to 64 years</common:Name>
          <common:Name xml:lang="fr">60 à 64 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="74" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).74">
          <common:Name xml:lang="en">60 years</common:Name>
          <common:Name xml:lang="fr">60 ans</common:Name>
          <structure:Parent>
            <Ref id="79" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="75" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).75">
          <common:Name xml:lang="en">61 years</common:Name>
          <common:Name xml:lang="fr">61 ans</common:Name>
          <structure:Parent>
            <Ref id="79" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="76" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).76">
          <common:Name xml:lang="en">62 years</common:Name>
          <common:Name xml:lang="fr">62 ans</common:Name>
          <structure:Parent>
            <Ref id="79" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="77" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).77">
          <common:Name xml:lang="en">63 years</common:Name>
          <common:Name xml:lang="fr">63 ans</common:Name>
          <structure:Parent>
            <Ref id="79" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="78" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).78">
          <common:Name xml:lang="en">64 years</common:Name>
          <common:Name xml:lang="fr">64 ans</common:Name>
          <structure:Parent>
            <Ref id="79" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="85" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).85">
          <common:Name xml:lang="en">65 to 69 years</common:Name>
          <common:Name xml:lang="fr">65 à 69 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="80" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).80">
          <common:Name xml:lang="en">65 years</common:Name>
          <common:Name xml:lang="fr">65 ans</common:Name>
          <structure:Parent>
            <Ref id="85" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="81" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).81">
          <common:Name xml:lang="en">66 years</common:Name>
          <common:Name xml:lang="fr">66 ans</common:Name>
          <structure:Parent>
            <Ref id="85" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="82" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).82">
          <common:Name xml:lang="en">67 years</common:Name>
          <common:Name xml:lang="fr">67 ans</common:Name>
          <structure:Parent>
            <Ref id="85" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="83" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).83">
          <common:Name xml:lang="en">68 years</common:Name>
          <common:Name xml:lang="fr">68 ans</common:Name>
          <structure:Parent>
            <Ref id="85" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="84" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).84">
          <common:Name xml:lang="en">69 years</common:Name>
          <common:Name xml:lang="fr">69 ans</common:Name>
          <structure:Parent>
            <Ref id="85" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="86" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).86">
          <common:Name xml:lang="en">70 to 74 years</common:Name>
          <common:Name xml:lang="fr">70 à 74 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="87" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).87">
          <common:Name xml:lang="en">75 to 79 years</common:Name>
          <common:Name xml:lang="fr">75 à 79 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="88" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).88">
          <common:Name xml:lang="en">80 to 84 years</common:Name>
          <common:Name xml:lang="fr">80 à 84 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="89" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).89">
          <common:Name xml:lang="en">85 to 89 years</common:Name>
          <common:Name xml:lang="fr">85 à 89 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="90" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).90">
          <common:Name xml:lang="en">90 years and over</common:Name>
          <common:Name xml:lang="fr">90 ans et plus</common:Name>
        </structure:Code>
        <structure:Code id="91" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).91">
          <common:Name xml:lang="en">0 to 14 years</common:Name>
          <common:Name xml:lang="fr">0 à 14 ans</common:Name>
        </structure:Code>
        <structure:Code id="92" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).92">
          <common:Name xml:lang="en">0 to 15 years</common:Name>
          <common:Name xml:lang="fr">0 à 15 ans</common:Name>
        </structure:Code>
        <structure:Code id="93" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).93">
          <common:Name xml:lang="en">0 to 16 years</common:Name>
          <common:Name xml:lang="fr">0 à 16 ans</common:Name>
        </structure:Code>
        <structure:Code id="94" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).94">
          <common:Name xml:lang="en">0 to 17 years</common:Name>
          <common:Name xml:lang="fr">0 à 17 ans</common:Name>
        </structure:Code>
        <structure:Code id="95" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).95">
          <common:Name xml:lang="en">15 to 49 years</common:Name>
          <common:Name xml:lang="fr">15 à 49 ans</common:Name>
        </structure:Code>
        <structure:Code id="96" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).96">
          <common:Name xml:lang="en">15 to 64 years</common:Name>
          <common:Name xml:lang="fr">15 à 64 ans</common:Name>
        </structure:Code>
        <structure:Code id="97" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).97">
          <common:Name xml:lang="en">16 to 64 years</common:Name>
          <common:Name xml:lang="fr">16 à 64 ans</common:Name>
        </structure:Code>
        <structure:Code id="98" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).98">
          <common:Name xml:lang="en">17 to 64 years</common:Name>
          <common:Name xml:lang="fr">17 à 64 ans</common:Name>
        </structure:Code>
        <structure:Code id="101" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).101">
          <common:Name xml:lang="en">18 years and over</common:Name>
          <common:Name xml:lang="fr">18 ans et plus</common:Name>
        </structure:Code>
        <structure:Code id="100" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).100">
          <common:Name xml:lang="en">18 to 64 years</common:Name>
          <common:Name xml:lang="fr">18 à 64 ans</common:Name>
          <structure:Parent>
            <Ref id="101" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="99" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).99">
          <common:Name xml:lang="en">18 to 24 years</common:Name>
          <common:Name xml:lang="fr">18 à 24 ans</common:Name>
          <structure:Parent>
            <Ref id="100" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="102" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).102">
          <common:Name xml:lang="en">25 to 44 years</common:Name>
          <common:Name xml:lang="fr">25 à 44 ans</common:Name>
          <structure:Parent>
            <Ref id="100" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="103" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).103">
          <common:Name xml:lang="en">45 to 64 years</common:Name>
          <common:Name xml:lang="fr">45 à 64 ans</common:Name>
          <structure:Parent>
            <Ref id="100" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="104" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).104">
          <common:Name xml:lang="en">65 years and over</common:Name>
          <common:Name xml:lang="fr">65 ans et plus</common:Name>
          <structure:Parent>
            <Ref id="101" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="105" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).105">
          <common:Name xml:lang="en">Median age</common:Name>
          <common:Name xml:lang="fr">Âge médian</common:Name>
        </structure:Code>
        <structure:Code id="106" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).106">
          <common:Name xml:lang="en">70 years</common:Name>
          <common:Name xml:lang="fr">70 ans</common:Name>
          <structure:Parent>
            <Ref id="86" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="107" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).107">
          <common:Name xml:lang="en">71 years</common:Name>
          <common:Name xml:lang="fr">71 ans</common:Name>
          <structure:Parent>
            <Ref id="86" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="108" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).108">
          <common:Name xml:lang="en">72 years</common:Name>
          <common:Name xml:lang="fr">72 ans</common:Name>
          <structure:Parent>
            <Ref id="86" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="109" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).109">
          <common:Name xml:lang="en">73 years</common:Name>
          <common:Name xml:lang="fr">73 ans</common:Name>
          <structure:Parent>
            <Ref id="86" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="110" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).110">
          <common:Name xml:lang="en">74 years</common:Name>
          <common:Name xml:lang="fr">74 ans</common:Name>
          <structure:Parent>
            <Ref id="86" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="111" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).111">
          <common:Name xml:lang="en">75 years</common:Name>
          <common:Name xml:lang="fr">75 ans</common:Name>
          <structure:Parent>
            <Ref id="87" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="112" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).112">
          <common:Name xml:lang="en">76 years</common:Name>
          <common:Name xml:lang="fr">76 ans</common:Name>
          <structure:Parent>
            <Ref id="87" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="113" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).113">
          <common:Name xml:lang="en">77 years</common:Name>
          <common:Name xml:lang="fr">77 ans</common:Name>
          <structure:Parent>
            <Ref id="87" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="114" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).114">
          <common:Name xml:lang="en">78 years</common:Name>
          <common:Name xml:lang="fr">78 ans</common:Name>
          <structure:Parent>
            <Ref id="87" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="115" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).115">
          <common:Name xml:lang="en">79 years</common:Name>
          <common:Name xml:lang="fr">79 ans</common:Name>
          <structure:Parent>
            <Ref id="87" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="116" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).116">
          <common:Name xml:lang="en">80 years</common:Name>
          <common:Name xml:lang="fr">80 ans</common:Name>
          <structure:Parent>
            <Ref id="88" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="117" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).117">
          <common:Name xml:lang="en">81 years</common:Name>
          <common:Name xml:lang="fr">81 ans</common:Name>
          <structure:Parent>
            <Ref id="88" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="118" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).118">
          <common:Name xml:lang="en">82 years</common:Name>
          <common:Name xml:lang="fr">82 ans</common:Name>
          <structure:Parent>
            <Ref id="88" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="119" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).119">
          <common:Name xml:lang="en">83 years</common:Name>
          <common:Name xml:lang="fr">83 ans</common:Name>
          <structure:Parent>
            <Ref id="88" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="120" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).120">
          <common:Name xml:lang="en">84 years</common:Name>
          <common:Name xml:lang="fr">84 ans</common:Name>
          <structure:Parent>
            <Ref id="88" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="121" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).121">
          <common:Name xml:lang="en">85 years</common:Name>
          <common:Name xml:lang="fr">85 ans</common:Name>
          <structure:Parent>
            <Ref id="89" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="122" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).122">
          <common:Name xml:lang="en">86 years</common:Name>
          <common:Name xml:lang="fr">86 ans</common:Name>
          <structure:Parent>
            <Ref id="89" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="123" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).123">
          <common:Name xml:lang="en">87 years</common:Name>
          <common:Name xml:lang="fr">87 ans</common:Name>
          <structure:Parent>
            <Ref id="89" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="124" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).124">
          <common:Name xml:lang="en">88 years</common:Name>
          <common:Name xml:lang="fr">88 ans</common:Name>
          <structure:Parent>
            <Ref id="89" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="125" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).125">
          <common:Name xml:lang="en">89 years</common:Name>
          <common:Name xml:lang="fr">89 ans</common:Name>
          <structure:Parent>
            <Ref id="89" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="126" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).126">
          <common:Name xml:lang="en">90 to 94 years</common:Name>
          <common:Name xml:lang="fr">90 à 94 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="127" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).127">
          <common:Name xml:lang="en">90 years</common:Name>
          <common:Name xml:lang="fr">90 ans</common:Name>
          <structure:Parent>
            <Ref id="126" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="128" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).128">
          <common:Name xml:lang="en">91 years</common:Name>
          <common:Name xml:lang="fr">91 ans</common:Name>
          <structure:Parent>


            <Ref id="126" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="129" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).129">
          <common:Name xml:lang="en">92 years</common:Name>
          <common:Name xml:lang="fr">92 ans</common:Name>
          <structure:Parent>
            <Ref id="126" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="130" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).130">
          <common:Name xml:lang="en">93 years</common:Name>
          <common:Name xml:lang="fr">93 ans</common:Name>
          <structure:Parent>
            <Ref id="126" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="131" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).131">
          <common:Name xml:lang="en">94 years</common:Name>
          <common:Name xml:lang="fr">94 ans</common:Name>
          <structure:Parent>
            <Ref id="126" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="132" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).132">
          <common:Name xml:lang="en">95 to 99 years</common:Name>
          <common:Name xml:lang="fr">95 à 99 ans</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="133" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).133">
          <common:Name xml:lang="en">95 years</common:Name>
          <common:Name xml:lang="fr">95 ans</common:Name>
          <structure:Parent>
            <Ref id="132" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="134" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).134">
          <common:Name xml:lang="en">96 years</common:Name>
          <common:Name xml:lang="fr">96 ans</common:Name>
          <structure:Parent>
            <Ref id="132" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="135" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).135">
          <common:Name xml:lang="en">97 years</common:Name>
          <common:Name xml:lang="fr">97 ans</common:Name>
          <structure:Parent>
            <Ref id="132" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="136" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).136">
          <common:Name xml:lang="en">98 years</common:Name>
          <common:Name xml:lang="fr">98 ans</common:Name>
          <structure:Parent>
            <Ref id="132" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="137" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).137">
          <common:Name xml:lang="en">99 years</common:Name>
          <common:Name xml:lang="fr">99 ans</common:Name>
          <structure:Parent>
            <Ref id="132" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="138" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Age_group(1.0).138">
          <common:Name xml:lang="en">100 years and over</common:Name>
          <common:Name xml:lang="fr">100 ans et plus</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_DGUID" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_DGUID(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">DGUID</common:Name>
        <structure:Code id="2016A000011124" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000011124">
          <common:Name xml:lang="en">2016A000011124</common:Name>
        </structure:Code>
        <structure:Code id="2016A000210" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000210">
          <common:Name xml:lang="en">2016A000210</common:Name>
        </structure:Code>
        <structure:Code id="2016A000211" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000211">
          <common:Name xml:lang="en">2016A000211</common:Name>
        </structure:Code>
        <structure:Code id="2016A000212" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000212">
          <common:Name xml:lang="en">2016A000212</common:Name>
        </structure:Code>
        <structure:Code id="2016A000213" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000213">
          <common:Name xml:lang="en">2016A000213</common:Name>
        </structure:Code>
        <structure:Code id="2016A000224" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000224">
          <common:Name xml:lang="en">2016A000224</common:Name>
        </structure:Code>
        <structure:Code id="2016A000235" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000235">
          <common:Name xml:lang="en">2016A000235</common:Name>
        </structure:Code>
        <structure:Code id="2016A000246" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000246">
          <common:Name xml:lang="en">2016A000246</common:Name>
        </structure:Code>
        <structure:Code id="2016A000247" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000247">
          <common:Name xml:lang="en">2016A000247</common:Name>
        </structure:Code>
        <structure:Code id="2016A000248" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000248">
          <common:Name xml:lang="en">2016A000248</common:Name>
        </structure:Code>
        <structure:Code id="2016A000259" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000259">
          <common:Name xml:lang="en">2016A000259</common:Name>
        </structure:Code>
        <structure:Code id="2016A000260" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000260">
          <common:Name xml:lang="en">2016A000260</common:Name>
        </structure:Code>
        <structure:Code id="2016A000261" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000261">
          <common:Name xml:lang="en">2016A000261</common:Name>
        </structure:Code>
        <structure:Code id="2016A000262" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_DGUID(1.0).2016A000262">
          <common:Name xml:lang="en">2016A000262</common:Name>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_Geography" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_Geography(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Geography</common:Name>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).1">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Canada</common:Name>
          <common:Name xml:lang="fr">Canada</common:Name>
        </structure:Code>
        <structure:Code id="2" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).2">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Newfoundland and Labrador</common:Name>
          <common:Name xml:lang="fr">Terre-Neuve-et-Labrador</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="3" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).3">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Prince Edward Island</common:Name>
          <common:Name xml:lang="fr">Île-du-Prince-Édouard</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="4" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).4">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Nova Scotia</common:Name>
          <common:Name xml:lang="fr">Nouvelle-Écosse</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="5" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).5">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">New Brunswick</common:Name>
          <common:Name xml:lang="fr">Nouveau-Brunswick</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="6" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).6">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Quebec</common:Name>
          <common:Name xml:lang="fr">Québec</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="7" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).7">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Ontario</common:Name>
          <common:Name xml:lang="fr">Ontario</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="8" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).8">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Manitoba</common:Name>
          <common:Name xml:lang="fr">Manitoba</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="9" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).9">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Saskatchewan</common:Name>
          <common:Name xml:lang="fr">Saskatchewan</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="10" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).10">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Alberta</common:Name>
          <common:Name xml:lang="fr">Alberta</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="11" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).11">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">British Columbia</common:Name>
          <common:Name xml:lang="fr">Colombie-Britannique</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="12" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).12">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Yukon</common:Name>
          <common:Name xml:lang="fr">Yukon</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="13" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).13">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationTitle>Footnote_3</common:AnnotationTitle>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Northwest Territories including Nunavut</common:Name>
          <common:Name xml:lang="fr">Territoires du Nord-Ouest incluant Nunavut</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="14" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).14">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationTitle>Footnote_4</common:AnnotationTitle>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Northwest Territories</common:Name>
          <common:Name xml:lang="fr">Territoires du Nord-Ouest</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="15" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Geography(1.0).15">
          <common:Annotations>
            <common:Annotation>
              <common:AnnotationTitle>Footnote_4</common:AnnotationTitle>
              <common:AnnotationType>FootnoteId</common:AnnotationType>
            </common:Annotation>
            <common:Annotation>
              <common:AnnotationType>Footnote_4</common:AnnotationType>
            </common:Annotation>
          </common:Annotations>
          <common:Name xml:lang="en">Nunavut</common:Name>
          <common:Name xml:lang="fr">Nunavut</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_SCALAR_FACTOR" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_SCALAR_FACTOR(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Scalar Factor</common:Name>
        <structure:Code id="0" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).0">
          <common:Name xml:lang="en">units</common:Name>
          <common:Name xml:lang="fr">unités</common:Name>
        </structure:Code>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).1">
          <common:Name xml:lang="en">tens</common:Name>
          <common:Name xml:lang="fr">dizaines</common:Name>
        </structure:Code>
        <structure:Code id="2" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).2">
          <common:Name xml:lang="en">hundreds</common:Name>
          <common:Name xml:lang="fr">centaines</common:Name>
        </structure:Code>
        <structure:Code id="3" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).3">
          <common:Name xml:lang="en">thousands</common:Name>
          <common:Name xml:lang="fr">milliers</common:Name>
        </structure:Code>
        <structure:Code id="4" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).4">
          <common:Name xml:lang="en">tens of thousands</common:Name>
          <common:Name xml:lang="fr">dizaines de milliers</common:Name>
        </structure:Code>
        <structure:Code id="5" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).5">
          <common:Name xml:lang="en">hundreds of thousands</common:Name>
          <common:Name xml:lang="fr">centaines de milliers</common:Name>
        </structure:Code>
        <structure:Code id="6" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).6">
          <common:Name xml:lang="en">millions</common:Name>
          <common:Name xml:lang="fr">millions</common:Name>
        </structure:Code>
        <structure:Code id="7" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).7">
          <common:Name xml:lang="en">tens of millions</common:Name>
          <common:Name xml:lang="fr">dizaines de millions</common:Name>
        </structure:Code>
        <structure:Code id="8" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).8">
          <common:Name xml:lang="en">hundreds of millions</common:Name>
          <common:Name xml:lang="fr">centaines de millions</common:Name>
        </structure:Code>
        <structure:Code id="9" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SCALAR_FACTOR(1.0).9">
          <common:Name xml:lang="en">billions</common:Name>
          <common:Name xml:lang="fr">milliards</common:Name>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_SECURITY_LEVEL" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_SECURITY_LEVEL(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Security Level</common:Name>
        <structure:Code id="0" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SECURITY_LEVEL(1.0).0">
          <common:Name xml:lang="en">0 = public</common:Name>
          <common:Name xml:lang="fr">0 = public</common:Name>
        </structure:Code>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SECURITY_LEVEL(1.0).1">
          <common:Name xml:lang="en">x = suppressed to meet the confidentiality requirements of the Statistics Act</common:Name>
          <common:Name xml:lang="fr">x = confidentiel en vertu des dispositions de la Loi sur la statistique</common:Name>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_STATUS_CAN" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_STATUS_CAN(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Status</common:Name>
        <structure:Code id="0" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).0">
          <common:Name xml:lang="en">0 = normal</common:Name>
          <common:Name xml:lang="fr">0 = normal</common:Name>
        </structure:Code>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).1">
          <common:Name xml:lang="en">.. = not available for a specific reference period</common:Name>
          <common:Name xml:lang="fr">.. = indisponible pour une période de référence précise</common:Name>
        </structure:Code>
        <structure:Code id="2" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).2">
          <common:Name xml:lang="en">0s = value rounded to 0 (zero) where there is a meaningful distinction between true zero and the value that was rounded</common:Name>
          <common:Name xml:lang="fr">0s = valeur arrondie à 0 (zéro) là où il y a une distinction importante entre le zéro absolu et la valeur arrondie</common:Name>
        </structure:Code>
        <structure:Code id="3" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).3">
          <common:Name xml:lang="en">A = data quality: excellent</common:Name>
          <common:Name xml:lang="fr">A = qualité des données: excellente</common:Name>
        </structure:Code>
        <structure:Code id="4" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).4">
          <common:Name xml:lang="en">B = data quality: very good</common:Name>
          <common:Name xml:lang="fr">B = qualité des données: très bonne</common:Name>
        </structure:Code>
        <structure:Code id="5" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).5">
          <common:Name xml:lang="en">C = data quality: good</common:Name>
          <common:Name xml:lang="fr">C = qualité des données: bonne</common:Name>
        </structure:Code>
        <structure:Code id="6" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).6">
          <common:Name xml:lang="en">D = data quality: acceptable</common:Name>
          <common:Name xml:lang="fr">D = qualité des données: acceptable</common:Name>
        </structure:Code>
        <structure:Code id="7" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).7">
          <common:Name xml:lang="en">E = use with caution</common:Name>
          <common:Name xml:lang="fr">E = à utiliser avec prudence</common:Name>
        </structure:Code>
        <structure:Code id="8" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).8">
          <common:Name xml:lang="en">F = too unreliable to be published.</common:Name>
          <common:Name xml:lang="fr">F = trop peu fiable pour être publié</common:Name>
        </structure:Code>
        <structure:Code id="9" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).9">
          <common:Name xml:lang="en">... = not applicable</common:Name>
          <common:Name xml:lang="fr">... = n'ayant pas lieu de figurer</common:Name>
        </structure:Code>
        <structure:Code id="10" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_STATUS_CAN(1.0).10">
          <common:Name xml:lang="en"><LOD = less than the limit of detection</common:Name>
          <common:Name xml:lang="fr"><LOD = inférieur à la limite de détection</common:Name>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_SYMBOL" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_SYMBOL(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Symbol</common:Name>
        <structure:Code id="0" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SYMBOL(1.0).0">
          <common:Name xml:lang="en">0 = none</common:Name>
          <common:Name xml:lang="fr">0 = aucun</common:Name>
        </structure:Code>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SYMBOL(1.0).1">
          <common:Name xml:lang="en">p = preliminary</common:Name>
          <common:Name xml:lang="fr">p = provisoire</common:Name>
        </structure:Code>
        <structure:Code id="3" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_SYMBOL(1.0).3">
          <common:Name xml:lang="en">r = revised</common:Name>
          <common:Name xml:lang="fr">r = révisé</common:Name>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_Sex" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_Sex(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Sex</common:Name>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Sex(1.0).1">
          <common:Name xml:lang="en">Both sexes</common:Name>
          <common:Name xml:lang="fr">Les deux sexes</common:Name>
        </structure:Code>
        <structure:Code id="2" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Sex(1.0).2">
          <common:Name xml:lang="en">Males</common:Name>
          <common:Name xml:lang="fr">Hommes</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
        <structure:Code id="3" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_Sex(1.0).3">
          <common:Name xml:lang="en">Females</common:Name>
          <common:Name xml:lang="fr">Femmes</common:Name>
          <structure:Parent>
            <Ref id="1" />
          </structure:Parent>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_TERMINATED" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_TERMINATED(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Terminated</common:Name>
        <structure:Code id="0" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_TERMINATED(1.0).0">
          <common:Name xml:lang="en">0 = active</common:Name>
          <common:Name xml:lang="fr">0 = actif</common:Name>
        </structure:Code>
        <structure:Code id="1" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_TERMINATED(1.0).1">
          <common:Name xml:lang="en">t = terminated</common:Name>
          <common:Name xml:lang="fr">t = terminé</common:Name>
        </structure:Code>
      </structure:Codelist>
      <structure:Codelist id="CL_17100005_UOM" urn="urn:sdmx:org.sdmx.infomodel.codelist.Codelist=StatCan:CL_17100005_UOM(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Unit of measure</common:Name>
        <structure:Code id="249" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_UOM(1.0).249">
          <common:Name xml:lang="en">Persons</common:Name>
          <common:Name xml:lang="fr">Personnes</common:Name>
        </structure:Code>
        <structure:Code id="308" urn="urn:sdmx:org.sdmx.infomodel.codelist.Code=StatCan:CL_17100005_UOM(1.0).308">
          <common:Name xml:lang="en">Years</common:Name>
          <common:Name xml:lang="fr">Années</common:Name>
        </structure:Code>
      </structure:Codelist>
    </structure:Codelists>
    <structure:Concepts>
      <structure:ConceptScheme id="CONCEPTS_17100005" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=StatCan:CONCEPTS_17100005(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Name xml:lang="en">Concepts of Population estimates on July 1st, by age and sex</common:Name>
        <structure:Concept id="Geography" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).Geography">
          <common:Name xml:lang="en">Geography</common:Name>
        </structure:Concept>
        <structure:Concept id="Sex" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).Sex">
          <common:Name xml:lang="en">Sex</common:Name>
        </structure:Concept>
        <structure:Concept id="Age_group" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).Age_group">
          <common:Name xml:lang="en">Age group</common:Name>
        </structure:Concept>
        <structure:Concept id="TIME_PERIOD" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).TIME_PERIOD">
          <common:Name xml:lang="en">Time</common:Name>
        </structure:Concept>
        <structure:Concept id="OBS_VALUE" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).OBS_VALUE">
          <common:Name xml:lang="en">Observation Value</common:Name>
        </structure:Concept>
        <structure:Concept id="UOM" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).UOM">
          <common:Name xml:lang="en">Unit of measure</common:Name>
        </structure:Concept>
        <structure:Concept id="DGUID" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).DGUID">
          <common:Name xml:lang="en">DGUID</common:Name>
        </structure:Concept>
        <structure:Concept id="SCALAR_FACTOR" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).SCALAR_FACTOR">
          <common:Name xml:lang="en">Scalar Factor</common:Name>
        </structure:Concept>
        <structure:Concept id="VECTOR_ID" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).VECTOR_ID">
          <common:Name xml:lang="en">Vector ID</common:Name>
        </structure:Concept>
        <structure:Concept id="NB_DECIMAL" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).NB_DECIMAL">
          <common:Name xml:lang="en">Number of decimal</common:Name>
        </structure:Concept>
        <structure:Concept id="SYMBOL" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).SYMBOL">
          <common:Name xml:lang="en">Symbol</common:Name>
        </structure:Concept>
        <structure:Concept id="STATUS_CAN" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).STATUS_CAN">
          <common:Name xml:lang="en">Status</common:Name>
        </structure:Concept>
        <structure:Concept id="TERMINATED" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).TERMINATED">
          <common:Name xml:lang="en">Terminated</common:Name>
        </structure:Concept>
        <structure:Concept id="SECURITY_LEVEL" urn="urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=StatCan:CONCEPTS_17100005(1.0).SECURITY_LEVEL">
          <common:Name xml:lang="en">Security Level</common:Name>
        </structure:Concept>
      </structure:ConceptScheme>
    </structure:Concepts>
    <structure:DataStructures>
      <structure:DataStructure id="Data_Structure_17100005" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=StatCan:Data_Structure_17100005(1.0)" agencyID="StatCan" version="1.0" isFinal="false">
        <common:Annotations>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Postcensal estimates are based on the 2016 Census counts adjusted for census net undercoverage (CNU) (including adjustment for incompletely enumerated Indian reserves (IEIR)) and the components of demographic growth that occurred since that census. Intercensal estimates are produced using counts from two consecutive censuses adjusted for CNU (including (IEIR) and postcensal estimates.</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Les estimations postcensitaires sont produites à partir des comptes du Recensement de 2016, rajustées pour le sous-dénombrement net du recensement (SDNR) (incluant le rajustement pour les réserves indiennes partiellement dénombrées (RIPD)) et des composantes de l'accroissement démographique survenu depuis ce recensement. Les estimations intercensitaires sont produites à l'aide des comptes de deux recensements consécutifs rajustés pour le SDNR (inlcuant les RIPD) et des estimations postcensitaires.</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Estimates are final intercensal up to 2015, final postcensal for 2016, updated postcensal for 2017 and 2018 and preliminary postcensal for 2019.</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Les estimations sont intercensitaires définitives jusqu'en 2015, postcensitaires définitives pour 2016, postcensitaires mises à jour pour 2017 et 2018 et postcensitaires provisoires pour 2019.</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Population estimates for Northwest Territories and Nunavut are presented separately from 1991.</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Les estimations de la population des Territoires du Nord-Ouest et du Nunavut sont présentées séparément à partir de 1991.</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Prior to 1991, only estimates of population for Northwest Territories and Nunavut combined are available.</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Avant 1991, seules les estimations de la population des Territoires du Nord-Ouest et du Nunavut combinées sont disponibles.</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Age at last birthday in years.</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Âge atteint au dernier anniversaire en années révolues.</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Data for persons aged 90 to 100 years and over will be available from 2001.</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Les données des personnes âgées de 90 à 100 ans et plus sont disponibles à partir de 2001.</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationType>Footnote</common:AnnotationType>
            <common:AnnotationText xml:lang="en">The population growth, which is used to calculate population estimates, is comprised of the natural growth (Tables 17100006 and 17100016), international migration (Table 17100014) and interprovincial migration (Table 17100015).</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">L'accroissement démographique qui sert au calcul des estimations de la population, est composé de l'accroissement naturel (Tableaux 17100006 et 17100016), de la migration internationale (Tableau 17100014) et de la migration interprovinciale (Tableau 17100015).</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationTitle>Cansim ID / Id Cansim</common:AnnotationTitle>
            <common:AnnotationType>CansimID</common:AnnotationType>
            <common:AnnotationText xml:lang="en">051-0001</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">051-0001</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationTitle>Frequency / Fréquence</common:AnnotationTitle>
            <common:AnnotationType>freq</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Annual</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Annuelle</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationTitle>Subject / Suject</common:AnnotationTitle>
            <common:AnnotationType>subject</common:AnnotationType>
            <common:AnnotationText xml:lang="en">Population and demography</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">Population et démographie</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationTitle>Variable List / Liste de variables</common:AnnotationTitle>
            <common:AnnotationType>variableList</common:AnnotationType>
            <common:AnnotationText xml:lang="en">CURRENT - a cube available to the public and that is current</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">ACTIF - un cube qui est disponible au public et qui est toujours mise a jour</common:AnnotationText>
          </common:Annotation>
          <common:Annotation>
            <common:AnnotationTitle>URL</common:AnnotationTitle>
            <common:AnnotationType>URL</common:AnnotationType>
            <common:AnnotationText xml:lang="en">https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=1710000501</common:AnnotationText>
            <common:AnnotationText xml:lang="fr">https://www150.statcan.gc.ca/t1/tbl1/fr/tv.action?pid=1710000501</common:AnnotationText>
          </common:Annotation>
          <common:Annotation />
          <common:Annotation />
        </common:Annotations>
        <common:Name xml:lang="en">Data Structure of Population estimates on July 1st, by age and sex</common:Name>
        <structure:DataStructureComponents>
          <structure:DimensionList id="DimensionDescriptor" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DimensionDescriptor=StatCan:Data_Structure_17100005(1.0).DimensionDescriptor">
            <structure:Dimension id="Geography" urn="urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=StatCan:Data_Structure_17100005(1.0).Geography" position="1">
              <structure:ConceptIdentity>
                <Ref id="Geography" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_Geography" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
            </structure:Dimension>
            <structure:Dimension id="Sex" urn="urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=StatCan:Data_Structure_17100005(1.0).Sex" position="2">
              <structure:ConceptIdentity>
                <Ref id="Sex" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_Sex" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
            </structure:Dimension>
            <structure:Dimension id="Age_group" urn="urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=StatCan:Data_Structure_17100005(1.0).Age_group" position="3">
              <structure:ConceptIdentity>
                <Ref id="Age_group" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_Age_group" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
            </structure:Dimension>
            <structure:TimeDimension id="TIME_PERIOD" urn="urn:sdmx:org.sdmx.infomodel.datastructure.TimeDimension=StatCan:Data_Structure_17100005(1.0).TIME_PERIOD" position="4">
              <structure:ConceptIdentity>
                <Ref id="TIME_PERIOD" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />

              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:TextFormat textType="ObservationalTimePeriod" />
              </structure:LocalRepresentation>
            </structure:TimeDimension>
          </structure:DimensionList>
          <structure:AttributeList id="AttributeDescriptor" urn="urn:sdmx:org.sdmx.infomodel.datastructure.AttributeDescriptor=StatCan:Data_Structure_17100005(1.0).AttributeDescriptor">
            <structure:Attribute id="UOM" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).UOM" assignmentStatus="Mandatory">
              <structure:ConceptIdentity>
                <Ref id="UOM" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_UOM" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:Dimension>
                  <Ref id="Geography" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Sex" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Age_group" />
                </structure:Dimension>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="DGUID" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).DGUID" assignmentStatus="Conditional">
              <structure:ConceptIdentity>
                <Ref id="DGUID" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_DGUID" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:Dimension>
                  <Ref id="Geography" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Sex" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Age_group" />
                </structure:Dimension>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="SCALAR_FACTOR" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).SCALAR_FACTOR" assignmentStatus="Mandatory">
              <structure:ConceptIdentity>
                <Ref id="SCALAR_FACTOR" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_SCALAR_FACTOR" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:Dimension>
                  <Ref id="Geography" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Sex" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Age_group" />
                </structure:Dimension>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="VECTOR_ID" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).VECTOR_ID" assignmentStatus="Mandatory">
              <structure:ConceptIdentity>
                <Ref id="VECTOR_ID" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:AttributeRelationship>
                <structure:Dimension>
                  <Ref id="Geography" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Sex" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Age_group" />
                </structure:Dimension>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="NB_DECIMAL" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).NB_DECIMAL" assignmentStatus="Mandatory">
              <structure:ConceptIdentity>
                <Ref id="NB_DECIMAL" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:AttributeRelationship>
                <structure:Dimension>
                  <Ref id="Geography" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Sex" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Age_group" />
                </structure:Dimension>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="SYMBOL" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).SYMBOL" assignmentStatus="Conditional">
              <structure:ConceptIdentity>
                <Ref id="SYMBOL" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_SYMBOL" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:PrimaryMeasure>
                  <Ref id="OBS_VALUE" />
                </structure:PrimaryMeasure>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="STATUS_CAN" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).STATUS_CAN" assignmentStatus="Conditional">
              <structure:ConceptIdentity>
                <Ref id="STATUS_CAN" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />

              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_STATUS_CAN" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:PrimaryMeasure>
                  <Ref id="OBS_VALUE" />
                </structure:PrimaryMeasure>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="TERMINATED" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).TERMINATED" assignmentStatus="Conditional">
              <structure:ConceptIdentity>
                <Ref id="TERMINATED" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_TERMINATED" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:Dimension>
                  <Ref id="Geography" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Sex" />
                </structure:Dimension>
                <structure:Dimension>
                  <Ref id="Age_group" />
                </structure:Dimension>
              </structure:AttributeRelationship>
            </structure:Attribute>
            <structure:Attribute id="SECURITY_LEVEL" urn="urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=StatCan:Data_Structure_17100005(1.0).SECURITY_LEVEL" assignmentStatus="Conditional">
              <structure:ConceptIdentity>
                <Ref id="SECURITY_LEVEL" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
              <structure:LocalRepresentation>
                <structure:Enumeration>
                  <Ref id="CL_17100005_SECURITY_LEVEL" version="1.0" agencyID="StatCan" package="codelist" class="Codelist" />
                </structure:Enumeration>
              </structure:LocalRepresentation>
              <structure:AttributeRelationship>
                <structure:PrimaryMeasure>
                  <Ref id="OBS_VALUE" />
                </structure:PrimaryMeasure>
              </structure:AttributeRelationship>
            </structure:Attribute>
          </structure:AttributeList>
          <structure:MeasureList id="MeasureDescriptor" urn="urn:sdmx:org.sdmx.infomodel.datastructure.MeasureDescriptor=StatCan:Data_Structure_17100005(1.0).MeasureDescriptor">
            <structure:PrimaryMeasure id="OBS_VALUE" urn="urn:sdmx:org.sdmx.infomodel.datastructure.PrimaryMeasure=StatCan:Data_Structure_17100005(1.0).OBS_VALUE">
              <structure:ConceptIdentity>
                <Ref id="OBS_VALUE" maintainableParentID="CONCEPTS_17100005" maintainableParentVersion="1.0" agencyID="StatCan" package="conceptscheme" class="Concept" />
              </structure:ConceptIdentity>
            </structure:PrimaryMeasure>
          </structure:MeasureList>
        </structure:DataStructureComponents>
      </structure:DataStructure>
    </structure:DataStructures>
  </message:Structures>
</message:Structure>

Content negotiation

Using the HTTP content negotiation mechanism, you can select the representation to be returned and you can also instruct the service to compress the data to be returned.

Format selection

The following data formats are supported by the web service:

  • Data formats:
    • SDMX-ML 2.1 Generic Data format:
      application/vnd.sdmx.genericdata+xml;version=2.1. This is the default for data queries.
    • SDMX-ML 2.1 Structure Specific Data format:
      application/vnd.sdmx.structurespecificdata+xml;version=2.1
    • SDMX-JSON: application/vnd.sdmx.data+json;version=1.0.0-wd
    • CSV: text/csv
  • Metadata formats:
    • SDMX-ML Structure format: application/vnd.sdmx.structure+xml;version=2.1

For additional information about the various SDMX-ML formats, please refer to the SDMX documentation.

Generic mime types (application/json, application/xml) are also supported but they will always point to the most recent version of the SDMX formats supported by these web services. That version will change in the future, whenever new versions of the various SDMX formats are made available.

Is it therefore highly recommended that implementers use one of the specific mime types above rather than a generic one, to avoid issues when new versions of the formats are released.

Output compression

You can also enable data compression using the Accept-Encoding HTTP header field. Compressed messages are typically significantly smaller than uncompressed messages, which can lead to improvements when transferring large amount data over the network.

Status codes

The web service returns the following HTTP status codes.

HTTP status codes
Code Status Description
200 OK Your query could be successfully processed and the data have been returned.
304 No changes No changes since the timestamp supplied in the If-Modified-Since header.
400 Syntax error If there is a syntactic or semantic issue with the parameters you supplied, a 400 HTTP status code will be returned.
404 No results found A 404 HTTP status code will be returned if there are no results matching the query.
406 Not Acceptable If you ask for a resource representation that we don't support, a 406 HTTP status code will be returned. See the section about European Central Bank content negotiation, to view the supported representations.
500 Internal Server Error When there is an issue on our side, a 500 HTTP status code will be returned. Feel free to try again later or to contact our support hotline.
501 Not implemented This web service offers a subset of the functionality offered by the SDMX RESTful web service specification. When you use a feature that we have not yet implemented, a 501 HTTP status code will be returned.
503 Service unavailable If our web service is temporarily unavailable, a 503 HTTP status code will be returned.

Useful tips

The SDMX Technical Working Group publishes a list of tips and tricks for web service clients, which is well worth reading.

The SDMX Technical Working Group has also published a cheat sheet (PDF, 83 KB) which summarises, in 2 A4 pages, the main points of the SDMX 2.1 RESTful API.

If the documentation does not contain the information you require, or if you have any general comments or feedback regarding our web service, please contact us.

All sample queries in this tutorial can also be executed using command-line tools such as curl or wget:

wget -O data.xml \
--header="Accept:application/vnd.sdmx.structurespecificdata+xml;version=2.1" \
https://sdw-wsrest.ecb.europa.eu/service/data/EXR/M.NOK.EUR.SP00.A
curl -k -o data.xml \
--header "Accept:application/vnd.sdmx.structurespecificdata+xml;version=2.1" \
https://sdw-wsrest.ecb.europa.eu/service/data/EXR/M.NOK.EUR.SP00.A

Appendix 1

Table 17100005 - Population estimates on July 1st, by age and sex

Thumbnail - Table 17100005 - Population estimates on July 1st, by age and sex

1st Dimension - Geography
Codes for 1st Dimension - Geography
Code Name_en
1 Canada
2 Newfoundland and Labrador
3 Prince Edward Island
4 Nova Scotia
5 New Brunswick
6 Quebec
7 Ontario
8 Manitoba
9 Saskatchewan
10 Alberta
11 British Columbia
12 Yukon
13 Northwest Territories including Nunavut
14 Northwest Territories
15 Nunavut
2nd Dimension – Sex
Codes for 2nd Dimension – Sex
Code Name_en
1 Both sexes
2 Males
3 Females
3rd Dimension – Age group
Codes for 3rd Dimension – Age group
Code Name_en
1 All ages
2 0 years
3 1 year
4 2 years
5 3 years
6 4 years
7 0 to 4 years
8 5 years
9 6 years
10 7 years
11 8 years
12 9 years
13 5 to 9 years
14 10 years
15 11 years
16 12 years
17 13 years
18 14 years
19 10 to 14 years
20 15 years
21 16 years
22 17 years
23 18 years
24 19 years
25 15 to 19 years
26 20 years
27 21 years
28 22 years
29 23 years
30 24 years
31 20 to 24 years
32 25 years
33 26 years
34 27 years
35 28 years
36 29 years
37 25 to 29 years
38 30 years
39 31 years
40 32 years
41 33 years
42 34 years
43 30 to 34 years
44 35 years
45 36 years
46 37 years
47 38 years
48 39 years
49 35 to 39 years
50 40 years
51 41 years
52 42 years
53 43 years
54 44 years
55 40 to 44 years
56 45 years
57 46 years
58 47 years
59 48 years
60 49 years
61 45 to 49 years
62 50 years
63 51 years
64 52 years
65 53 years
66 54 years
67 50 to 54 years
68 55 years
69 56 years
70 57 years
71 58 years
72 59 years
73 55 to 59 years
74 60 years
75 61 years
76 62 years
77 63 years
78 64 years
79 60 to 64 years
80 65 years
81 66 years
82 67 years
83 68 years
84 69 years
85 65 to 69 years
86 70 to 74 years
87 75 to 79 years
88 80 to 84 years
89 85 to 89 years
90 90 years and over
91 0 to 14 years
92 0 to 15 years
93 0 to 16 years
94 0 to 17 years
95 15 to 49 years
96 15 to 64 years
97 16 to 64 years
98 17 to 64 years
99 18 to 24 years
100 18 to 64 years
101 18 years and over
102 25 to 44 years
103 45 to 64 years
104 65 years and over
105 Median age
106 70 years
107 71 years
108 72 years
109 73 years
110 74 years
111 75 years
112 76 years
113 77 years
114 78 years
115 79 years
116 80 years
117 81 years
118 82 years
119 83 years
120 84 years
121 85 years
122 86 years
123 87 years
124 88 years
125 89 years
126 90 to 94 years
127 90 years
128 91 years
129 92 years
130 93 years
131 94 years
132 95 to 99 years
133 95 years
134 96 years
135 97 years
136 98 years
137 99 years
138 100 years and over

Appendix 2: CURL Examples

SDMX structure sample URL:

curl -X GET -k -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/structure/Data_Structure_13100101'

curl -X GET -k -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/structure/Data_Structure_13100101'

pid=13100101

curl -X GET -k -H 'Accept: application/vnd.sdmx.structure+xml;version=2.1' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/structure/Data_Structure_13100101'

curl -X GET -k -H 'Accept: application/vnd.sdmx.structure+xml;version=2.1' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/structure/Data_Structure_13100101'

pid=13100101

Header:

Accept: application/vnd.sdmx.structure+xml;version=2.1

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/structure/Data_Structure_13100101'

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/structure/Data_Structure_13100101'

pid=13100101

Header:

Accept: application/xml

SDMX data sample URL:

curl -X GET -k -H 'Accept: application/vnd.sdmx.structurespecificdata+xml;version=2.1' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

curl -X GET -k -H 'Accept: application/vnd.sdmx.structurespecificdata+xml;version=2.1' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

pid = 13100101

Header:

Accept: application/vnd.sdmx.structurespecificdata+xml;version=2.1
dimensions are separated by "." and members are separated by "+". The date format should be "yyyy-mm-dd". if value of "day" is missing, the default value is "01"

curl -X GET -k -H 'Accept: application/vnd.sdmx.data+json;version=1.0.0-wd' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_18100002/1.1+2?startPeriod=2018-01&endPeriod=2018-05'

curl -X GET -k -H 'Accept: application/vnd.sdmx.data+json;version=1.0.0-wd' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_18100002/1.1+2?startPeriod=2018-01&endPeriod=2018-05'

pid = 18100102

Header:

Accept: application/vnd.sdmx.data+json;version=1.0.0-wd

curl -X GET -k -H 'Accept: application/vnd.sdmx.genericdata+xml;version=2.1' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

curl -X GET -k -H 'Accept: application/vnd.sdmx.genericdata+xml;version=2.1' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

pid = 13100101

Header:

Accept: application/vnd.sdmx.genericdata+xml;version=2.1

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

pid = 13100101

Header:

Accept: application/xml

curl -X GET -k -H 'Accept: application/json' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

curl -X GET -k -H 'Accept: application/json' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_13100101/1.1.1+2+3+4?startPeriod=2014&endPeriod=2015'

pid = 13100101

Header:

Accept: application/xml

curl -X GET -k -H 'Accept: application/json' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_13100101/1.1.1+2+3+4?firstNObservations=1'

curl -X GET -k -H 'Accept: application/json' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_13100101/1.1.1+2+3+4?firstNObservations=1'

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/data/DF_13100101/1.1.1+2+3+4?lastNObservations=1'

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/data/DF_13100101/1.1.1+2+3+4?lastNObservations=1'

Vector examples

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/vector/v114809245?lastNObservations=1'

curl -X GET -k -H 'Accept: application/xml' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/vector/v114809245?lastNObservations=1'

curl -X GET -k -H 'Accept: application/json' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/rest/vector/v114809245?firstNObservations=1'

curl -X GET -k -H 'Accept: application/json' -i 'https://www150.statcan.gc.ca/t1/wds/sdmx/statcan/v1/rest/vector/v114809245?firstNObservations=1'
Date modified:

North American Industry Classification System (NAICS) Canada 2022 Version 1.0

Release date: January 27, 2022

Permanent consultation process for NAICS Canada 2027 and beyond
Invitation to participate in the revision of the North American Industry Classification System (NAICS) Canada August 25, 2023

Status

This standard was approved as a departmental standard on July 30, 2021.

NAICS Canada 2022 Version 1.0

NAICS Canada 2022 Version 1.0 is the biggest revision to NAICS since 2002. The overarching theme to the updates is the digital economy. The guiding principle of these changes is to classify economic activities based on digital platforms, and those offered on other forms over the Internet, in the same groupings as their non-digital equivalents.

The Generic Statistical Information Model (GSIM) has been used for this revision to identify the types of changes made to the classification: real changes and virtual changes. Real changes are those affecting the scope of the existing classification items or categories, whether or not accompanied by changes in the title, definition and/or the coding. Virtual changes are those made in coding, titles and/or definitions, while the meaning or scope of the classification item remains the same.

HTML format

PDF Format

CSV Format

Correspondence tables

Variants of NAICS Canada

Email template about census data releases

An email template organizations can use to share the news about Census releases with their networks.

Subject: New 2021 Census data on age, sex and gender, and dwelling type

Hello [first name],

I am excited to share that Statistics Canada has released the second set of 2021 Census of Population results on its website (www.statcan.gc.ca). The release focuses on the age, sex at birth and gender distribution of the Canadian population and on the types of dwellings at the national, provincial, territorial and subprovincial levels.

The 2021 Census is the first census to provide data on transgender and non-binary people. The new data will fill important information gaps on cisgender, transgender and non-binary persons that are vital to understanding Canada's shifting demographic profile. These data will provide a detailed portrait of the lives of Canadians and their communities.

Throughout 2022, Statistics Canada will continue to release results from the 2021 Census of Population to tell Canadians' story:

  • For more information about data release topics and timelines, visit the 2021 Census dissemination planning web page.
  • If you want to stay on top of the country's latest statistical news throughout your day, try the new mobile app—StatsCAN—available for download in the Apple App Store and Google Play Store.

Please help spread the word about the second release through your networks!

  • The Census Community Supporter Toolkit provides the tools and resources you need in one convenient location so that you can easily share information about the census releases with your contacts.
  • You can also let Statistics Canada know how you are benefitting from census data: join the conversation by using the official #2021Census hashtag on your social media platforms.

If you have any questions, please contact me directly or reach out to the Census Communications team.

Sincerely,

[Signature]

Date modified:

Articles and newsletter content about census data

Articles and newsletter content about census data that organizations can share with their networks via the web or social media.

Articles

Take a closer look at your community using the results of the 2021 Census

The Census of Population provides high-quality information on key socioeconomic trends and analyses that help Canadians plan services and make informed decisions that affect our families, our neighbourhoods and our businesses. Thanks to the steadfast support of all Canadians, Statistics Canada is proud to reveal our many rich stories and present "Your census, your stories: Canada's portrait."

Data from the 2021 Census of Population are now available!

The latest release focuses on the age, sex at birth and gender distribution of the Canadian population and on the types of dwellings at the national, provincial, territorial and subprovincial levels. The 2021 Census is the first census to provide data on transgender and non-binary people.

The new data will fill important information gaps on cisgender, transgender and non-binary persons that are vital to understanding Canada's shifting demographic profile. These data will provide a detailed portrait of the lives of Canadians and their communities.
You can benefit immensely from community-level census data when making important life decisions.

  • Demographics: Population counts can help you understand the people that make up your community.
  • Services: Population data, the number of dwellings and their occupancy status can help communities plan services and programs for residents.

To take a closer look at your community, visit the Census of Population website for data from the 2021 Census.

How you and your community benefit from census data

For over 150 years, Canadians have relied on census data to see how the country is changing and focus on the issues that matter to them.

The most recent census completed in 2021 will provide a treasure trove of data about the Canadian population, the effects of the COVID-19 pandemic, and how our country has evolved in the past five years. These data can be used by businesses, non-profit organizations, governments and individuals to understand their communities and make informed decisions.

Are you wondering how you and your community can benefit from census data? Here are some traditional and innovative ways:

  • Business planning—census data may serve as the foundation for creating a viable business plan, analysing target markets, and pivoting businesses during the pandemic. It can be used to conduct an environmental analysis and help understand the local market.
  • Choosing the community to live in—home listing services rely on census data to provide perspective home buyers with important demographic information about their communities and help them make the right choice that will accommodate their specific lifestyle.
  • Academic research—thousands of academics, educators and students rely on census data to conduct research, data analysis and develop recommendations.
  • Government program and service planning—thanks to census data, municipal, provincial and federal governments are able to offer support services and programs that are tailored to their residents, such as child care, schools, family services, housing, skills training for employment centres and retirement residences.
  • Infrastructure—with census data, community organizations and local authorities can propose evidence-based planning and infrastructure projects that meet your neighbourhood's needs.
  • Public transportation—the census collects information about commute times and public transit use, which can be used to create new bus/train/subway routes and active transportation trails, bike or pedestrian lanes, as well as recreational paths near you.

On February 9, 2022, Statistics Canada started releasing census data. Releases throughout 2022 focus on Canada's shifting demographic profile; families and households; military experience; income; linguistic diversity; First Nations people, Métis and Inuit; housing; citizenship and immigration; the ethnocultural and religious composition of the population; education; and the labour force.

Statistics Canada strives to make census data and analyses user-friendly and accessible to all Canadians. For more information about data release topics and timelines, please visit the 2021 Census dissemination planning web page. Looking for a new way to access census data? Try our newest mobile app! StatsCAN is now available for download in the Apple and Google app stores.

Find more information on census data on the Census of Population web page of the Statistics Canada website.

Newsletter content

Data from the 2021 Census are here! Find out how Canada's population has changed since 2016

2021 Census of Population data are now available! Thanks to the steadfast support of all Canadians, Statistics Canada is proud to reveal our many rich stories and present "Your census, your stories: Canada's portrait." The Census of Population provides high-quality information on key socioeconomic trends and analysis that help Canadians plan services and make informed decisions that affect our families, neighbourhoods and businesses. To take a closer look at your community, visit the Statistics Canada website for data from the 2021 Census.

Over the coming months, Statistics Canada will continue to release results from the 2021 Census of Population and provide an even more comprehensive picture of the Canadian population. For more information about data release topics and timelines, visit the 2021 Census dissemination planning web page.

Statistics Canada created a Census Community Supporter Toolkit that brings together web images, email templates, social media content, articles and newsletter content in one convenient location to help you share information about the upcoming data releases with your networks. Learn more about the census on the Census of Population page of the Statistics Canada website.

Date modified:

Document Intelligence: The art of PDF information extraction

Author: Anurag Bejju, Statistics Canada

Portable Document Format, or PDF documents, are one of the most popular and commonly used file formats. As the world rapidly moves to a digital economy, PDFs have become an environmentally-friendly alternative to paper, allowing creators to easily share, print and view a file in its intended layout on multiple platforms. They hold a wealth of important information for organizations, businesses and institutions in a format that reflects the paper it replaced.

Although PDFs are a reliable way to format and store data, attempting to scrape, parse or extract their data can be a challenging task. Statistics Canada has been leveraging the power of responsible artificial intelligence (AI) technologies and applying data science solutions to research and build solutions that can mine valuable insights from unstructured sources like PDFs and scanned images. Applying these solutions saves costs, as well as ensures information is provided in a more timely, accurate and secure manner to Canadians. By obtaining and extracting data from PDF documents, we can devise ways to generate high-quality meaningful statistics in a timely manner. This saves a significant amount of time in capturing the data and allows researchers to focus their time on more meaningful analysis.

What is document intelligence?

Working with unstructured documents is complex and can lead to a waste of valuable resources. Many financial services, government agencies and other large companies work with printed and electronic documents that must be transformed and stored in a searchable/query-able data format (e.g. JSON or CSV). The process of extracting and transforming data from PDFs is often done manually and can be resource intensive, requiring members to copy portions of relevant information and format it into a tabular structure. This process can be cumbersome, lead to errors and cause long turnover times. Even with multiple resources for data retrieval, it can take days or weeks to get actionable information.

In response to these challenges, tech companies are creating automation tools that capture, extract and process data from various document formats. Artificial intelligence technologies such as natural language processing, computer vision, deep learning, and machine learning, are creating open-sourced solutions that transform unstructured and semi-structured information into usable data. These document intelligence technologies are called intelligent document processing.

What are the benefits of intelligent document processing?

Intelligent document processing has six key benefits:

  1. Time: Takes less time to process and build structured data sources.
  2. Money: Saves costs by reducing manual extraction work.
  3. Efficiency: Removes repetitive tasks in the workplace and boosts productivity.
  4. Reliability: Increases accuracy of the information extracted and reduces human error.
  5. Scalability: Has the potential to scale a large volume of documents with relatively low cost.
  6. Versatility: Handles structured, semi-structured and unstructured documents in most formats.

Types of PDF documents

The three most common types of PDF documents are:

  1. Structured PDFs: The underlying layout and structure of these documents remain fixed throughout the dataset. Creating segments and tagging them with appropriate labels, builds automation pipelines to extract and structure values into a tabular format. These can be replicated for forms with similar layouts.
  2. Text-based unstructured PDFs: If you can click-and-drag to select text in a PDF viewer, then your PDF document is a text-based document. Extracting free text from these documents can be fairly simple but doing so in a layout or context-aware manner can be extremely challenging. The System for Electronic Document Analysis and Retrieval (SEDAR) database used by Statistics Canada (which will be explained in more detail later in the article) has millions of text-based unstructured PDFs that require advanced intelligent document processing techniques to create structured datasets.
  3. Scanned unstructured PDFs: Scanned PDF documents contain information in multiple shapes and sizes. Additional steps help to localize text components and perform optical character recognition to extract textual tokens. Once the PDF is converted to text and the location for these tokens are identified, you can deploy similar methods used for text-based PDFs to extract information. The latest research in this area will be discussed in the upcoming articles in this series.

Open-source libraries available for PDF extraction

Package 1: PyPDF2

PyPDF2 is a pure-python PDF toolkit originating from the PyPDF project. It can extract data from PDF files or manipulate existing PDFs to produce a new file. This allows the developer to harvest, split, transform and merge PDFs, as well as extract associated metadata for the PDF. As demonstrated in the image, the text extraction accuracy is lower in comparison to other packages and you cannot extract images, bounding boxes, charts, or other media from these documents. This is a good tool if the only objective is to extract free text independent of its layout.

Code Snippet


import PyPDF2

with open(pdf_path, "rb") as f:
    reader = PyPDF2.PdfFileReader(f)
    page = reader.getPage(1)
    output = page.extractText()
	

Sample PDF

Package 1: PyPDF2 - Sample PDF

Output

Package 1: PyPDF2 - Output
Description - PyPDF2 Sample PDF and Output

An image of a sample PDF with a tabular structure consisting of a header, subheader, line items and a notes column on the right. The output box showing the text extraction has the correct text but is independent of the original layout or details deciphering between subheaders and regular text.

Package 2: PyMuPDF

PyMuPDF (also known as Fitz) is a Python binding for MuPDF—a lightweight PDF, XPS, and E-book viewer, renderer and toolkit, which is maintained and developed by Artifex Software, Inc. It does allow the developer to get much more advanced layout-based features with rendering capability and high-processing speed. Programmers get access to many important functions of MuPDF from within a Python environment. Like PDFMiner (described in Package 3), this package provides only layout information and the developer has to build processes to structure and format it.

Code Snippet


import fitz
import pandas as pd

doc = fitz.open(good_pdf_path)
page = doc[4]
_, _, p_width, p_height = page.MediaBox
text = page.getText("blocks")
output = pd.DataFrame(text, columns=["block_xMin", "block_yMin", "block_xMax", "block_yMax", "block_text", "block_id", "page" ])

Sample PDF

Package 2: PyMuPDF - Sample PDF

Output

Package 2: PyMuPDF - Output
Description - PyMuPDF Sample PDF and Output

An image of a sample PDF with a tabular structure consisting of a header, subheader, line items and a date column on the right. The output box showing the data extraction has the correct layout but the text consists of formulas ready for formatting by the user.

Package 3: PDFMiner

The PDFMiner package allows you to parse all objects from a PDF document into Python objects and analyze, group and extract text or images into a human-readable way. It also supports languages like Chinese, Japanese and Korean CJK, as well as vertical writing. As demonstrated in the image, you can obtain information like the exact bounding box for each text token as a string, as well as other layout information (fonts, etc.). Although this package can be great to localize elements within the document, the developer has to build processes to structure and format it.

Code Snippet


from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine, LTFigure
import pandas as pd
output = []
def parse_layout(layout):
    """Function to recursively parse the layout tree."""

    for lt_obj in layout:

        if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
            output.append([lt_obj.__class__.__name__, lt_obj.bbox, lt_obj.get_text()])
        elif isinstance(lt_obj, LTFigure):
            parse_layout(lt_obj)  # Recursive

with open(pdf_path, "rb") as f:
    parser = PDFParser(f)
    doc = PDFDocument(parser)
    page = list(PDFPage.create_pages(doc))[1]  # Page Number
    rsrcmgr = PDFResourceManager()
    device = PDFPageAggregator(rsrcmgr, laparams=LAParams())
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    interpreter.process_page(page)
    layout = device.get_result()
    _, _, width, height = page.mediabox
    parse_layout(layout)

output = pd.DataFrame(output, columns=["bbox_type", "coords", "token"])
output[["word_xMin", "word_yMin", "word_xMax", "word_yMax"]] =  output["coords"].to_list()

Sample PDF

Package 3: PDFMiner - Sample PDF

Output

Package 3: PDFMiner - Output
Description - PDFMiner Sample PDF and Output

An image of a sample PDF with a tabular structure consisting of a header, subheader, line items and date columns on the right. The output box showing the data extraction has a similar text and layout with the exact bounding box for each text token as a string, as well font and other layout information. The user must still build processes for structure to complete the table.

Package 4: Tabula-py

Tabula-py is a simple Python wrapper of tabula-java, which can read a table from PDF and convert it into a pandas' DataFrame. It also allows you to convert it into CSV/TSV/JSON file and use advanced features like lattice, which works well for lines separating cells in the table. There may be challenges in extracting and correctly detecting table contents for more complex PDFs.

Code Snippet


import tabula
import pandas as pd

output = tabula.read_pdf(pdf_path, lattice=False, pages=4)[0]

Sample PDF

Package 4: Tabula-py - Sample PDF

Output

Package 4: Tabula-py - Output
Description - Tabula-py Sample PDF and Output

An image of a sample PDF with a tabular structure consisting of a header, sub header, line items and date columns on the right. The output box showing the data extraction has a similar layout with the exact bounding box for each text token as a string, as well font and other layout information.

Package 5: Camelot

Just like Tabula-py, Camelot is also a Python library that can help you extract tables from PDF documents. This is the most effective and advanced package giving you control over the table extraction process. It also provides accuracy and whitespace metrics for quality control, as well as page segmentation methods to improve the extraction.

Code Snippet


import camelot
tables = camelot.read_pdf(good_pdf_path)
output = tables[0].df

Sample PDF

Package 5: Camelot - Sample PDF

Output

Package 5: Camelot - Output
Description - Camelot Sample PDF and Output

An image of a sample PDF with a tabular structure consisting of a header, subheader, line items and date columns on the right. The output box showing the data extraction has a similar text layout with the exact bounding box.

Use of intelligent document processing in the SEDAR project

Statistics Canada is doing experimental work with the historical dataset from the SEDAR filing system, providing analysts at Statistics Canada with an alternative data source that allows them to gain valuable insights and provide information in a timelier manner. SEDAR is a system used by publicly-traded Canadian companies to file securities documents (such as financial statements, annual reports and annual information forms) to various Canadian securities commissions. Statistics Canada employees use the SEDAR database for research, data confrontation, validation, frame maintenance process, and more. However, data extraction from public securities documents is done manually and is time-consuming.

To increase efficiency, the team of data scientists developed an AI-enabled document intelligence pipeline that correctly identifies and extracts key financial variables from the correct tables in a PDF document. This resulted in the transformation of a large amount of unstructured public documents from SEDAR into structured datasets. This transformation allows the automation and extraction of economic information related to Canadian companies.

The first part of the automation process involves identifying required pages from the PDF document. This is done using methodology developed at Statistics Canada. A subsection of the document with high density of tables is first identified, this subsection of pages is then further processed to extract key features which are used by a trained machine learning classification model to identify correct pages. The second part of the automation process involves table extraction. The pages identified in the first step are provided as input to a table extraction algorithm called Spatial Layout based Information and Content Extraction (SLICE). This algorithm was developed in-house to extract all the information into a table in digital format. This data is displayed on an interactive web application and can be downloaded in CSV format.

This robust process automates the financial variable extraction process for up to 70,000 PDFs per year in near real-time. This significantly reduces the hours spent manually identifying and capturing the required information and reduces data redundancy.

Hoping to learn more about document intelligence?

Open-source tools work for simple PDF extraction processes but will not work well for complex, unstructured and varying sources of PDF documents. In upcoming articles, we will discuss the latest research in machine learning and artificial intelligence within the realm of document intelligence. We will also discuss SLICE in more detail. As mentioned, SLICE is a novel computer vision algorithm designed and developed by Statistics Canada. This algorithm has the ability to simultaneously use textual, visual and layout information to segment several data points into a tabular structure. This modular solution works with unstructured tables and performs financial variable extraction from a variety of PDF documents.

Date modified:

Using the StatsCAN app: Questions and answers

Overview

Publications

How do I save a publication?

How do I save a publication?

You may not always have time to read your favourite publications right there and then. You can save a publication to read at a time that’s convenient for you by selecting the outline bookmark icon at the top right corner of a publication’s screen. A temporary message will confirm that the publication has been added to your Saved screen, and the bookmark icon will now be solid.

You can access your saved publications by navigating to the Saved screen from the bottom menu.

Note that your saved publications can be viewed only when connected to the Internet.

How long are saved publications kept?

How long are saved publications kept?

There's no time limit—publications will remain in your Saved items until you choose to remove them.

How do I delete a saved publication?

How do I delete a saved publication?

You can remove a publication from your Saved items by selecting the solid bookmark icon displayed on the publication’s tile next to the article’s image.

A message will appear to confirm that you would like to remove the publication.

How do I share a publication?

How do I share a publication?

You can share fun facts, visuals, short stories and key information from the StatsCAN app with your friends and colleagues.

You can share content by email, by text or on your favourite social media platforms.

You can access the 'Share' function by first selecting a publication, then selecting Share this publication from the options menu (…) at the top right corner.

The 'Share' function is also available at the bottom of the publication's screen.

You will be prompted with your device's default platforms to share the content.

How can I know when new publications are available?

How can I know when new publications are available?

You can be notified when new publications are available by changing the in-app notifications to On. To do so, go to Settings > Preferences > Manage notifications.

In the Notification type section, slide the In-app notifications toggle to On.

You will be notified when a new publication tagged to a subject you are following is available.

Whom do I contact if I have a question about a publication?

Whom do I contact if I have a question about a publication?

From a publication, you can contact us by tapping the options menu (…) at the top right corner of the screen and selecting the Contact us option.

A chat feature (blue icon with chat bubbles at the bottom right corner of the screen) is also available on the Contact us screen. This is Statistics Canada's Live Chat, which can connect you with Statistics Canada agents for immediate support, during regular business hours.

You can also submit your comment, suggestion or question by going to Settings > Support and feedback > Contact us.

Our email address and telephone number are also available in Settings > Support and feedback > Help & FAQ.

Search

Why are my search keywords retained under the Recent searches?

Why are my search keywords retained under the Recent searches?

StatsCAN stores the five most recent keywords used for searching, so they can quickly be used again if needed.

Can I clear my search history?

Can I clear my search history?

Yes. You can clear your recent searches by going to Settings > Preferences > Clear search history. Tap Clear in the pop-up window to confirm, or Cancel to abort the action.

Notifications

How can I turn my notifications on or off?

How can I turn my notifications on or off?

You can manage your notification preferences by going to Settings > Preferences > Manage notifications.

In the Notification type section, slide the In-app notifications toggle to either On or Off.

How can I mark notifications as read?

How can I mark notifications as read?

Tapping the publication title from the Notifications screen will allow you to read the publication, and will automatically mark the notification as read.

If you would like to mark all notifications as read, select the options menu (…) at the top right corner of the Notifications screen, and then select Mark all as read.

How can I delete a notification?

How can I delete a notification?

You cannot delete notifications manually. Only the latest 25 notifications received will be displayed on the Notifications screen and older notifications will be deleted automatically.

How long are notifications kept?

How long are notifications kept?

There's no time limit. Only the latest 25 notifications received will be displayed on the Notifications screen. Older notifications will be deleted automatically.

Other

I want to tell my friends and family about StatsCAN. Can I share the app with them?

I want to tell my friends and family about StatsCAN. Can I share the app with them?

Absolutely! To share the StatsCAN app, navigate to Settings > Support and feedback > Share this app.

Your device's sharing options will appear at the bottom of the screen. You can then choose how you would like to share the app from these options.

Whom do I contact if I have a question or want to provide feedback about StatsCAN?

Whom do I contact if I have a question or want to provide feedback about StatsCAN?

If you would like to rate or review the app publicly, you can do so via the App Store or Google Play.

To leave feedback using an Apple device, tap the App Store icon. Then, navigate to the detail page for the StatsCAN app. You must have the application downloaded to review it. Scroll down the app page to the Ratings & Reviews section and tap See All. From the Ratings & Reviews screen, tap the star icons to rate the app, and tap the Write a Review link to leave written feedback. Tap Send.

To leave feedback using an Android device, tap the Google Play Store icon. Then, navigate to the detail page for the StatsCAN app. You must have the application downloaded to review it. Scroll down to the Reviews section. Select the number of stars, and tap Write a Review. Follow the onscreen instructions to write a review and add details. Tap Post.

Where can I find the terms of use for StatsCAN once I've accepted them?

Where can I find the terms of use for StatsCAN once I've accepted them?

Once you have accepted the terms of use, You can refer to the terms of use by going to Settings > More information > Terms of use.

Statistics Canada reserves the right to change these terms of use at its sole discretion. It is your obligation to review them from time to time. Any change to the terms of use will be effective immediately upon posting. Your continued use of the app following the posting of the updated terms of use constitutes your acceptance of them.

By the numbers: Black History Month 2022

By the numbers: Black History Month 2022 (PDF, 13.29 MB)

Description: By the numbers: Black History Month 2022

Black History Month is an opportunity to highlight the contributions and accomplishments of Black Canadians and their communities, today and every day.

A positive outlook

Among Canada’s Black population, 76% of immigrants and 85% of non-immigrants felt that their life opportunities would improve within the next five years. Among the rest of the population, these proportions were significantly lower (57% and 46% respectively).

Source: Statistics Canada, General Social Survey – Canadians at Work and Home, 2016.

Fighting COVID-19 on the front lines

In 2016, one-third of female Black workers aged 25 to 59 in Canada worked in the health care and social assistance sector. No other sector has such high proportions of female Black workers.

Source: Statistics Canada, 2016 Census of Population.

More likely to hold a bachelor’s degree or higher

In 2021, Black Canadians in the core age group (25 to 54 years) were more likely to hold a bachelor's degree or higher (41.1%) than people in the same age group who did not belong to a visible minority and were not Indigenous (34.2%).

Source:Statistics Canada. Labour Force Survey Supplement, custom tabulation.

Contributions to the scientific community

In 2016, 71,365 Black Canadians 25 years and older that had a postsecondary certificate, diploma or degree in science, technology, engineering, and mathematics (STEM).

Source: Statistics Canada. Table 37-10-0171-01 Postsecondary qualification holders aged 25 years and over by highest certificate, diploma or degree, STEM and BHASE (non-STEM) groupings for major field of study, sex and selected demographic characteristics.

Looking for more disaggregated data on this topic?

Stay tuned as we will provide a detailed portrait of Canada’s diverse ethnocultural population later this year in our 2021 Census data releases: census.gc.ca.

Date modified:

Creating Compelling Data Visualizations

By: Alden Chen, Statistics Canada

Introduction

Data visualization is a key component in many data science projects. For some stakeholders, especially subject matter experts and executives who may not be technical experts, it is the primary avenue by which they see, understand and interact with data projects. Consequently, it is important that visualizations communicate insights as clearly as possible. But too often, visualizations are hindered by some common flaws that make them difficult to interpret, or worse yet, are misleading. This article will review three common visualization pitfalls that both data communicators and data consumers should understand, as well as some practical suggestions for getting around them.

Distortion and perception

The most important quality of an effective visualization is that it accurately represents the underlying data. Distortion occurs when the data being presented are not perceived accurately. The degree of distortion in the visualization is directly related to how readily the information presented is perceived. When designing visualizations, it's important to remember that different visual encodings are perceived differently, which can lead to distorted, misinterpreted results.

In 1957, psychophysicist Stanley Smith Stevens' On the psychophysical law showed an empirical, generally nonlinear relationship between the physical and perceived magnitude of some stimulus. He derived a relationship of the form ψ(I)=kIa, where I represents the physical intensity of the stimulus and ψ(I) represents the perceived sensation (Stevens, 1957). The most important variable here is a, the exponent that relates perception of the stimulus to the actual physical magnitude of the stimulus (k is a proportionality constant to adjust for units.) Our perception varies depending on how the data are encoded. When experiencing an encoding with a less than one, the magnitude of the stimulus tends to be underestimated. When experiencing an encoding with a greater than one, the magnitude of the stimulus tends to be overestimated.

Figure 1: Stevens' Power Law

Figure 1: Steven’s Power Law
Description - Figure 1

A plot illustrating Stevens' Power Law (1957). The graph shows how six different encodings are perceived with physical intensity along the x-axis and perceived sensation along the y-axis. The varying shapes of the curves illustrate how different encodings are perceived. Length is the most accurate encoding and is plotted along the 45 degree line. Curves representing electric shock and colour saturation, encodings that tend to exaggerate effects in the data, sit mostly above the 45 degree line. The remaining three encodings shown—area, depth and brightness—tend to understate the true effect and appear below the 45 degree line.

Today, this relationship is known as Stevens' Power Law, which is one of the best-known results from psychophysics and important to understand for data visualization. Figure 1 demonstrates some of the visual encodings that Stevens tested, as well as electric shock for reference. Some encodings, such as colour saturation, lead to overestimating the effect, while other encodings, such as area, lead to underestimating the true effect. When using these encodings to represent data, the inability to perceive the true data or effect leads to distortion. Notice that while the ability to perceive most encodings is nonlinear, the ability to perceive length is linear.

Consider the following example, which encodes the same data using area and length. Notice that it is much more difficult to discern how much greater 96 is compared to 32 when looking at the circles in Figure 2 than it is when looking at the bar chart in Figure 3. Moreover, it is almost indiscernible that the area of the 100 circle is larger than the area the 96 circle, whereas it is clear that 100 is greater than 96 when looking at the length of the bars. The difference between 100 and 96 is distorted when encoding the information using area.

Figure 2: Circle Graph

Figure 2: Circle Graph
Description - Figure 2

An example of a graph showing three circles. A small circle with the number 32, a larger circle with the number 96 and a slightly larger circle with the number 100.

Figure 3: Bar Graph

Figure 3: Bar Graph
Description - Figure 3

An example of a graph showing three bars that decrease in length: 100, 96 and 32.

Two graphs encoding the same data. The first graph uses the area of each circle to encode the data, whereas the second graph uses the length of each bar. Two of the circles are almost indiscernible in area, while it is clear that the two corresponding bars are of different length.

Data visualizations often use encodings that distort data, such as heatmaps (colour saturation, a = 1.7) and pie charts (area, a = 0.7). It's important to recognize distortion and to review the actual numbers underlying the visualization before rushing to judgements. When making visualizations and choosing visual encodings, some understanding of visual perception theory helps. It's often the simplest visuals that are the most effective. Consider the ranking of visual encodings in Table 1 as a starting point (Mackinlay, 1986). Mackinlay made recommendations about encodings for different types of data: quantitative, ordinal and nominal data. The effectiveness of encodings depends on the type of data. For example, colour is not an effective encoding for quantitative data; however, for nominal data it is highly effective. It's a good idea to encode the most important information using the most effective, least distorted encoding.

Table 1: Mackinlay's ranking of visual encodings for different types of data, ranked from most to least effective.

Table 1: Mackinlay's ranking of visual encodings for different types of data, ranked from most to least effective.
Quantitative Ordinal Nominal
Position Position Position
Length Density Colour Hue
Angle Colour Saturation Texture
Slope Colour Hue Connection
Area Texture Containment
Volume Connection Density
Density Containment Colour Saturation
Colour Saturation Length Shape
Colour Hue Angle Length
Texture Slope Angle
Connection Area Slope
Containment Volume Area
Shape Shape Volume

Occlusion and overplotting

Occlusion in data visualization occurs when two data points overlap, either partly or completely. For example, two points could be directly on top of each other, making it unclear to the reader that there are actually multiple data points. As a result, it becomes difficult to see the full scope of the data being presented and the effect of the occluded points cannot be seen.

Overplotting, that is displaying too much data, is a common cause of occlusion. This can occur in an effort to display as much data as possible in an attempt to give viewers a full picture. Consider figures 4 to 7, which demonstrate occlusion caused by overplotting and present some potential solutions. Each of these plots visualizes the same set of 10,000 points. In Figure 4, the distribution of the points cannot really be seen because of occlusion. There are so many points overlapped that all you can see is a large mass of points spanning almost the entire bottom left quadrant of the graph. The subsequent plots show some possible options to help reduce occlusion.

The points in Figure 5 are slightly smaller and more transparent. By adjusting the transparency (often denoted α) viewers are better able to see the distribution and the occluded points, though there are still many points that are occluded near the origin.

In Figure 6, there are no points shown at all. Instead, there is a contour plot showing the distribution of points, where the points are highly concentrated around a small region near the origin. Often when dealing with large datasets, such as those generated by simulations, the specific points are not particularly of interest; rather, it is the general pattern that is important, which is captured clearly by the contour plot.

Figure 4: Scatterplot 1

Figure 4: Scatterplot 1
Description - Figure 4

An example of a scatterplot of 10,000 points with a large mass of points in the bottom left quadrant of the graph. Many points are overlapping with one another, making it difficult to see the distribution.

Figure 5: Scatterplot 2

Figure 5: Scatterplot 2
Description - Figure 5

An example of a scatterplot of the same 10,000 points with smaller and more transparent points to reduce occlusion. There is still a mass of points in the bottom left quadrant, but it is clearer that the points are more concentrated around the origin.

Figure 6: Contour plot

Figure 6: Contour plot
Description - Figure 6

An example of a contour plot showing that many data points are concentrated near the origin, in the bottom left quadrant.

Figure 7: 3-D histogram

Figure 7: 3-D histogram
Description - Figure 7

An example of a 3-D histogram of the same set of points. Taller bars near the origin show the distribution somewhat more clearly; however, the taller bars occlude the shorter bars.

Figure 7 shows a three-dimensional histogram. Creators of visualizations who want to display a lot of data may be tempted to add another axis to create a 3D visualization; however, 3D graphics rarely make the visualization clearer because they cause occlusion themselves. In Figure 7, the three-dimensional nature of the plot means that the taller bars are occluding the shorter bars and the bars in front are occluding the bars in the back. So while the use of 3D may reduce overplotting, it still doesn't solve the occlusion problem and viewers still cannot see the full scope of the data. 3D graphics almost always result in occlusion, and occlusion management in 3D visualization is a somewhat active area of research in computer graphics. (See Trapp et al., 2019; Wang et al., 2019).

In summary, while it is generally a good idea to show readers the actual data, overplotting is counterproductive. The occlusion caused by overplotting can sometimes hide the main trend in the data. Adjusting certain visual components such as the size and transparency of the marks can help, but it's also important to consider if plotting all the individual data points is necessary for the analysis being presented.

Redundancy and clutter

To better delineate differences in the data, you may choose to encode some values redundantly using multiple features; this practice is called redundant encoding. For example, you may choose to distinguish between two classes using both colour and shape, say orange triangles and blue squares, in a scatterplot. Redundant encodings are widely used and thought to improve the clarity of visualizations. In fact, several software packages use redundant encodings as the default for certain visuals; however, empirical support for this practice is mixed (Nothelfer et al., 2017; Chun, 2017).

It is important to remember that redundant encodings do carry some costs, namely clutter, and do not always help. Consider figures 8 and 9. Figure 8 presents a bar chart with the same information (32, 96, 100) encoded four different ways. The labels along the x-axis (Low, Medium, High), already encode the data, albeit crudely. Then there's the length of the bars themselves, which are also accompanied by text labels that explicitly show the value. And lastly, there's a discretized colour scale where the colour of the bars also represents the value. There are four distinct visual cues that all encode the same information. This bar chart is a very low-noise environment; it's a simple graph with only three bars. In low-noise environments redundancy usually amounts to clutter. Compare to Figure 9, which loses the discretized colour encoding. It could be argued that the visualization is made more effective by removing an unnecessary encoding that may have distracted readers from the actual data.

Figure 8

Figure 8
Description - Figure 8

An example of a bar plot with a discretized colour scale. Three bars are labelled High, Medium and Low. The height of the bars represents the data, the bars are labelled with the data value, and the bars are coloured according to the value of the bar using a discretized colour scale.

Figure 9

Figure 9
Description - Figure 9

An example of a graph showing the same three bars as Figure 8, but without the colour encoding and without the labels (High, Medium, Low).

Now compare figures 8 and 9 with noisier environments as shown in figures 10 to 12, which display some data with three categories that are not clearly separated. In cases like this, there's some empirical evidence that redundant encodings help to better segment the data, that is to say distinguish between the classes (Nothelfer et al., 2017). In Figure 10 the category is encoded only by shape, in Figure 11 the category is encoded only by colour and in Figure 12 the category is encoded redundantly using both shape and colour. Looking at the shape alone (Figure 10), it's more difficult to segment the categories. In figures 11 and 12, it's easier to tell that a category has a lower variance than the other categories, is closely grouped near the origin, and that the third category is more spread out. In a high-noise display such as this one, using redundancy rather than introducing clutter as in the previous example, can actually help cut through the noise to better delineate between the categories. However, the different categories are already fairly clearly segmented using colour. This is likely because colour is more effective encoding than shape for distinguishing between groups. The redundant encoding may not add much in this case, making it more of an aesthetic choice.

Figure 10

Figure 10
Description - Figure 10

An example of a scatterplot with three categories in a noisy display encoded by shape only (circle, triangle, square).

Figure 11

Figure 11
Description - Figure 11

An example of a scatterplot with three categories in a noisy display encoded by colour only (green, orange, blue).

Figure 12

Figure 12
Description - Figure 12

An example of a scatterplot with three categories in a noisy display encoded redundantly by both colour and shape (green circle, orange triangle, blue square).

It is important to consider the difference between redundancy and clutter when designing visualizations. In simple visuals, it's unlikely that redundant encodings will make the visual clearer and will just amount to clutter. In a noisier display, there is some empirical evidence to suggest that redundant encodings can help; however, choosing a single highly effective encoding can also work well. Redundancy in a noisy display probably doesn't hurt and becomes more of a stylistic choice.

Conclusion

Good visuals are critical to telling the story of data as effectively as possible, and an effective visualization can make the data more easily understood to a wider audience. For a visualization to be effective, it needs to faithfully represent the underlying data. There are some problems that frequently occur in data visualization that can lead to misinterpretation. Some understanding of visual perception theory can help data scientists minimize distortion and provide better designs that improve the interpretability of their data visualizations. Showing too much data can also be misleading as it can result in occlusion. Consider simple adjustments, such as size and transparency, to help reduce occlusion and consider if plotting all the data is necessary for the purpose of the visualization. And finally, choose cleanliness over redundancy when possible. Redundant encodings often don't add much value, and the clutter they create can take away from the story.

References

Chun, R. (2017). Redundant Encoding in Data Visualizations: Assessing Perceptual Accuracy and Speed. Visual Communication Quarterly, 24(3), 135-148.

Mackinlay, J. (1986). Automating the design of graphical presentation of relational information. ACM Transactionson Graphics, 5(2), 110-141.

Nothelfer, C., Gleicher, M.,& Franconeri, S. (2017). Redundant encoding strengthens segmentation and grouping in visual displays of data. Journal of Experimental Psychology: Human Perception and Performance, 43(9), 1667–1676.

Stevens, S. S. (1957). On the psychophysical law. Psychological Review, 64(3), 153–181.

Trapp, M., Dumke,F., & Döllner, J. (2019). Occlusion Management Techniques for the Visualization of Transportation Networks in Virtual 3D City Models. Proceedings of the 12th International Symposium on Visual Information Communication and Interaction

Wang, L., Zhao, H., Wang, Z., Wu, J.,Li, B., He, Z., & Popescu, V. (2019). Occlusion Management in VR: A Comparative Study. 2019 IEEE Conference on Virtual Reality and 3D User Interfaces (VR), 708-706.

Date modified: