Advertisement
Guest User

Untitled

a guest
Nov 9th, 2011
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 12.00 KB | None | 0 0
  1. <?xml version="1.0"?>
  2.  
  3. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  4.  
  5. <!-- Basic definitions -->
  6.  
  7.     <xs:element name="Year">
  8.         <xs:simpleType>
  9.             <xs:restriction base="xs:integer">
  10.                 <xs:minInclusive value="1900"/>
  11.                 <xs:maxInclusive value="9999"/>
  12.             </xs:restriction>
  13.         </xs:simpleType>
  14.     </xs:element>
  15.    
  16.     <xs:element name="Month">
  17.         <xs:simpleType>
  18.             <xs:restriction base="xs:string">
  19.             </xs:restriction>
  20.         <!--    <xs:restriction base="xs:integer">
  21.                 <xs:minInclusive value="1"/>
  22.                 <xs:maxInclusive value="12"/>
  23.                 </xs:restriction> -->
  24.         </xs:simpleType>               
  25.     </xs:element>
  26.    
  27.     <xs:element name="Day">
  28.         <xs:simpleType>
  29.             <xs:restriction base="xs:integer">
  30.                 <xs:minInclusive value="1"/>
  31.                 <xs:maxInclusive value="31"/>
  32.             </xs:restriction>
  33.         </xs:simpleType>               
  34.     </xs:element>
  35.  
  36. <!--Medline Citation Definitions -->
  37.  
  38.     <xs:element name="PMID">
  39.         <xs:simpleType>
  40.             <xs:restriction base="xs:integer">
  41.                 <xs:minInclusive value="00000000"/>
  42.                 <xs:maxInclusive value="99999999"/>
  43.             </xs:restriction>
  44.         </xs:simpleType>
  45.     </xs:element>
  46.  
  47.     <xs:element name="DateCreated">
  48.         <xs:complexType>
  49.             <xs:sequence>
  50.                 <xs:element ref="Year" />
  51.                 <xs:element ref="Month" />
  52.                 <xs:element ref="Day" />
  53.             </xs:sequence>
  54.         </xs:complexType>
  55.     </xs:element>
  56.    
  57.     <xs:element name="DateCompleted">
  58.         <xs:complexType>
  59.             <xs:sequence>
  60.                 <xs:element ref="Year" />
  61.                 <xs:element ref="Month" />
  62.                 <xs:element ref="Day" />
  63.             </xs:sequence>
  64.         </xs:complexType>
  65.     </xs:element>
  66.    
  67.     <xs:element name="DateRevised">
  68.         <xs:complexType>
  69.             <xs:sequence>
  70.                 <xs:element ref="Year" />
  71.                 <xs:element ref="Month" />
  72.                 <xs:element ref="Day" />
  73.             </xs:sequence>
  74.         </xs:complexType>
  75.     </xs:element>  
  76.  
  77.     <!-- Article definitions -->
  78.  
  79.     <xs:simpleType name="ISSN_ST"> <!-- this took 5 hours or so to figure out -->
  80.         <xs:restriction base="xs:string">
  81.             <xs:pattern value="[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}"/>
  82.         </xs:restriction>
  83.     </xs:simpleType>
  84.  
  85.     <xs:element name="Journal">
  86.         <xs:complexType>
  87.             <xs:all>
  88.                 <xs:element name="ISSN">
  89.                 <xs:complexType>
  90.                     <xs:simpleContent>
  91.                         <xs:extension base="ISSN_ST">
  92.                             <xs:attribute name="IssnType" type="xs:string"/>
  93.                         </xs:extension>
  94.                     </xs:simpleContent>
  95.                 </xs:complexType>
  96.                 </xs:element>
  97.                 <xs:element name="JournalIssue">
  98.                     <xs:complexType>
  99.                         <xs:all>
  100.                             <xs:element name="Volume" minOccurs="0">
  101.                                 <xs:simpleType>
  102.                                     <xs:restriction base="xs:integer">
  103.                                     </xs:restriction>
  104.                                 </xs:simpleType>
  105.                             </xs:element>
  106.                             <xs:element name="Issue" minOccurs="0">
  107.                                 <xs:simpleType>
  108.                                     <xs:restriction base="xs:integer">
  109.                                     </xs:restriction>
  110.                                 </xs:simpleType>
  111.                             </xs:element>
  112.                             <xs:element name="PubDate" minOccurs="0">
  113.                                 <xs:complexType>
  114.                                     <xs:sequence>
  115.                                         <xs:element ref="Year" />
  116.                                         <xs:element ref="Month" />
  117.                                         <xs:element ref="Day" />
  118.                                     </xs:sequence>
  119.                                 </xs:complexType>
  120.                             </xs:element>
  121.                         </xs:all>
  122.                         <xs:attribute name="CitedMedium" type="xs:string"/>
  123.                     </xs:complexType>
  124.                 </xs:element>
  125.                 <xs:element name="Title" type="xs:string" minOccurs="0"/>
  126.                 <xs:element name="ISOAbbreviation" type="xs:string" minOccurs="0"/>
  127.             </xs:all>
  128.         </xs:complexType>
  129.     </xs:element>
  130.  
  131.     <xs:element name="ArticleTitle" type="xs:string" />
  132.  
  133.     <xs:element name="Pagination">
  134.         <xs:complexType>
  135.             <xs:sequence>
  136.                 <xs:element name="MedlinePgn" type="xs:string" />
  137.             </xs:sequence>
  138.         </xs:complexType>
  139.     </xs:element>
  140.    
  141.     <xs:element name="Abstract">
  142.         <xs:complexType>
  143.             <xs:sequence>
  144.                 <xs:element name="AbstractText" type="xs:string" />
  145.             </xs:sequence>
  146.         </xs:complexType>
  147.     </xs:element>  
  148.  
  149.     <xs:element name="Affiliation" type="xs:string" />
  150.    
  151.     <!-- varying forms of ForeName validation -->
  152.     <xs:element name="ForeName" type="xs:string"/>
  153.     <xs:element name="FirstName" substitutionGroup="ForeName"/>
  154.    
  155.     <xs:element name="AuthorList">
  156.         <xs:complexType>
  157.             <xs:sequence minOccurs="1" maxOccurs="unbounded">
  158.                 <xs:element name="Author">
  159.                     <xs:complexType>
  160.                         <xs:sequence>
  161.                             <xs:element name="LastName" type="xs:string"/>
  162.                             <xs:element ref="ForeName"/>
  163.                             <xs:element name="Initials" type="xs:string"/>
  164.                         </xs:sequence>
  165.                         <xs:attribute name="ValidYN">
  166.                             <xs:simpleType>
  167.                                 <xs:restriction base="xs:string">
  168.                                     <xs:enumeration value="Y"/>
  169.                                     <xs:enumeration value="N"/>
  170.                                     <!-- <xs:pattern value="[YN]"/> -->
  171.                                 </xs:restriction>
  172.                             </xs:simpleType>
  173.                         </xs:attribute>
  174.                     </xs:complexType>
  175.                 </xs:element>
  176.             </xs:sequence>
  177.             <xs:attribute name="CompleteYN">
  178.                 <xs:simpleType>
  179.                     <xs:restriction base="xs:string">
  180.                         <xs:enumeration value="Y"/>
  181.                         <xs:enumeration value="N"/>
  182.                         <!-- <xs:pattern value="[YN]"/> -->
  183.                     </xs:restriction>
  184.                 </xs:simpleType>
  185.             </xs:attribute>
  186.         </xs:complexType>
  187.     </xs:element>
  188.    
  189.     <xs:element name="Language" type="xs:string" />
  190.  
  191.     <xs:element name="PublicationTypeList">
  192.         <xs:complexType>
  193.             <xs:sequence>
  194.                 <xs:element name="PublicationType" type="xs:string" />
  195.             </xs:sequence>
  196.         </xs:complexType>
  197.     </xs:element>  
  198.  
  199.     <xs:element name="ArticleDate">
  200.         <xs:complexType>
  201.             <xs:sequence>
  202.                 <xs:element ref="Year" />
  203.                 <xs:element ref="Month" />
  204.                 <xs:element ref="Day" />               
  205.             </xs:sequence>
  206.             <xs:attribute name="DateType" type="xs:string"/>
  207.         </xs:complexType>
  208.     </xs:element>
  209.    
  210.     <xs:element name="Article">
  211.         <xs:complexType>
  212.             <xs:all>
  213.                 <xs:element ref="Journal" minOccurs="0" />
  214.                 <xs:element ref="ArticleTitle" minOccurs="0" />
  215.                 <xs:element ref="Pagination" minOccurs="0" />
  216.                 <xs:element ref="Abstract" minOccurs="0" />
  217.                 <xs:element ref="Affiliation" minOccurs="0" />
  218.                 <xs:element ref="AuthorList" minOccurs="0" />
  219.                 <xs:element ref="Language" minOccurs="0" />
  220.                 <xs:element ref="PublicationTypeList" minOccurs="0" />
  221.                 <xs:element ref="ArticleDate" minOccurs="0" />
  222.             </xs:all>
  223.             <xs:attribute name="PubModel" type="xs:string"/>
  224.         </xs:complexType>
  225.     </xs:element>  
  226.  
  227.     <!-- Article definitions end -->
  228.  
  229.     <xs:element name="MedlineJournalInfo">
  230.         <xs:complexType>
  231.             <xs:all>
  232.                 <xs:element name="Country" type="xs:string" minOccurs="0"/>
  233.                 <xs:element name="MedlineTA" type="xs:string" />
  234.                 <xs:element name="NlmUniqueID" type="xs:integer" />
  235.             </xs:all>
  236.         </xs:complexType>
  237.     </xs:element>
  238.    
  239.     <xs:element name="ChemicalList">
  240.         <xs:complexType>
  241.             <xs:sequence minOccurs="1" maxOccurs="unbounded">
  242.                 <xs:element name="Chemical">
  243.                     <xs:complexType>
  244.                         <xs:sequence>
  245.                             <xs:element name="RegistryNumber" type="xs:string" />
  246.                             <xs:element name="NameOfSubstance" type="xs:string" />
  247.                         </xs:sequence>
  248.                     </xs:complexType>
  249.                 </xs:element>
  250.             </xs:sequence>
  251.         </xs:complexType>
  252.     </xs:element>
  253.    
  254.     <xs:element name="CitationSubset" type="xs:string" />
  255.    
  256.     <xs:element name="MeshHeadingList">
  257.         <xs:complexType>
  258.             <xs:sequence minOccurs="1" maxOccurs="unbounded">
  259.                 <xs:element name="MeshHeading">
  260.                     <xs:complexType>
  261.                         <xs:sequence>
  262.                            
  263.                             <xs:element name="DescriptorName" minOccurs="0" maxOccurs="unbounded">
  264.                                 <xs:complexType>
  265.                                     <xs:simpleContent>
  266.                                         <xs:extension base="xs:string">
  267.                                             <xs:attribute name="MajorTopicYN">
  268.                                                 <xs:simpleType>
  269.                                                     <xs:restriction base="xs:string">
  270.                                                         <xs:enumeration value="Y"/>
  271.                                                         <xs:enumeration value="N"/>
  272.                                                         <!-- <xs:pattern value="[YN]"/> -->
  273.                                                     </xs:restriction>
  274.                                                 </xs:simpleType>
  275.                                             </xs:attribute>
  276.                                         </xs:extension>
  277.                                     </xs:simpleContent>
  278.                                 </xs:complexType>
  279.                             </xs:element>
  280.                            
  281.                             <xs:element name="QualifierName" minOccurs="0" maxOccurs="unbounded">
  282.                                 <xs:complexType>
  283.                                     <xs:simpleContent>
  284.                                         <xs:extension base="xs:string">
  285.                                             <xs:attribute name="MajorTopicYN">
  286.                                                 <xs:simpleType>
  287.                                                     <xs:restriction base="xs:string">
  288.                                                         <xs:enumeration value="Y"/>
  289.                                                         <xs:enumeration value="N"/>
  290.                                                         <!-- <xs:pattern value="[YN]"/> -->
  291.                                                     </xs:restriction>
  292.                                                 </xs:simpleType>
  293.                                             </xs:attribute>
  294.                                         </xs:extension>
  295.                                     </xs:simpleContent>
  296.                                 </xs:complexType>
  297.                             </xs:element>
  298.                            
  299.                         </xs:sequence>
  300.                     </xs:complexType>
  301.                 </xs:element>
  302.             </xs:sequence>
  303.         </xs:complexType>
  304.     </xs:element>
  305.  
  306. <!--Pubmed Data Definitions -->
  307.  
  308.     <xs:element name="History">
  309.         <xs:complexType>
  310.             <xs:sequence minOccurs="1" maxOccurs="unbounded">  
  311.                 <xs:element name="PubMedPubDate">
  312.                     <xs:complexType>
  313.                         <xs:all>
  314.                             <xs:element ref="Year" />
  315.                             <xs:element ref="Month"  minOccurs="0"/>
  316.                             <xs:element ref="Day"  minOccurs="0"/>
  317.                             <xs:element name="Hour" minOccurs="0">
  318.                                 <xs:simpleType>
  319.                                     <xs:restriction base="xs:integer">
  320.                                         <xs:minInclusive value="1"/>
  321.                                         <xs:maxInclusive value="24"/>
  322.                                     </xs:restriction>
  323.                                 </xs:simpleType>       
  324.                             </xs:element>
  325.                             <xs:element name="Minute" minOccurs="0">
  326.                                 <xs:simpleType>
  327.                                     <xs:restriction base="xs:integer">
  328.                                         <xs:minInclusive value="0"/>
  329.                                         <xs:maxInclusive value="60"/>
  330.                                     </xs:restriction>
  331.                                 </xs:simpleType>       
  332.                             </xs:element>
  333.                         </xs:all>
  334.                         <xs:attribute name="PubStatus">
  335.                             <xs:simpleType>
  336.                                 <xs:restriction base="xs:string">
  337.                                     <xs:enumeration value="received"/>
  338.                                     <xs:enumeration value="accepted"/>
  339.                                     <xs:enumeration value="pubmed"/>
  340.                                     <xs:enumeration value="medline"/>
  341.                                     <xs:enumeration value="aheadofprint"/>
  342.                                     <!-- <xs:pattern value="/^(?:received|accepted|pubmed|medline|aheadofprint)$/i"/> -->
  343.                                 </xs:restriction>
  344.                             </xs:simpleType>
  345.                         </xs:attribute>
  346.                     </xs:complexType>
  347.                 </xs:element>
  348.             </xs:sequence>
  349.         </xs:complexType>
  350.     </xs:element>
  351.  
  352.     <xs:element name="PublicationStatus" type="xs:string" />
  353.    
  354.     <xs:element name="ArticleIdList">
  355.         <xs:complexType>
  356.             <xs:sequence minOccurs="1" maxOccurs="unbounded">  
  357.                     <xs:element name="ArticleId">
  358.                         <xs:complexType>
  359.                             <xs:simpleContent>
  360.                                 <xs:extension base="xs:string">
  361.                                     <xs:attribute name="IdType">
  362.                                         <xs:simpleType>
  363.                                             <xs:restriction base="xs:string">
  364.                                                 <xs:enumeration value="pii"/>
  365.                                                 <xs:enumeration value="doi"/>
  366.                                                 <xs:enumeration value="pubmed"/>
  367.                                             </xs:restriction>
  368.                                         </xs:simpleType>
  369.                                     </xs:attribute>
  370.                                 </xs:extension>
  371.                             </xs:simpleContent>
  372.                         </xs:complexType>
  373.                     </xs:element>
  374.             </xs:sequence>
  375.         </xs:complexType>
  376.     </xs:element>
  377.  
  378. <!-- Pubmed Article Template -->
  379.  
  380. <xs:element name="PubmedArticle">
  381.     <xs:complexType>
  382.         <xs:sequence>
  383.        
  384.        
  385.         <!--Medline Citation Template -->
  386.             <xs:element name="MedlineCitation">
  387.                 <xs:complexType>
  388.                     <xs:all>
  389.                         <xs:element ref="PMID" minOccurs="0" />
  390.                         <xs:element ref="DateCreated" minOccurs="0"/>
  391.                         <xs:element ref="DateCompleted" minOccurs="0"/>
  392.                         <xs:element ref="DateRevised" minOccurs="0"/>
  393.                         <xs:element ref="Article" minOccurs="0"/>
  394.                         <xs:element ref="MedlineJournalInfo" minOccurs="0" />
  395.                         <xs:element ref="ChemicalList" minOccurs="0" />
  396.                         <xs:element ref="CitationSubset" minOccurs="0"/>
  397.                         <xs:element ref="MeshHeadingList" minOccurs="0"/>
  398.                     </xs:all>
  399.                     <xs:attribute name="Owner" type="xs:string" fixed="NLM"/>
  400.                     <xs:attribute name="Status" type="xs:string"/>
  401.                 </xs:complexType>
  402.             </xs:element>
  403.            
  404.            
  405.         <!--Pubmed Data Template -->
  406.             <xs:element name="PubmedData">
  407.                 <xs:complexType>
  408.                     <xs:sequence>
  409.                         <xs:element ref="History" />
  410.                         <xs:element ref="PublicationStatus" />
  411.                         <xs:element ref="ArticleIdList" />
  412.                     </xs:sequence>
  413.                 </xs:complexType>
  414.             </xs:element>
  415.            
  416.         </xs:sequence>
  417.     </xs:complexType>
  418. </xs:element>
  419.  
  420. </xs:schema>
  421.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement