این آموزش به فناوری هر دو طرف حصار نگاه خواهد کرد: سمت ارائه دهنده داده ("چگونه می توانیم از SDMX-ML برای انتشار داده های آماری در وب سایت خود استفاده کنیم؟") ؛و طرف مصرف کننده داده ("چه نوع کارهای مفیدی را می توانیم با یک پرونده داده SDMX-ML انجام دهیم؟"). با این حال ، ابتدا ، به طور خلاصه ، مدل اطلاعات SDMX و برخی از قالب های SDMX-ML را ارائه خواهیم داد.
برای استفاده بیشتر از این آموزش ، دانش اساسی در مورد فن آوری های مرتبط با XML و XML ، مانند طرح های XML ، XSLT و SAX ، لازم است. برخی از وظایف شرح داده شده در آموزش نیز نیاز به استفاده از یک پارسگر معتبر XML ، به عنوان مثال Apache Xerces یا Xmllint از LibxML2 و یک پردازنده XSLT مانند Apache Xalan ، Saxon یا XSLTProc از LibxML2 دارند.
برای کسانی که از مورچه به عنوان سیستم ساخت خود استفاده می کنند ، بیشتر تمرینات را می توان با استفاده از پرونده ساخت تهیه شده اجرا کرد.
نمای کلی SDMX
داده های آماری و ابتکار مبادله ابرداده توسط هفت موسسه (BIS ، ECB ، Eurostat ، صندوق بین المللی پول ، OECD ، سازمان ملل و بانک جهانی) حمایت مالی می شود تا استانداردهای مبادله اطلاعات آماری را تقویت کند. نسخه اول استاندارد یک استاندارد ISO است (ISO/مشخصات فنی 17369: 2005). این یک مدل اطلاعاتی برای بازنمایی داده های آماری و ابرداده و همچنین چندین قالب برای ارائه این مدل (SDMX-EDI و چندین قالب SDMX-ML) ارائه می دهد. همچنین یک روش استاندارد برای اجرای خدمات وب ، از جمله استفاده از ثبت نام ها ارائه می دهد.
مدل اطلاعات SDMX به طور خلاصه
لیست زیر همه چیزهایی را که باید در مورد مدل اطلاعات SDMX [1]] بدانید به شما می گوید تا ما بتوانیم برنامه ای را بر اساس استاندارد SDMX شروع کنیم:
- مفاهیم توصیف کننده: برای درک برخی از داده های آماری ، باید مفاهیم مرتبط با آنها را بدانیم. به عنوان مثال ، به خودی خود شکل 1. 2953 بسیار بی معنی است ، اما اگر بدانیم که این یک نرخ ارز برای دلار آمریکا در برابر یورو در 23 نوامبر 2006 است ، شروع به حس بیشتری می کند.
- ساختار بسته بندی: داده های آماری را می توان در سطوح زیر با هم گروه بندی کرد: سطح مشاهده (اندازه گیری برخی از پدیده ها). سطح سری (اندازه گیری برخی از پدیده ها به مرور زمان ، معمولاً در فواصل منظم). سطح گروه (گروهی از سری-یک نمونه مشهور گروه خواهر و برادر ، مجموعه ای از سری ها یکسان هستند ، به جز این واقعیت که آنها با فرکانس های مختلف اندازه گیری می شوند). و سطح مجموعه داده (از چندین گروه ، برای پوشش یک دامنه آماری خاص به عنوان مثال). مفاهیم توصیف کننده ذکر شده در نقطه 1 می توانند در سطوح مختلف در این سلسله مراتب وصل شوند.
- ابعاد و ویژگی ها: دو نوع مفهوم توصیف کننده وجود دارد: ابعاد ، که هم داده ها را شناسایی و توصیف می کنند ، و ویژگی ها ، که کاملاً توصیفی هستند.
- کلیدها: ابعاد به کلیدها گروه بندی می شوند که امکان شناسایی مجموعه خاصی از داده ها را فراهم می کند (به عنوان مثال یک سری). مقادیر کلیدی در سطح سری وصل شده و در یک دنباله ثابت آورده شده است. به طور متعارف ، فرکانس اولین مفهوم توصیف کننده است و مفاهیم دیگر نظمی برای آن مجموعه داده خاص اختصاص می یابد. کلیدهای جزئی را می توان به گروه ها وصل کرد.
- لیست کد: هر مقدار ممکن برای یک بعد در یک لیست کد تعریف شده است. به هر مقدار در آن لیست ، اختصار مستقل از زبان (کد) و شرح خاص زبان داده می شود. ویژگی ها گاهی اوقات توسط کدها و گاهی اوقات با مقادیر متن آزاد نشان داده می شوند. از آنجا که هدف از یک ویژگی صرفاً توصیف و شناسایی داده ها است ، این یک مشکل نیست.
- تعاریف ساختار داده ها: تعریف ساختار داده (خانواده کلیدی) مجموعه ای از مفاهیم را مشخص می کند ، که مجموعه ای از داده ها را توصیف و شناسایی می کند. این به ما می گوید که مفاهیم ابعاد (شناسایی و توضیحات) هستند و کدام ویژگی ها هستند (فقط توضیحات) ، و سطح ضمیمه را برای هر یک از این مفاهیم بر اساس ساختار بسته بندی (مجموعه داده ، گروه ، سری یا مشاهده) می دهد ، به عنوانو همچنین وضعیت آنها (اجباری یا مشروط). همچنین مشخص می کند که کدام لیست کد مقادیر ممکن را برای ابعاد ارائه می دهد و مقادیر ممکن را برای ویژگی ها ارائه می دهد ، چه به عنوان لیست کد یا قسمت های متن رایگان.
قالبهای مختلف SDMX-ML
SDMX-ML از موارد مختلف استفاده پشتیبانی می کند و بنابراین چندین قالب XML را تعریف می کند.[2]برای هدف از این آموزش ، از دو قالب زیر استفاده می شود:
- فرمت تعریف ساختار: از این قالب برای تعریف ساختار (مفاهیم ، لیست کد ، ابعاد ، ویژگی ها و غیره) خانواده های کلیدی استفاده می شود.
- قالب جمع و جور: از این قالب برای تعریف پرونده داده استفاده می شود. این یک فرمت عمومی نیست (مخصوص تعریف ساختار داده است) ، اما برای پشتیبانی از اعتبار سنجی طراحی شده است و بسیار جمع و جور تر است تا از تبادل مجموعه داده های بزرگ پشتیبانی کند.
اکنون که اصول اولیه را می دانیم ، می توانیم شروع به توسعه برنامه خود کنیم.
ارائه دهنده داده ها
انتشار نرخ مرجع ارزی یورو در SDMX-ML
ما می خواهیم داده های نرخ مرجع ارز یورو را در وب سایت خود منتشر کنیم. اولین قدم ، تجزیه و تحلیل نوع داده هایی است که با آنها سر و کار داریم. سپس ما باید فایل تعریف ساختار را ایجاد کنیم تا این داده ها را نشان دهد. سپس ما یک طرح را از پرونده تعریف ساختار تولید می کنیم ، که برای اعتبارسنجی پرونده داده از آن استفاده خواهیم کرد. سرانجام ، ما پرونده داده XML را برای انتشار در وب سایت ایجاد خواهیم کرد.
تعریف ساختار داده
برای هدف از این تمرین ، از تعریف ساختار داده تعریف شده در جدول زیر استفاده خواهیم کرد.[3]
جدول 1. تعریف ساختار داده ها: ابعاد ، اقدامات و ویژگی ها
| ابعاد |
| نوع | مفهوم | نمایندگی | شرح |
| بعد 1 (نقش: فرکانس) | فرکه | cl_freq | فراوانی مشاهدات (روزانه ، در این مورد). |
| بعد 2 | واحد پول | cl_currency | ارز که ارزش آن در برابر ارز پایه اندازه گیری می شود ، به عنوان مثالدلار آمریکا |
| بعد 3 | ارز_دوم | cl_currency | ارز پایه (یورو ، در این مورد). |
| بعد 4 | exr_type | cl_exr_type | نوع نرخ ارز (در این مورد). |
| بعد 5 | exr_suffix | cl_exr_suffix | تغییر سری نرخ ارز (در این حالت ، میانگین یا استاندارد برای فرکانس معین). |
| بعد (نقش زمان است) | بازه زمانی | نقطه زمان | تاریخی که در آن مشاهده شده است. این بخشی از کلید سری نیست ، اما به سطح مشاهده وصل شده است. |
| اندازه گرفتن |
| OBS_VALUE (مقدار اندازه گیری شده) |
| ویژگی های |
| مفهوم | سطح واگذاری | نمایندگی | شرح |
| Obs_status (اجباری) | مشاهده | cl_obs_status | وضعیت مشاهده ، به عنوان مثالعادی ، تخمین زده شده یا پیش بینی شده (در این حالت طبیعی). |
| OBS_CONF (اختیاری) | مشاهده | cl_obs_conf | محرمانه بودن مشاهده. تمام داده های منتشر شده بدون محدودیت هستند ، اما این یک تمرین خوب است که به هر حال آن را ذکر کنیم. |
| time_format (اجباری) | سلسله | تنظیم مدت زمان | ISO 8601 روش برای توصیف مدت زمان (در این مورد ، P1D). |
| جمع آوری (اجباری) | سلسله | جمع آوری cl_collection | هنگامی که اطلاعات جمع آوری شد ، به عنوان مثالپایان دوره (در این مورد ، میانگین مشاهدات در طول دوره). |
| واحد (اجباری) | گروه | cl_unit | واحد مورد استفاده ، به عنوان مثالبرای روبل روسی مالش دهید. |
| Unit_Mult (اجباری) | گروه | cl_unit_mult | آیا داده ها در میلیون ها ، میلیارد ها و غیره است (در این حالت ، مقدار "0" (واحد) است). |
| اعشار (اجباری) | گروه | cl_decimals | تعداد مکانهای اعشاری. |
| TITE_COMPL (اجباری) | گروه | حداکثر 1050 نویسه | یک عنوان قابل خواندن انسانی که گروه خاصی از داده ها را توصیف می کند ، به عنوان مثالنرخ ارز مرجع ECB ، دلار/یورو استرالیا ، 2. 15 بعد از ظهر. CET |
ایجاد پرونده تعریف ساختار SDMX-ML
اکنون که ما یک مرور کلی از ساختار داده هایی که می خواهیم در وب سایت منتشر کنیم ، داریم ، می توانیم به طور رسمی این ساختار را با استفاده از SDMX-ML تعریف کنیم. قالب تعریف ساختار برای این نوع کار استفاده می شود ، زیرا شامل توضیحات ابرداده ساختاری ، مانند خانواده های کلیدی ، مفاهیم و لیست کد است.
هدر
از جمله اعلامیه XML اولیه ، پرونده XML (ECB_EXR1_STRUCTURE. XML) با عنصر ساختار و هدر استاندارد SDMX شروع می شود.
IREF000506 دروغ تعاریف ساختاری ECB 2006-10-25T14: 26: 00 عنصر ریشه (ساختار) تعریف شده است ، با نام های نام و تعاریف طرحواره به عنوان ویژگی ها (sdmxmessage. xsd و sdmxstructure. xsd) ضمیمه شده است. فضای نام پیام SDMX توسط سایر ماژول های فضای نام SDMX-ML استفاده می شود. این شامل سازه های پیام مشترک ، از جمله اطلاعات هدر مشترک (شناسه پیام ، نام ، تاریخ آماده شده و غیره) است. ویژگی شناسه عنصر فرستنده ، فرستنده داده ها را مشخص می کند ، که در این حالت بانک مرکزی اروپا است (کد 4F0 در چارچوب این فرستنده داده ، که از لیست کد cl_organisation گرفته شده است).
جدا از عنصر هدر ، پرونده XML شامل سه عنصر اصلی زیر است ، همه متعلق به فضای نام ساختار SDMX: رمزگذار ، مفاهیم و KeyFamilile.
مفاهیم
عنصر مفاهیم شامل لیستی از مفاهیم مورد استفاده برای شناسایی و توصیف داده ها است. تمام مفاهیم مورد استفاده در تعریف ساختار داده در این لیست گنجانده شده است.
هر عنصر مفهومی شامل دو ویژگی است: شناسه آژانس مسئول مفهوم ("ECB") و شناسه مفهوم (به عنوان مثال ، "Unit_Mult"). هر دو شناسه هستند و به همین ترتیب مستقل از زبان هستند. عنصر نام حاوی توصیف وابسته به زبان از مفهوم است (همانطور که در XML مشخص شده است: ویژگی Lang).
نشانگر
لیست کد
عنصر Codelists شامل لیستی از عناصر رمزگذار است که هر کدام دارای دو ویژگی هستند: شناسه آژانس مسئول لیست کد ("ECB") و شناسه لیست کد (به عنوان مثال ، "CL_EXR_SUFFIX"). عنصر نام شامل شرح لیست کد به یک زبان خاص است. هر لیست کد همچنین شامل لیستی از کدها است که دارای یک ویژگی برای مقدار کد و توضیحات وابسته به زبان از کد است. لیست کد مقادیر احتمالی گرفته شده توسط ابعاد و ویژگی های رمزگذاری شده را تعریف می کند.
ارزلیست لیست کد تغییر سری اندازه گیری متوسط یا استاندارد برای فرکانس داده شده پایان دوره
خانواده های کلیدی
اکنون که لیست مفاهیم و لیست های کد خود را داریم ، می توانیم تعریف ساختار داده خود را شروع کنیم.
عنصر KeyFamily شامل شناسه آژانس مسئول تعریف تعریف ساختار داده ("ECB") ، شناسه تعریف ساختار داده ("ECB_EXR1") ، URI (ما از فضای نام تعریف ساختار داده برای این استفاده می کنیم) ونام تعریف ساختار داده به یک زبان خاص.
نرخ تبدیل
سپس مؤلفه های تعریف ساختار داده ها تعریف می شوند که از ابعاد شروع می شود.
هر عنصر بعد شامل منابع مربوط به مفهوم توصیف کننده و لیست کد است که از آن باید مقدار ابعاد گرفته شود. به عنوان مثال ، ابعادی که مفهوم فرکانس را نشان می دهد مقادیر خود را از لیست کد CL_FREQ می گیرد و به همین ترتیب ، فقط می تواند یکی از مقادیر زیر را بگیرد: A (سالانه) ، B (تجارت) ، D (روزانه) ، E (رویداد) ، H (نیم سال) ، M (ماهانه) ، Q (سه ماهه) و W (هفتگی). iSfrequencyDimension به ابعادی متصل شده است که فرکانس را نشان می دهد (FREQ در این مورد). فقط می تواند یک ابعاد در هر تعریف ساختار داده وجود داشته باشد.
TimeDimension ابعادی خاص است که باید در هر تعریف ساختار داده که برای قالب های سری زمانی مانند GenericData ، CompactData و AtilityData استفاده می شود ، گنجانده شود.
ترتیب اعلامیه ابعاد مهم است زیرا نظمی را توصیف می کند که در آن ابعاد در کلیدها ظاهر می شود (به استثنای ابعاد زمان ، که بخشی از کلید نیست).
عنصر گروه هر گروه مفید از داده ها ، مانند گروه های خواهر و برادر را اعلام می کند.
واحد پول ارز_دوم exr_type exr_suffix
در مرحله بعد ما نشان می دهیم که کدام ویژگی حاوی مقدار اندازه گیری شده است. به طور معمول ، با مفهوم OBS_VALUE همراه است.
سرانجام ، ما ویژگی ها را لیست می کنیم. یک عنصر ویژگی شامل اطلاعاتی مانند مفهوم مورد استفاده برای ویژگی ، سطح پیوست ، یعنی مشاهده ، گروه ، سری یا مجموعه داده و اینکه آیا اجباری یا مشروط است. ویژگی های کدگذاری شده نشان می دهد که از کدام لیست مقادیر را باید در نظر گرفت ، در حالی که برای ویژگی های نامشخص ، یک قالب خاص ممکن است با استفاده از عنصر TextFormat مشخص شود. برای ویژگی های متصل به سطح گروه ، شناسه گروهی را که ویژگی ها به آن با یک عنصر پیوست گروه وصل شده اند ، مشخص می کنیم. مفهوم قالب زمان توسط ویژگی IStimeFormat با ارزش True مشخص می شود و به طور معمول یک ویژگی سطح سری اجباری است که مقدار آن از ISO 8601 گرفته شده است.
گروه
به عنوان آخرین مرحله ، ما از یک تجزیه و تحلیل اعتبار سنج XML برای تأیید فایل تعریف ساختار خود استفاده می کنیم و اطمینان حاصل می کنیم که مطابق با استاندارد SDMX-ML است [4]. برای انجام این مرحله می توانید از Task ValidateStructure تهیه شده در پرونده ANT BUILD استفاده کنید.
$ ant stalentatestructureBuildFile: Build. xml ValidateStructure: [xmlValidate] 1 پرونده (های) با موفقیت تأیید شده است. ایجاد زمان موفقیت آمیز: 2 ثانیه
ایجاد پرونده طرحواره
اکنون که یک پرونده تعریف ساختار معتبر داریم ، می توانیم یک فایل طرحواره XML را برای تعریف ساختار داده خود تولید کنیم. ابتکار SDMX برخی از ابزارهای رایگان را به توسعه دهندگان ارائه می دهد [5] یکی از آنها یک فایل XSL (struktureTocompact. xsl) است که یک طرح XML را از یک فایل تعریف ساختار برای تعریف ساختار داده انتخاب شده ایجاد می کند.[6]
برای ایجاد طرحواره ما ، باید:
- با استفاده از پرونده تعریف ساختار ما (ECB_EXR1_STRUCTURE. XML) به عنوان یک فایل ورودی XML ، پرونده XSL (struktureTocompact. xsl) و نام پرونده مورد نظر برای پرونده XML Schema (به عنوان مثال: ECB_EXR1_ComPact. xsd) به عنوان پارامترها استفاده کنید.
- پرونده را در یک ویرایشگر باز کرده و فضای نام پیش فرض را در عنصر XS: Schema اضافه کنید (xmlns = "http://www. ecb. int/vocabulary/stats/exr/1") [7].
برای انجام این مرحله می توانید از Task GenerateCompactSchema تهیه شده در پرونده ساخت مورچه استفاده کنید.
$ مورچه هاBuildFile: Build. xml GenerateCompactSchema: [xslt] پردازش ECB_EXR1_Structure. xml به ECB_EXR1_Compact. xsd [xslt] بارگیری StyleSheet StructureTocompact. xsl ساخت زمان موفقیت آمیز: 2 ثانیه
اکنون ما یک پرونده Schema XML (ECB_EXR1_ComPact. xsd) داریم که از آن برای تأیید فایل داده XML قبل از انتشار آن در وب سایت خود استفاده خواهیم کرد.
ایجاد پرونده داده SDMX-ML برای نمای سری زمانی
اکنون زمان ایجاد فایل داده XML است (ecb_exr1_compact. xml). این معمولاً با استخراج داده ها از پایگاه داده و ایجاد فایل داده XML انجام می شود.
هدر
وقتی فایل را باز می کنیم، باید شباهت هایی با فایل Structure Definition تشخیص دهیم، زیرا همه پیام های SDMX ساختارهای مشترکی دارند، به عنوان مثال: عناصر فضای نام SDMXMessage، مانند Header.
EXR-HIST_2006-11-29 دروغ نرخ مرجع ارز یورو 2006-11-23T08:26:29 بانک مرکزی اروپا DG Statistics contactstatistics@ecb. int عنصر مجموعه داده
پیام با عنصر DataSet، بالاترین سطح ممکن گروه بندی، ادامه می یابد.[8] یک فضای نام، یک طرح XML و شناسه مجموعه داده به عنصر اضافه می شود.
عنصر گروه
سطح بعدی گروه بندی عنصر Group است. از آنجایی که این یک گروه خواهر و برادر است، شامل تمام ابعاد (CURRENCY، CURRENCY_DENOM، EXR_TYPE و EXR_SUFFIX)، به جز فرکانس (FREQ)، که به صورت وحشی است، و اطلاعات تاریخ/زمان (TIME_PERIOD) که به obs پیوست شده است. مرحله. علاوه بر ابعاد، ویژگی هایی را نیز شامل می شود که به سطح گروه متصل می شوند (DECIMALS، UNIT، UNIT_MULT و TITLE_COMPL).
عنصر سری
پایین تر در گروه بندی بسته ها، به سطح سری می رسیم که شامل همان ابعاد سطح گروه به اضافه فرکانس است. همچنین شامل ویژگی هایی است که به سطح سری (TIME_FORMAT و COLLECTION) متصل شده اند.
عنصر مشاهده
عنصر Series همچنین شامل فهرست مشاهدات، در پایین ترین سطح ممکن در گروه بندی بسته است. مشاهدات شامل بعد زمانی (TIME_PERIOD)، مقدار اندازه گیری شده (OBS_VALUE) و ویژگی های متصل به سطح obs (OBS_STATUS و OBS_CONF) هستند.
این سه عنصر آخر (گروه، سری و Obs) برای همه گروه های داده ای که قرار است منتشر شوند، تکرار خواهند شد.
اکنون که فایل داده های خود را آماده کرده ایم، قبل از انتشار آن در وب سایت خود، باید آن را با استفاده از یک تجزیه کننده اعتبارسنجی XML تأیید کنیم. برای انجام این مرحله می توانید از task validateData ارائه شده در فایل ساخت Ant استفاده کنید.
$ ant اعتبارسنجی داده هاBuildfile: build. xml validateData: [xmlvalidate] 1 فایل با موفقیت تأیید شد. BUILD SUCCESSFUL زمان کل: 6 ثانیه
پس از انجام این کار، کار ناشر داده کامل می شود و ما با موفقیت موفق به انتشار یک فایل داده SDMX-ML در وب سایت خود شده ایم. اکنون می توانیم از آن برای بازیابی و نمایش داده های نرخ ارز استفاده کنیم.
مصرف کننده داده
بازیابی و نمایش نرخ ارز
چندین فناوری XML برای پردازش یک فایل داده XML در دسترس است.[9]
- زبان تحول XSL (XSLT) زبان: [10] XSLT می تواند برای تبدیل قطعات یا تمام پرونده داده XML به قالب های دیگر ، مانند (x) HTML ، CSV ، PDF ، WML و غیره استفاده شود. این فناوری برای ایجاد یک جدول HTML (x) که نرخ همه ارزها را در یک زمان خاص نشان می دهد.
- مدل Object Document (DOM): [11] DOM یک مدل شی گرا از یک سند XML است که آن را به عنوان یک ساختار درخت نشان می دهد. می توانید از DOM برای خواندن و نوشتن در یک فایل داده XML استفاده کنید. با این حال ، DOM کل درخت اسناد را در حافظه خود ذخیره می کند ، به این معنی که این منبع بسیار فشرده است ، به خصوص برای پرونده های بزرگ داده XML. اگر تمام آنچه ما نیاز داریم یک خواندن متوالی یا خواندن انتخابی یک بار است ، DOM ممکن است لازم نباشد.
- API ساده برای XML (SAX): [12] SAX از یک مدل رویداد محور استفاده می کند و یک فایل XML را به عنوان یک جریان یک طرفه از داده ها اداره می کند. تجزیه ساکس معمولاً سریعتر است و ردپای حافظه بسیار کوچکتر از ساخت DOM است. با این حال ، ساکس محدود کننده است ، از آنجا که شما نمی توانید به یک پرونده داده XML بنویسید ، خواندن یک طرفه است (بنابراین در صورت لزوم نمی توانید به پرونده XML برگردید و مجدداً از ابتدا شروع کنید) و هیچ نمایشی از ساختار وجود ندارداز پرونده داده XML.
برای هدف از این آموزش ، ما از SAX برای نمایش نرخ ارز برای یک ارز خاص در یک تاریخ خاص ، [13] و XSLT برای استخراج برخی از داده ها از پرونده داده SDMX ML استفاده خواهیم کرد و یک جدول HTML را نشان می دهد که نرخ ها را برای همه نشان می دهدارز در یک زمان خاص.[14]
تجزیه پرونده داده SDMX-ML با استفاده از SAX
قبل از استفاده از پرونده داده SDMX-ML ، ابتدا باید آن را تأیید کنیم. سپس می توانیم از یک پارسر ساکس برای استخراج نرخ ارز برای یک ارز خاص در یک نقطه خاص از زمان استفاده کنیم.
یک پارسر ساکس مبتنی بر رویداد است. به عنوان مثال ، هنگام برخورد با یک عنصر و دیگری در هنگام برخورد با متن ، یک روش را در برنامه فراخوانی می کند. بنابراین ، این وظیفه توسعه دهنده است که روش های تماس را بنویسد. جاوا کلاس هایی را برای کار با ساکس ارائه می دهد ، اما آموزش استفاده از ساکس در جاوا فراتر از محدوده این تمرین است.[15]
جدا از کد تنظیم مورد نیاز (به روش اصلی در پرونده saxgetrate. java مراجعه کنید) ، روش startElement به ما نشان می دهد که ما به دنبال آن هستیم: وقتی سری را برای ارز انتخاب شده پیدا می کنیم ، مشاهده ای را که مطابق با داده های داده شده است جستجو می کنیم. دوره و خروج از وقتی که مقدار پیدا شده است.
فقط یک پوسته را باز کنید و پس از این نحو آن را امتحان کنید:
$ jav a-cp tutorial. jar saxgetrate ecb_exr1_compact. xmlدوره ارز
$ jav a-cp tutorial. jar saxgetrate ecb_exr1_compact. xml USD 2006-11-21ارزش نرخ ارز برای USD در 2006-11-21: 1. 2814
با استفاده از XSLT برای ایجاد یک جدول HTML (x) از نرخ های روزانه
اکنون می خواهیم یک جدول HTML (x) تولید کنیم که حاوی نرخ ارز برای همه ارزها در یک زمان مشخص است. ما همچنین از فایل تعریف ساختار برای استخراج نام ارزها استفاده خواهیم کرد تا بتوانیم نام های کامل را به جای کدهای ارز نمایش دهیم.
باز هم ، مقدمه ای برای XSLT فراتر از محدوده این آموزش است ، اما متوجه خواهید شد که اسکریپت XSL نسبتاً کوچک است. جدا از تنظیمات خروجی ، مقدار منتقل شده به اسکریپت را برای دوره مورد نظر به یک متغیر اختصاص می دهیم و لیست ارزها را از پرونده تعریف ساختار دریافت می کنیم (ECB_EXR1_STRUCTURE. XML). سپس با ریشه پرونده داده SDMX-ML مطابقت داریم و اطلاعات اصلی HTML (سر ، بدنه ، جدول و غیره) را خروجی می کنیم. سرانجام ، ما با همه سریال ها مطابقت داریم. برای هر سری مقدار مشاهده را برای تاریخ مشخص شده دریافت می کنیم و آن را به جدول HTML اضافه می کنیم.
برای تولید جدول HTML (x) ، ما از یک پردازنده XSLT استفاده می کنیم ، با استفاده از پرونده داده SDMX-ML (ECB_EXR1_COMPACT. XML) به عنوان فایل ورودی ، SDMXML2HTML. xsl برای پرونده XSL و نام پرونده مورد نظر برای جدول HTML (E. G. ECB_EXR1_EXR1_EXR1_EXRIATE. html) به عنوان پارامترها. برای انجام این مرحله می توانید از Task GenerateHtmlTable تهیه شده در پرونده ANT BUILD استفاده کنید.
$ ANT GETERATEHTMLTABLEBuildFile: Build. xml generatehtmltable: [xslt] پردازش ECB_EXR1_COMPACT. XML به ECB_EXR1_TABLE. HTML [XSLT] بارگیری STYESTEET SDMXML2HTML. XSL ساخت زمان موفقیت آمیز: 5 ثانیه ثانیه
ما اکنون ایجاد دو ابزار مورد نیاز مصرف کننده داده را به پایان رسانده ایم و دانش کافی داریم تا بتوانیم نرم افزاری مبتنی بر SDMX کاملاً ساخته شده را بسازیم.
- برای توضیحات مفصل در مورد مدل اطلاعات SDMX ، به بخش 02 بسته بندی کامل استاندارد SDMX نسخه 2. 0 مراجعه کنید. همچنین در پایان این سند یک مقدمه بسیار مفید برای مفاهیم اساسی وجود دارد.
- برای توضیحات مفصل SDMX-ML ، به بخش 03 از بسته بندی کامل استاندارد SDMX نسخه 2. 0 مراجعه کنید
- این شبیه به خانواده رسمی رسمی ECB_EXR1 است اما به منظور این تمرین کمی ساده شده است.
- طرح های SDMX در وب سایت SDMX موجود است: http://www. sdmx. org/. برای هدف از این تمرین ، پرونده های طرحواره بارگیری و در همان فهرست به عنوان پرونده های نوشته شده برای آموزش قرار داده شده است.
- ابزارها را می توان (پس از ثبت نام) از: http://www. metadatatechnology. com/software/index. cgi بارگیری کرد.
- در حال حاضر ، ابزارها فقط با نسخه 1. 0 از استاندارد کار می کنند. ما کد XSL را برای کار با نسخه 2. 0 از استانداردها نیز تنظیم کرده ایم. در جایی که تفاوت بین نسخه اصلی و ECB وجود دارد ، نظرات درج شده است.
- با داشتن برخی از محدودیت های فنی (شما نمی توانید ویژگی XMLN ها را در XSLT 1. 0 تنظیم کنید) ، ما باید این مرحله را پس از تولید پرونده Schema XML انجام دهیم. در این آموزش ، این مرحله به صورت دستی انجام می شود.
- مجموعه داده های متعدد ممکن است در همان پرونده داده با استفاده از پیام پیام SDMX MessageGroup ادغام شوند.
- از آنجا که ما انتظار داریم که شما با فناوری های XML آشنا باشید ، ما فقط یک مرور کلی از این فناوری ها ارائه داده ایم. البته فن آوری های دیگری نیز وجود دارد که می توانند برای پردازش یک پرونده داده XML مورد استفاده قرار گیرند ، اما در این آموزش ما خود را به XSLT ، SAX و DOM محدود خواهیم کرد ، زیرا این احتمالاً بیشترین استفاده از فناوری هایی که زبان یا بستر نیستند ، هستندوابسته
- XSLT استانداردی است که توسط W3C تأیید شده است.
- DOM استانداردی است که توسط W3C تأیید شده است.
- اگرچه توسط W3C تأیید نشده است ، Sax یک استاندارد de facto برای صنعت XML است.
- ما همچنین یک کلاس DOM کوچک ایجاد کرده ایم که همان عمل را انجام می دهد تا بتواند نحوه عملکرد این دو فناوری را برای همان کار مقایسه کند.
- کد مورد استفاده در اینجا بسیار ابتدایی است و صرفاً به عنوان نمونه ای ساده از نحوه استخراج داده ها از یک پرونده داده SDMX-ML ارائه می شود. به هیچ وجه نباید یک کد با کیفیت در نظر گرفته شود یا اصلاً برای هر هدفی غیر از آنچه در بالا توضیح داده شد مفید باشد.
- خوانندگان علاقه مند ممکن است آموزش Sun J2ee را مفید بدانند.
گزینه های باینری...
ما را در سایت گزینه های باینری دنبال می کنید
برچسب : نویسنده : سحر زکریا بازدید : 30 تاريخ : شنبه 21 مرداد 1402 ساعت: 12:19