Advertisement
Guest User

Untitled

a guest
Dec 11th, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.66 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #################
  4. # PRELIMINARIES #
  5. #################
  6.  
  7. # Required software:
  8. # wget, unzip, libxml2-utils, sed, patch, cat
  9.  
  10. # Create some temporary work space
  11. mkdir tmp
  12. cd tmp
  13.  
  14. # Download DDI-L v3.2 specifications
  15. wget http://www.ddialliance.org/Specification/DDI-Lifecycle/3.2/DDI_3_2_2014-05-15.zip
  16.  
  17. # unzip
  18. unzip DDI_3_2_2014-05-15.zip
  19.  
  20. # Copy schemas closer to working directory for convenience
  21. cp -r DDI_3_2_2014-02-05/DDI_3_2_2014-05-15_Documentation_XMLSchema/XMLSchema .
  22.  
  23. #######################
  24. # PATCHING THE SCHEMA #
  25. #######################
  26.  
  27. # Get the patch
  28. wget http://www.pastebucket.com/paste/download/72481
  29.  
  30. # Need some byte-level juggling here due to CRLF line-endings...
  31.  
  32. # Add a trailing CRLF to the patch file
  33. sed -e '$s/$/\r\n/' -i 72481
  34.  
  35. # Verify that the patch works.
  36. # Here --binary is needed because the file and the patch have CRLF line-endings.
  37. patch --dry-run --binary --verbose XMLSchema/reusable.xsd <72481
  38.  
  39. # Patch the schema
  40. patch --binary --verbose XMLSchema/reusable.xsd <72481
  41.  
  42. ######################
  43. # TESTING THE SCHEMA #
  44. ######################
  45.  
  46. # Verify the libxml2 version
  47. xmllint --version
  48. # xmllint: using libxml version 20901
  49.  
  50. # test case valid-1
  51.  
  52. cat >test-valid1.xml <<EOF
  53. <?xml version="1.0" encoding="utf-8"?>
  54. <ddi:DDIInstance xmlns:ddi="ddi:instance:3_2" xmlns:r="ddi:reusable:3_2">
  55.   <!-- Has both -->
  56.   <r:Agency>acme.org</r:Agency>
  57.   <r:ID>ddi_instance</r:ID>
  58.   <r:Version>1</r:Version>
  59.   <r:URN>urn:ddi:acme.org:ddi_instance:1</r:URN>
  60. </ddi:DDIInstance>
  61. EOF
  62.  
  63. xmllint --noout -schema XMLSchema/instance.xsd test-valid1.xml
  64. # test-valid1.xml validates
  65.  
  66. # test case valid-2
  67.  
  68. cat >test-valid2.xml <<EOF
  69. <?xml version="1.0" encoding="utf-8"?>
  70. <ddi:DDIInstance xmlns:ddi="ddi:instance:3_2" xmlns:r="ddi:reusable:3_2">
  71.   <!-- Has only Agency/ID/Version -->
  72.   <r:Agency>acme.org</r:Agency>
  73.   <r:ID>ddi_instance</r:ID>
  74.   <r:Version>1</r:Version>
  75. </ddi:DDIInstance>
  76. EOF
  77.  
  78. xmllint --noout -schema XMLSchema/instance.xsd test-valid2.xml
  79. # test-valid2.xml validates
  80.  
  81. # test case valid-3
  82.  
  83. cat >test-valid3.xml <<EOF
  84. <?xml version="1.0" encoding="utf-8"?>
  85. <ddi:DDIInstance xmlns:ddi="ddi:instance:3_2" xmlns:r="ddi:reusable:3_2">
  86.   <!-- Has only URN -->
  87.   <r:URN>urn:ddi:acme.org:ddi_instance:1</r:URN>
  88. </ddi:DDIInstance>
  89. EOF
  90.  
  91. xmllint --noout -schema XMLSchema/instance.xsd test-valid3.xml
  92. # test-valid3.xml validates
  93.  
  94. # test case invalid-1
  95.  
  96. cat >test-invalid1.xml <<EOF
  97. <?xml version="1.0" encoding="utf-8"?>
  98. <ddi:DDIInstance xmlns:ddi="ddi:instance:3_2" xmlns:r="ddi:reusable:3_2">
  99.   <!-- Has neither -->
  100. </ddi:DDIInstance>
  101. EOF
  102.  
  103. xmllint --noout -schema XMLSchema/instance.xsd test-invalid1.xml
  104. # test-invalid1.xml fails to validate
  105.  
  106. # test case invalid-2
  107.  
  108. cat >test-invalid2.xml <<EOF
  109. <?xml version="1.0" encoding="utf-8"?>
  110. <ddi:DDIInstance xmlns:ddi="ddi:instance:3_2" xmlns:r="ddi:reusable:3_2">
  111.   <!-- Has double Agency/ID/Version -->
  112.   <r:Agency>acme.org</r:Agency>
  113.   <r:ID>ddi_instance1</r:ID>
  114.   <r:Version>1</r:Version>
  115.   <r:Agency>acme.org</r:Agency>
  116.   <r:ID>ddi_instance2</r:ID>
  117.   <r:Version>1</r:Version>
  118. </ddi:DDIInstance>
  119. EOF
  120.  
  121. xmllint --noout -schema XMLSchema/instance.xsd test-invalid2.xml
  122. # test-invalid2.xml fails to validate
  123.  
  124. # test case invalid-3
  125.  
  126. cat >test-invalid3.xml <<EOF
  127. <?xml version="1.0" encoding="utf-8"?>
  128. <ddi:DDIInstance xmlns:ddi="ddi:instance:3_2" xmlns:r="ddi:reusable:3_2">
  129.   <!-- Has double URN -->
  130.   <r:URN>urn:ddi:acme.org:ddi_instance1:1</r:URN>
  131.   <r:URN>urn:ddi:acme.org:ddi_instance2:1</r:URN>
  132. </ddi:DDIInstance>
  133. EOF
  134.  
  135. xmllint --noout -schema XMLSchema/instance.xsd test-invalid3.xml
  136. # test-invalid3.xml fails to validate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement