[Chicago-talk] Navigating an XSD

Joel Berger joel.a.berger at gmail.com
Fri Jan 23 04:56:17 PST 2015


I am personal partial to Mojo::DOM though it does not have any actual XSD
handling, it does xml just fine. That said, I would read through Matt
Trout's recommendations here: http://shadow.cat/blog/matt-s-trout/mstpan-3/

Joel
On Jan 22, 2015 11:13 PM, "Jay Strauss" <me at heyjay.com> wrote:

> Hi,
>
> I have an XSD document like below.  I've been googling and cpan-ing, but
> can't find what I need (i know there are lots of XML packages), and I don't
> know how to parse it using regexs (reliably).  I just want to read in this
> XSD and navigate it like a perl structure, and extract field values like:
>
> Field:ABS.1
> Item:1514
> Type:XCN
> Table:HL70010
> LongName:Discharge Care Provider
>
> Field:ABS.2
> ...
>
>
> Can anyone recommend a module or a method?
>
> Thanks
> Jay
>
>
> <?xml version ="1.0" encoding="UTF-8"?>
> <!--
>     v2.xml Message Definitions Version v2.5.1  - fields
>     HL7® Version 2.5.1, © Health Level Seven, Inc.  All rights
> reserved.  HL7 and Health Level Seven are registered trademarks of Health
> Level Seven, Inc.
> -->
> <xsd:schema
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>     xmlns="urn:hl7-org:v2xml"
>     xmlns:hl7="urn:com.sun:encoder-hl7-1.0"
>     targetNamespace="urn:hl7-org:v2xml" xmlns:jaxb="
> http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0">
>
>     <!-- include datatypes definitions for version v2.5.1 -->
>     <xsd:include schemaLocation="datatypes.xsd"/>
>
>     <xsd:annotation>
>         <xsd:appinfo source="urn:com.sun:encoder">
>             <encoding xmlns="urn:com.sun:encoder" name="HL7 v2 Encoding"
> namespace="urn:com.sun:encoder-hl7-1.0" style="hl7encoder-1.0"/>
>         </xsd:appinfo>
>     </xsd:annotation>
>
>     <!--
>         FIELD ABS.1
>     -->
>     <xsd:attributeGroup name="ABS.1.ATTRIBUTES">
>         <xsd:attribute name="Item" type="xsd:string" fixed="1514"/>
>         <xsd:attribute name="Type" type="xsd:string" fixed="XCN"/>
>         <xsd:attribute name="Table" type="xsd:string" fixed="HL70010"/>
>         <xsd:attribute name="LongName" type="xsd:string" fixed="Discharge
> Care Provider"/>
>     </xsd:attributeGroup>
>     <xsd:complexType name="ABS.1.CONTENT">
>         <xsd:annotation>
>             <xsd:documentation xml:lang="en">Discharge Care
> Provider</xsd:documentation>
>             <xsd:appinfo source="urn:com.sun:encoder">
>                 <hl7:Item>1514</hl7:Item>
>                 <hl7:Type>XCN</hl7:Type>
>                 <hl7:Table>HL70010</hl7:Table>
>                 <hl7:LongName>Discharge Care Provider</hl7:LongName>
>             </xsd:appinfo>
>         </xsd:annotation>
>         <xsd:complexContent>
>             <xsd:extension base="XCN">
>                 <xsd:attributeGroup ref="ABS.1.ATTRIBUTES"/>
>             </xsd:extension>
>         </xsd:complexContent>
>     </xsd:complexType>
>     <xsd:element name="ABS.1" type="ABS.1.CONTENT"/>
>     <!--
>         FIELD ABS.2
>     -->
>     <xsd:attributeGroup name="ABS.2.ATTRIBUTES">
>         <xsd:attribute name="Item" type="xsd:string" fixed="1515"/>
>         <xsd:attribute name="Type" type="xsd:string" fixed="CE"/>
>         <xsd:attribute name="Table" type="xsd:string" fixed="HL70069"/>
>         <xsd:attribute name="LongName" type="xsd:string" fixed="Transfer
> Medical Service Code"/>
>     </xsd:attributeGroup>
>     <xsd:complexType name="ABS.2.CONTENT">
>         <xsd:annotation>
>             <xsd:documentation xml:lang="en">Transfer Medical Service
> Code</xsd:documentation>
>             <xsd:appinfo source="urn:com.sun:encoder">
>                 <hl7:Item>1515</hl7:Item>
>                 <hl7:Type>CE</hl7:Type>
>                 <hl7:Table>HL70069</hl7:Table>
>                 <hl7:LongName>Transfer Medical Service Code</hl7:LongName>
>             </xsd:appinfo>
>         </xsd:annotation>
>         <xsd:complexContent>
>             <xsd:extension base="CE">
>                 <xsd:attributeGroup ref="ABS.2.ATTRIBUTES"/>
>             </xsd:extension>
>         </xsd:complexContent>
>     </xsd:complexType>
>     <xsd:element name="ABS.2" type="ABS.2.CONTENT"/>
>
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/chicago-talk/attachments/20150123/90c54508/attachment-0001.html>


More information about the Chicago-talk mailing list