recog 2.3.22 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -0
  3. data/LICENSE +1 -1
  4. data/README.md +25 -16
  5. data/Rakefile +2 -9
  6. data/lib/recog/db_manager.rb +1 -1
  7. data/lib/recog/fingerprint.rb +21 -7
  8. data/lib/recog/fingerprint_parse_error.rb +10 -0
  9. data/lib/recog/match_reporter.rb +37 -3
  10. data/lib/recog/matcher.rb +5 -10
  11. data/lib/recog/verifier.rb +4 -4
  12. data/lib/recog/verify_reporter.rb +7 -6
  13. data/lib/recog/version.rb +1 -1
  14. data/{bin → recog/bin}/recog_match +20 -7
  15. data/{xml → recog/xml}/apache_modules.xml +0 -0
  16. data/{xml → recog/xml}/apache_os.xml +61 -19
  17. data/{xml → recog/xml}/architecture.xml +15 -1
  18. data/{xml → recog/xml}/dhcp_vendor_class.xml +10 -10
  19. data/{xml → recog/xml}/dns_versionbind.xml +16 -13
  20. data/{xml → recog/xml}/favicons.xml +167 -9
  21. data/{xml → recog/xml}/fingerprints.xsd +9 -1
  22. data/{xml → recog/xml}/ftp_banners.xml +131 -141
  23. data/{xml → recog/xml}/h323_callresp.xml +2 -2
  24. data/{xml → recog/xml}/hp_pjl_id.xml +81 -81
  25. data/{xml → recog/xml}/html_title.xml +250 -9
  26. data/{xml → recog/xml}/http_cookies.xml +111 -34
  27. data/{xml → recog/xml}/http_servers.xml +483 -270
  28. data/{xml → recog/xml}/http_wwwauth.xml +83 -37
  29. data/{xml → recog/xml}/imap_banners.xml +10 -10
  30. data/{xml → recog/xml}/ldap_searchresult.xml +0 -0
  31. data/{xml → recog/xml}/mdns_device-info_txt.xml +0 -0
  32. data/{xml → recog/xml}/mdns_workstation_txt.xml +0 -0
  33. data/{xml → recog/xml}/mysql_banners.xml +0 -0
  34. data/{xml → recog/xml}/mysql_error.xml +0 -0
  35. data/{xml → recog/xml}/nntp_banners.xml +8 -5
  36. data/{xml → recog/xml}/ntp_banners.xml +33 -33
  37. data/{xml → recog/xml}/operating_system.xml +92 -77
  38. data/{xml → recog/xml}/pop_banners.xml +25 -25
  39. data/{xml → recog/xml}/rsh_resp.xml +0 -0
  40. data/{xml → recog/xml}/rtsp_servers.xml +0 -0
  41. data/{xml → recog/xml}/sip_banners.xml +16 -5
  42. data/{xml → recog/xml}/sip_user_agents.xml +122 -27
  43. data/{xml → recog/xml}/smb_native_lm.xml +5 -5
  44. data/{xml → recog/xml}/smb_native_os.xml +25 -25
  45. data/{xml → recog/xml}/smtp_banners.xml +132 -131
  46. data/{xml → recog/xml}/smtp_debug.xml +0 -0
  47. data/{xml → recog/xml}/smtp_ehlo.xml +0 -0
  48. data/{xml → recog/xml}/smtp_expn.xml +0 -0
  49. data/{xml → recog/xml}/smtp_help.xml +1 -1
  50. data/{xml → recog/xml}/smtp_mailfrom.xml +0 -0
  51. data/{xml → recog/xml}/smtp_noop.xml +0 -0
  52. data/{xml → recog/xml}/smtp_quit.xml +0 -0
  53. data/{xml → recog/xml}/smtp_rcptto.xml +0 -0
  54. data/{xml → recog/xml}/smtp_rset.xml +0 -0
  55. data/{xml → recog/xml}/smtp_turn.xml +0 -0
  56. data/{xml → recog/xml}/smtp_vrfy.xml +0 -0
  57. data/{xml → recog/xml}/snmp_sysdescr.xml +1248 -1233
  58. data/{xml → recog/xml}/snmp_sysobjid.xml +13 -2
  59. data/{xml → recog/xml}/ssh_banners.xml +9 -5
  60. data/{xml → recog/xml}/telnet_banners.xml +83 -1
  61. data/{xml → recog/xml}/tls_jarm.xml +30 -2
  62. data/{xml → recog/xml}/x11_banners.xml +3 -3
  63. data/{xml → recog/xml}/x509_issuers.xml +24 -4
  64. data/{xml → recog/xml}/x509_subjects.xml +32 -3
  65. data/recog.gemspec +9 -5
  66. data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
  67. data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
  68. data/spec/data/external_example_fingerprint.xml +8 -0
  69. data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
  70. data/spec/lib/recog/db_spec.rb +84 -61
  71. data/spec/lib/recog/fingerprint_spec.rb +4 -4
  72. data/spec/lib/recog/match_reporter_spec.rb +22 -8
  73. data/spec/lib/recog/verify_reporter_spec.rb +8 -8
  74. data/spec/spec_helper.rb +4 -0
  75. data.tar.gz.sig +0 -0
  76. metadata +154 -142
  77. metadata.gz.sig +0 -0
  78. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  79. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  80. data/.github/ISSUE_TEMPLATE/fingerprint_request.md +0 -27
  81. data/.github/PULL_REQUEST_TEMPLATE +0 -24
  82. data/.github/SECURITY.md +0 -35
  83. data/.github/dependabot.yml +0 -8
  84. data/.github/workflows/ci.yml +0 -26
  85. data/.github/workflows/verify.yml +0 -89
  86. data/.gitignore +0 -23
  87. data/.rspec +0 -3
  88. data/.ruby-gemset +0 -1
  89. data/.ruby-version +0 -1
  90. data/.snyk +0 -10
  91. data/.travis.yml +0 -25
  92. data/CONTRIBUTING.md +0 -276
  93. data/bin/recog_cleanup +0 -16
  94. data/bin/recog_export +0 -81
  95. data/bin/recog_standardize +0 -163
  96. data/bin/recog_verify +0 -63
  97. data/cpe-remap.yaml +0 -356
  98. data/features/data/failing_banners_fingerprints.xml +0 -20
  99. data/features/data/matching_banners_fingerprints.xml +0 -23
  100. data/features/data/multiple_banners_fingerprints.xml +0 -32
  101. data/features/data/no_tests.xml +0 -3
  102. data/features/data/sample_banner.txt +0 -2
  103. data/features/data/successful_tests.xml +0 -18
  104. data/features/data/tests_with_failures.xml +0 -20
  105. data/features/data/tests_with_warnings.xml +0 -17
  106. data/features/match.feature +0 -36
  107. data/features/support/aruba.rb +0 -3
  108. data/features/support/env.rb +0 -6
  109. data/features/verify.feature +0 -48
  110. data/identifiers/README.md +0 -70
  111. data/identifiers/fields.txt +0 -105
  112. data/identifiers/hw_device.txt +0 -84
  113. data/identifiers/hw_family.txt +0 -121
  114. data/identifiers/hw_product.txt +0 -461
  115. data/identifiers/os_architecture.txt +0 -10
  116. data/identifiers/os_device.txt +0 -75
  117. data/identifiers/os_family.txt +0 -234
  118. data/identifiers/os_product.txt +0 -350
  119. data/identifiers/service_family.txt +0 -249
  120. data/identifiers/service_product.txt +0 -764
  121. data/identifiers/vendor.txt +0 -847
  122. data/lib/recog/verifier_factory.rb +0 -13
  123. data/misc/convert_mysql_err +0 -61
  124. data/misc/order.xsl +0 -17
  125. data/requirements.txt +0 -2
  126. data/spec/lib/fingerprint_self_test_spec.rb +0 -175
  127. data/tools/dev/hooks/pre-commit +0 -21
  128. data/update_cpes.py +0 -250
@@ -486,6 +486,15 @@
486
486
  <param pos="0" name="os.cpe23" value="cpe:/o:dd-wrt:dd-wrt:-"/>
487
487
  </fingerprint>
488
488
 
489
+ <fingerprint pattern="^cff908861188a1246a35c3f8325c7d2c$">
490
+ <description>Tomato Router Firmware</description>
491
+ <example>cff908861188a1246a35c3f8325c7d2c</example>
492
+ <param pos="0" name="os.vendor" value="Tomato"/>
493
+ <param pos="0" name="os.family" value="Linux"/>
494
+ <param pos="0" name="os.product" value="Tomato"/>
495
+ <param pos="0" name="os.device" value="Router"/>
496
+ </fingerprint>
497
+
489
498
  <fingerprint pattern="^bad2c1f96cd66e70b4aa119e7270cc62|966e60f8eb85b7ea43a7b0095f3e2336$">
490
499
  <description>Atlassian Confluence</description>
491
500
  <example>bad2c1f96cd66e70b4aa119e7270cc62</example>
@@ -493,7 +502,7 @@
493
502
  <param pos="0" name="service.vendor" value="Atlassian"/>
494
503
  <param pos="0" name="service.product" value="Confluence"/>
495
504
  <param pos="0" name="service.certainty" value="0.5"/>
496
- <param pos="0" name="service.cpe23" value="cpe:/a:atlassian:confluence:-"/>
505
+ <param pos="0" name="service.cpe23" value="cpe:/a:atlassian:confluence_server:-"/>
497
506
  </fingerprint>
498
507
 
499
508
  <fingerprint pattern="^0fbe700fd7d07ec8d30ef8b3ac261484$">
@@ -770,13 +779,19 @@
770
779
  </fingerprint>
771
780
 
772
781
  <fingerprint pattern="^97c6417ed01bdc0ae3ef32ae4894fd03|e2f298e9811cd34a08bf5bb69e2d1d6a$">
773
- <description>Jupyter Notebook</description>
782
+ <description>Jupyter Products</description>
774
783
  <example>97c6417ed01bdc0ae3ef32ae4894fd03</example>
775
784
  <example>e2f298e9811cd34a08bf5bb69e2d1d6a</example>
776
785
  <param pos="0" name="service.vendor" value="Jupyter"/>
777
- <param pos="0" name="service.product" value="Notebook"/>
778
786
  <param pos="0" name="service.certainty" value="0.5"/>
779
- <param pos="0" name="service.cpe23" value="cpe:/a:jupyter:notebook:-"/>
787
+ </fingerprint>
788
+
789
+ <fingerprint pattern="^7102bb857703a0fece6d039a6777fc3f$">
790
+ <description>Jupyter BinderHub</description>
791
+ <example>7102bb857703a0fece6d039a6777fc3f</example>
792
+ <param pos="0" name="service.vendor" value="Jupyter"/>
793
+ <param pos="0" name="service.product" value="BinderHub"/>
794
+ <param pos="0" name="service.cpe23" value="cpe:/a:jupyter:binderhub:-"/>
780
795
  </fingerprint>
781
796
 
782
797
  <fingerprint pattern="^36b3ef286fa4befbb797a0966b456479$">
@@ -1278,10 +1293,11 @@
1278
1293
  <param pos="0" name="hw.certainty" value="0.5"/>
1279
1294
  </fingerprint>
1280
1295
 
1281
- <fingerprint pattern="^c60ea375c39d1ab273c4d1bee717287a|9052ab290483b0bd75c05b857c182bba$">
1296
+ <fingerprint pattern="^c60ea375c39d1ab273c4d1bee717287a|9052ab290483b0bd75c05b857c182bba|3acbef1d83ac34f19a2631d6c1a4ac57$">
1282
1297
  <description>Synology DSM</description>
1283
1298
  <example>c60ea375c39d1ab273c4d1bee717287a</example>
1284
1299
  <example>9052ab290483b0bd75c05b857c182bba</example>
1300
+ <example>3acbef1d83ac34f19a2631d6c1a4ac57</example>
1285
1301
  <param pos="0" name="hw.vendor" value="Synology"/>
1286
1302
  <param pos="0" name="hw.family" value="DiskStation"/>
1287
1303
  <param pos="0" name="hw.device" value="NAS"/>
@@ -1327,10 +1343,13 @@
1327
1343
  <description>pfSense Firewall</description>
1328
1344
  <example>5567e9ce23e5549e0fcd7195f3882816</example>
1329
1345
  <example>57f187c7a868faeac558007a8eb6cb2e</example>
1330
- <param pos="0" name="hw.vendor" value="pfSense"/>
1331
- <param pos="0" name="hw.device" value="Firewall"/>
1332
- <param pos="0" name="hw.product" value="Firewall"/>
1333
- <param pos="0" name="hw.certainty" value="0.5"/>
1346
+ <param pos="0" name="service.vendor" value="pfSense"/>
1347
+ <param pos="0" name="service.product" value="pfSense"/>
1348
+ <param pos="0" name="service.device" value="Firewall"/>
1349
+ <param pos="0" name="service.cpe23" value="cpe:/a:pfsense:pfsense:-"/>
1350
+ <param pos="0" name="service.component.vendor" value="nginx"/>
1351
+ <param pos="0" name="service.component.product" value="nginx"/>
1352
+ <param pos="0" name="service.component.cpe23" value="cpe:/a:f5:nginx:-"/>
1334
1353
  <param pos="0" name="os.vendor" value="pfSense"/>
1335
1354
  <param pos="0" name="os.product" value="FreeBSD"/>
1336
1355
  <param pos="0" name="os.certainty" value="0.5"/>
@@ -1943,9 +1962,148 @@
1943
1962
  <param pos="0" name="os.vendor" value="LG"/>
1944
1963
  <param pos="0" name="os.product" value="webOS"/>
1945
1964
  <param pos="0" name="os.certainty" value="0.5"/>
1965
+ <param pos="0" name="os.cpe23" value="cpe:/o:lg:webos:-"/>
1946
1966
  <param pos="0" name="hw.vendor" value="LG"/>
1947
1967
  <param pos="0" name="hw.device" value="Smart TV"/>
1948
1968
  <param pos="0" name="hw.certainty" value="0.5"/>
1949
1969
  </fingerprint>
1950
1970
 
1971
+ <fingerprint pattern="^dd80f14145f075264b3067801f511c2f$">
1972
+ <description>Covenant .NET C2 framework</description>
1973
+ <example>dd80f14145f075264b3067801f511c2f</example>
1974
+ <param pos="0" name="service.product" value="Covenant"/>
1975
+ </fingerprint>
1976
+
1977
+ <fingerprint pattern="^5508e5abca6493613e11c72f4296ebf4$">
1978
+ <description>MITRE CALDERA C2 framework</description>
1979
+ <example>5508e5abca6493613e11c72f4296ebf4</example>
1980
+ <param pos="0" name="service.vendor" value="MITRE"/>
1981
+ <param pos="0" name="service.product" value="CALDERA"/>
1982
+ <param pos="0" name="service.cpe23" value="cpe:/a:mitre:caldera:-"/>
1983
+ </fingerprint>
1984
+
1985
+ <fingerprint pattern="^e4ce127909d4697b97bf404a42e7c428$">
1986
+ <description>mitmweb web interface for mitmproxy - https://github.com/mitmproxy/mitmproxy</description>
1987
+ <example>e4ce127909d4697b97bf404a42e7c428</example>
1988
+ <param pos="0" name="service.vendor" value="mitmproxy"/>
1989
+ <param pos="0" name="service.product" value="mitmproxy"/>
1990
+ <param pos="0" name="service.cpe23" value="cpe:/a:mitmproxy:mitmproxy:-"/>
1991
+ </fingerprint>
1992
+
1993
+ <fingerprint pattern="^531b63a51234bb06c9d77f219eb25553$">
1994
+ <description>phpMyAdmin web interface for MySQL and MariaDB</description>
1995
+ <example>531b63a51234bb06c9d77f219eb25553</example>
1996
+ <param pos="0" name="service.vendor" value="phpMyAdmin"/>
1997
+ <param pos="0" name="service.product" value="phpMyAdmin"/>
1998
+ <param pos="0" name="service.cpe23" value="cpe:/a:phpmyadmin:phpmyadmin:-"/>
1999
+ </fingerprint>
2000
+
2001
+ <fingerprint pattern="^ded14e8b701325c527da56f86b5d5616$">
2002
+ <description>Adminer database management tool</description>
2003
+ <example>ded14e8b701325c527da56f86b5d5616</example>
2004
+ <param pos="0" name="service.vendor" value="Adminer"/>
2005
+ <param pos="0" name="service.product" value="Adminer"/>
2006
+ <param pos="0" name="service.cpe23" value="cpe:/a:adminer:adminer:-"/>
2007
+ </fingerprint>
2008
+
2009
+ <fingerprint pattern="^6f6256748d679d8684123363bd50a8dd$">
2010
+ <description>mongo-express web-based MongoDB admin interface</description>
2011
+ <example>6f6256748d679d8684123363bd50a8dd</example>
2012
+ <param pos="0" name="service.vendor" value="mongo-express Project"/>
2013
+ <param pos="0" name="service.product" value="mongo-express"/>
2014
+ <param pos="0" name="service.cpe23" value="cpe:/a:mongo-express_project:mongo-express:-"/>
2015
+ </fingerprint>
2016
+
2017
+ <fingerprint pattern="^ce83d230195be7e6d3f1513cc5057da5$">
2018
+ <description>Apache Solr</description>
2019
+ <example>ce83d230195be7e6d3f1513cc5057da5</example>
2020
+ <param pos="0" name="service.vendor" value="Apache"/>
2021
+ <param pos="0" name="service.product" value="Solr"/>
2022
+ <param pos="0" name="service.cpe23" value="cpe:/a:apache:solr:-"/>
2023
+ </fingerprint>
2024
+
2025
+ <fingerprint pattern="^165de54ff29d30a3773c53e7911227d3$">
2026
+ <description>Apache Spark</description>
2027
+ <example>165de54ff29d30a3773c53e7911227d3</example>
2028
+ <param pos="0" name="service.vendor" value="Apache"/>
2029
+ <param pos="0" name="service.product" value="Spark"/>
2030
+ <param pos="0" name="service.cpe23" value="cpe:/a:apache:spark:-"/>
2031
+ </fingerprint>
2032
+
2033
+ <fingerprint pattern="^a3dcb28303f26786e262e0760781057a$">
2034
+ <description>Eltex device web interface</description>
2035
+ <example>a3dcb28303f26786e262e0760781057a</example>
2036
+ <param pos="0" name="os.vendor" value="Eltex"/>
2037
+ <param pos="0" name="hw.vendor" value="Eltex"/>
2038
+ </fingerprint>
2039
+
2040
+ <fingerprint pattern="^1ecd8df7909afd77188cee9c33042c55$">
2041
+ <description>WatchGuard Fireware XTM web interface</description>
2042
+ <example>1ecd8df7909afd77188cee9c33042c55</example>
2043
+ <param pos="0" name="service.vendor" value="WatchGuard"/>
2044
+ <param pos="0" name="service.product" value="Fireware XTM"/>
2045
+ <param pos="0" name="service.device" value="Firewall"/>
2046
+ <param pos="0" name="service.cpe23" value="cpe:/a:watchguard:fireware_xtm:-"/>
2047
+ <param pos="0" name="service.component.vendor" value="nginx"/>
2048
+ <param pos="0" name="service.component.product" value="nginx"/>
2049
+ <param pos="0" name="service.component.cpe23" value="cpe:/a:f5:nginx:-"/>
2050
+ <param pos="0" name="os.vendor" value="WatchGuard"/>
2051
+ <param pos="0" name="os.product" value="Fireware"/>
2052
+ <param pos="0" name="os.device" value="Firewall"/>
2053
+ <param pos="0" name="os.cpe23" value="cpe:/o:watchguard:fireware:-"/>
2054
+ </fingerprint>
2055
+
2056
+ <fingerprint pattern="^20197040d99f50747a953d163fef982e$">
2057
+ <description>WSO2 Carbon - service-oriented platform for WSO2 products</description>
2058
+ <example>20197040d99f50747a953d163fef982e</example>
2059
+ <param pos="0" name="service.vendor" value="WSO2"/>
2060
+ <param pos="0" name="service.product" value="Carbon"/>
2061
+ <param pos="0" name="service.cpe23" value="cpe:/a:wso2:carbon:-"/>
2062
+ </fingerprint>
2063
+
2064
+ <fingerprint pattern="^e562faa1b6f61ff53762e59d738b8fc0$">
2065
+ <description>openHAB - open-source home automation</description>
2066
+ <example>e562faa1b6f61ff53762e59d738b8fc0</example>
2067
+ <param pos="0" name="service.vendor" value="openHAB"/>
2068
+ <param pos="0" name="service.product" value="openHAB"/>
2069
+ <param pos="0" name="service.cpe23" value="cpe:/a:openhab:openhab:-"/>
2070
+ </fingerprint>
2071
+
2072
+ <fingerprint pattern="^ff66cb4b6922631e08d1538b361a2d2b$">
2073
+ <description>Home Assistant - open-source home automation</description>
2074
+ <example>ff66cb4b6922631e08d1538b361a2d2b</example>
2075
+ <param pos="0" name="service.vendor" value="Home-Assistant"/>
2076
+ <param pos="0" name="service.product" value="Home-Assistant"/>
2077
+ <param pos="0" name="service.cpe23" value="cpe:/a:home-assistant:home-assistant:-"/>
2078
+ </fingerprint>
2079
+
2080
+ <fingerprint pattern="^7d33656392385d5ce695db69c7736608$">
2081
+ <description>Alentis Electronics NetPing PDU web interface</description>
2082
+ <example>7d33656392385d5ce695db69c7736608</example>
2083
+ <param pos="0" name="os.vendor" value="Alentis Electronics"/>
2084
+ <param pos="0" name="os.product" value="NetPing Firmware"/>
2085
+ <param pos="0" name="os.device" value="Power Device"/>
2086
+ <param pos="0" name="hw.vendor" value="Alentis Electronics"/>
2087
+ <param pos="0" name="hw.product" value="NetPing"/>
2088
+ <param pos="0" name="hw.device" value="Power Device"/>
2089
+ </fingerprint>
2090
+
2091
+ <fingerprint pattern="^e174f317b4491295c63e5bc9d9b6115b|cd2461f62d76fbbc905fa15160c0788f|37fdaeebc861719280205e7107b78d52$">
2092
+ <description>dotCMS Content Management Platform</description>
2093
+ <example>e174f317b4491295c63e5bc9d9b6115b</example>
2094
+ <example>cd2461f62d76fbbc905fa15160c0788f</example>
2095
+ <example>37fdaeebc861719280205e7107b78d52</example>
2096
+ <param pos="0" name="service.vendor" value="dotCMS"/>
2097
+ <param pos="0" name="service.product" value="dotCMS"/>
2098
+ <param pos="0" name="service.cpe23" value="cpe:/a:dotcms:dotcms:-"/>
2099
+ </fingerprint>
2100
+
2101
+ <fingerprint pattern="^8c7d1c14e4b9c42f07bd6b800d93b806$">
2102
+ <description>Zimbra Collaboration</description>
2103
+ <example>8c7d1c14e4b9c42f07bd6b800d93b806</example>
2104
+ <param pos="0" name="service.vendor" value="Zimbra"/>
2105
+ <param pos="0" name="service.product" value="Collaboration"/>
2106
+ <param pos="0" name="service.cpe23" value="cpe:/a:zimbra:collaboration:-"/>
2107
+ </fingerprint>
2108
+
1951
2109
  </fingerprints>
@@ -104,16 +104,24 @@
104
104
  <xsd:sequence>
105
105
  <xsd:element name="description" type="xsd:string" minOccurs="1" maxOccurs="1"/>
106
106
  <xsd:element name="example" type="example_element" minOccurs="0" maxOccurs="unbounded"/>
107
- <xsd:element name="param" type="param_element" minOccurs="0" maxOccurs="unbounded"/>
107
+ <xsd:element name="param" type="param_element" minOccurs="1" maxOccurs="unbounded"/>
108
108
  </xsd:sequence>
109
109
  <xsd:attribute name="certainty" type="xsd:string" use="optional"/>
110
110
  <xsd:attribute name="pattern" type="xsd:string" use="required"/>
111
111
  <xsd:attribute name="flags" type="xsd:string" use="optional"/>
112
112
  </xsd:complexType>
113
113
 
114
+ <xsd:simpleType name="encoding">
115
+ <xsd:restriction base="xsd:string">
116
+ <xsd:enumeration value="base64" />
117
+ </xsd:restriction>
118
+ </xsd:simpleType>
119
+
114
120
  <xsd:complexType name="example_element">
115
121
  <xsd:simpleContent>
116
122
  <xsd:extension base="xsd:string">
123
+ <xsd:attribute name="_encoding" type="encoding"/>
124
+ <xsd:attribute name="_filename" type="xsd:string"/>
117
125
  <xsd:anyAttribute processContents="skip"/>
118
126
  </xsd:extension>
119
127
  </xsd:simpleContent>