Project

General

Profile

1
<?php
2
$ignoreTypes = array(
3
  "description"         => true,
4
  "example"             => true,
5
  "moduleDescription"   => true,
6
  "moduleDocs"          => true,
7
  "moduleName"          => true,
8
  "recommendedUsage"    => true,
9
  "standAlone"          => true,
10
  "summary"             => true,
11
  "tooltip"             => true,
12
  "annotation"          => true,
13
  "appinfo"             => true,
14
  "documentation"       => true,
15
  "import"              => true,
16
  "include"             => true,
17
  "schema"              => true,
18
  "AdditionalAbbreviations" => true,
19
  "BacteriaStatus"          => true,
20
  "BioCodeStatus"           => true,
21
  "BotanyStatus"            => true,
22
  "li"                      => true,
23
  "p"                       => true,
24
  "para"                    => true,
25
  "PreferredAbbreviation"   => true,
26
  "section"                 => true,
27
  "Specification"           => true,
28
  "SuffixAlgae"             => true,
29
  "SuffixAnimalia"          => true,
30
  "SuffixBacteriae"         => true,
31
  "SuffixFungi"             => true,
32
  "SuffixFungi"             => true,
33
  "SuffixPlantae"           => true,
34
  "title"                   => true,
35
  "ul"                      => true,
36
  "#text"                   => true,
37
  "#comment"                => true,
38
  "ZoologyStatus"           => true
39
);
40
            
41
function isIgnoreType($nodeName) {
42
  global $ignoreTypes;
43
  return $ignoreTypes[$nodeName];
44
}
45

    
46
$files = array(
47
               'eml-access.xsd',
48
               'eml-coverage.xsd',
49
               'eml-documentation.xsd',
50
               'eml-literature.xsd',
51
               'eml-party.xsd',
52
               'eml-project.xsd',
53
               'eml-resource.xsd',
54
               'eml-text.xsd',
55
               'tcsv101.xsd',
56
               'tdwg_basetypes.xsd',
57
               'tdwg_dw_element.xsd',
58
               'tdwg_dw_geospatial.xsd',
59
               'veg-misc.xsd',
60
               'veg-organismobservation.xsd',
61
               'veg-plotobservation.xsd',
62
               'veg.xsd',
63
               'veg-plot.xsd');
64

    
65

    
66
function hasImportantNodes($node) {
67
  $nodes = $node->getElementsbyTagName("*");
68
  foreach($nodes as $node) {
69
    $nodeName = preg_replace("/.*:/","",$node->nodeName);
70
    if(!isIgnoreType($nodeName)) {
71
      return true;
72
    }
73
  }
74
  return false;
75
}
76

    
77
foreach($files as $file) {
78
  $xmlDoc = new DOMDocument();
79
  $xmlDoc->load($file);
80
  $nodes = $xmlDoc->getElementsByTagName("*");
81
  foreach($nodes as $node) {
82
    $nodeName = preg_replace("/.*:/","",$node->nodeName);
83
    if(!isIgnoreType($nodeName)) {
84
      #if($nodeName == 'element' || $nodeName == 'restriction' || $nodeName == 'extension') {
85
      if($nodeName == 'attribute') {
86
        $baseName = $node->getAttribute('base');
87
        $baseName = preg_replace("/.*:/","",$baseName);
88
        $typeName = $node->getAttribute('type');
89
        $typeName = preg_replace("/.*:/","",$typeName);
90
        if($baseName != '') {
91
          print $baseName . "\n";
92
        } else if($typeName != '') {
93
          print $typeName . "\n";
94
        }
95
      }
96
    }
97
  }
98
}
99
?>
100

    
(2-2/7)