www.d-Wise.com
•
•
•
www.d-Wise.com
• eXtensible Markup Language
• Used for structure, storage, and transport of data
(w3schools.com)
• Like any other computer language…
• textual gibberish
• set of rules (structural, syntax)
• vocabulary
• elements
• attributes
• tags
• schemas www.d-Wise.com
<nhl>
<team name="Red Wings">
<conference>Eastern</conference>
<division>Atlantic</division>
<location>Detroit</location>
</team>
<team name="Flames">
<conference>Western</conference>
<division>Pacific</division>
<location>Calgary</location>
</team>
<team name="Devils">
<conference>Eastern</conference>
<division>Metropolitan</division>
<location>New Jersey</location>
</team>
</nhl> www.d-Wise.com
• XML document is made of elements
(nhl, team, conference)
• Elements are marked with a start tag and an end tag (<division>,
</division>)
• Elements may be nested within other elements (location is nested within team)
• Elements may contain attributes
(team element contains the name attribute)
• An element's value is the text outside of a nested element between the element's start and end tags (Pacific is a value of the division element)
• Each XML document must contain a
root element (nhl)
• Like any other computer language…
• textual gibberish
• set of rules (structural, syntax)
• vocabulary
• elements
• attributes
• tags
• schemas
• Unlike other computer languages…
• no keywords
• no processor www.d-Wise.com
• XML Schema (informal) - A specific set of elements and attributes, along with a set of rules that govern their use, for the purpose of transferring data between systems and developing applications for processing such data.
• An XML schema can be a combination of new elements along with other XML schemas (extensible)
• XML schema file - A well-formed XML file used for enforcing the rules of an XML schema, or validating an XML document.
www.d-Wise.com
• NHL (Ok, I made this one up)
• XSL (eXtensible Stylesheet Language, .xsl)
• Transforms XML into something else
• XML schema files (.xsd)
• Validates an XML document
• XML Spreadsheet 2003 (.xml)
• Read and displayed by Excel
• ODM, Define, SDS
• Clinical Trials data, metadata www.d-Wise.com
• Operational Data Model (ODM)
• Collected clinical trial data, metadata, administrative data, reference data, audit information
• Define-XML
• Metadata for submitted data in ODM structure
• Value-level metadata is in the define extension
• SDS-XML
• Submission data in ODM structure www.d-Wise.com
Collected
Data
Data
Transformations
Data
Submission
Metadata
Submission
ODM.XML
www.d-Wise.com
SAS
SDS.XML
Define.XML
Clinical Data
ItemGroup (dataset-level) Metadata www.d-Wise.com
Clinical Data www.d-Wise.com
ItemGroup (dataset-level) Metadata
Item (variable-level) Metadata
Item (variable-level) Metadata
Codelist Metadata (allowable values) www.d-Wise.com
www.d-Wise.com
www.d-Wise.com
www.d-Wise.com
Exporting XML with the LIBNAME statement libname xmlout xml 'C:\teams_generic.xml' ; data xmlout.xteams ; set teams ; run; www.d-Wise.com
Exporting XML with the LIBNAME statement libname xmlout xml 'C:\teams_oracle.xml' xmltype=oracle ; data xmlout.xteams ; set teams ; run; www.d-Wise.com
Exporting XML with a DATA step filename xmlout4 'C:\teams_datastep.xml' ; data _null_ ; file xmlout4 ; set teams end=thatsit ; if _n_ eq 1 then put '<nhl>' ; put '<team name="' name '">' ; put '<conference>' conference '</conference>' ; put '<division>' division '</division>' ; put '<location>' location '</location>' ; put '</team>' ; if thatsit then put '</nhl>' ; run; www.d-Wise.com
Exporting XML with the LIBNAME statement or
ODS using tagsets libname xmlout xml 'C:\teams_tagset_libname.xml' tagset=<tagset-name> ; data xmlout.xteams ; set teams ; run; ods markup tagset=<tagset-name> file='C:\teams_tagset_ods.xml'; proc print noobs data=teams ; run; ods markup close ; www.d-Wise.com
Exporting XML with ODS using SAS's ExcelXP tagset ods markup tagset=excelxp file='C:\teams_excel.xml'; proc print noobs data=teams ; run; ods markup close ; www.d-Wise.com
References
A SAS Programmer's Guide to Generating Define.xml, SAS
Global Forum 2009 ods markup tagset=mydefine file='define.xml' ; proc print noobs data=meta-dataset1; run; proc print noobs data=meta-dataset2; run; proc print noobs data=meta-dataset3; run; etc ods markup close ; www.d-Wise.com
References
Tips and Tricks for Creating Multi-Sheet Microsoft Excel
Workbooks, Vince DelGobbo, SAS Global Forum 2009
ODS Markup: The SAS Reports You've Always Dreamed of,
Eric Gebhart, SUGI 30 www.d-Wise.com
References
ExcelXP on Steroids: Adding Custom Options to the ExcelXP
Tagset, SAS Global Forum 2011 ods markup tagset=myexcel file='define.xml' options (tab_color='45') ; proc print noobs data=dataset1; run; ods markup close ; www.d-Wise.com
Export libname xmlout xml 'C:\teams_generic.xml' ; data xmlout.xteams ; set teams ; run;
Import data sasteams ; set xmlout.xteams ; run; www.d-Wise.com
NHL.XML
<nhl>
<team name="Red Wings">
<conference>Eastern</conference>
<division>Atlantic</division>
<location>Detroit</location>
</team>
<team name="Flames">
<conference>Western</conference>
<division>Pacific</division>
<location>Calgary</location>
</team>
<team name="Devils">
<conference>Eastern</conference>
<division>Metropolitan</division>
<location>New Jersey</location>
</team>
</nhl> www.d-Wise.com
libname xmlin xml
'C:\teams_nhl.xml' ; data sasteam ; set xmlin.team ; run;
SASTEAM.SAS7BDAT
Importing XML with an XML map
• An XML map is an XML schema
• Provides instructions to the XML LIBNAME engine for reading XML
• Name and Label for the data set
• Which XML elements define observations
• How to define variables (attributes and values)
• Uses XPath syntax to navigate the XML document and identify its components filename mymap 'C:\mymap.map' ; libname xmlin xml 'C:\nhl.xml' xmlmap=mymap ; data sasteams ; set xmlin.teams ; run; www.d-Wise.com
Importing XML with an XML map
<?xml version="1.0" encoding="UTF-8"?>
<SXLEMAP version="1.2">
<TABLE name="SASTeams"> Name of data set to be created
<TABLE-PATH syntax="XPath">/nhl/team</TABLE-PATH> Observation boundary
Variable Definition
</TABLE>
</SXLEMAP> www.d-Wise.com
www.d-Wise.com
XML Mapper
Clinical Standards Toolkit (CST)
• A Base SAS framework for executing clinical data tasks such as verification of data compliance against standards and importing/exporting ODM and Define.xml.
• Contains all necessary files (SAS macros and driver programs, maps, XSL stylesheets)
• Learning curve www.d-Wise.com
www.d-Wise.com
Clinical Standards Toolkit (CST)
…or PROC XSL
References
• Using the SAS Clinical Standards Toolkit 1.5 to Import
CDISC ODM Files, Lex Jansen, Pharmasug 2013
• Using the SAS Clinical Standards Toolkit for Define.xml
Creation, Lex Jansen, Pharmasug 2011
• Accessing the Metadata from the Define.xml Using XSLT
Transformation, Lex Jansen, Phuse 2010 www.d-Wise.com
In Summary…
• Options for Exporting XML
• XML LIBNAME engine (XMLTYPE=, TAGSET= options)
• ODS (SAS XML destinations or user-defined tagsets)
• DATA step
• XSL stylesheets
• CST (clinical)
• Options for Importing XML
• XML LIBNAME engine (XMLTYPE=, TAGSET= options)
• XML maps
• XSL stylesheets
• CST (clinical) www.d-Wise.com