From 4a03de25c1122ae2380d4809af6423244f10248c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Luka=C5=A1=C3=ADk?= Date: Mon, 20 Nov 2023 10:57:41 +0100 Subject: [PATCH 1/5] ci: scap: fail fast --- .github/workflows/scap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scap.sh b/.github/workflows/scap.sh index 908a983..877c2e0 100755 --- a/.github/workflows/scap.sh +++ b/.github/workflows/scap.sh @@ -22,6 +22,7 @@ pushd $workdir # Generage go code based on XSDs $xsd2go convert .scap_schemas/schemas/cpe/2.3/cpe-dictionary_2.3.xsd github.com/gocomply/scap pkg/scap/models + go vet ./... $xsd2go convert \ --xmlns-override=http://cpe.mitre.org/language/2.0=cpe_language \ .scap_schemas/schemas/xccdf/1.2/xccdf_1.2.xsd github.com/gocomply/scap pkg/scap/models From fa04e54f03ca59235d6068fc093460ef9b9dd435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Luka=C5=A1=C3=ADk?= Date: Mon, 20 Nov 2023 10:57:58 +0100 Subject: [PATCH 2/5] ci: Use newer golang in the scap ci --- .github/workflows/scap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scap.sh b/.github/workflows/scap.sh index 877c2e0..2feab3e 100755 --- a/.github/workflows/scap.sh +++ b/.github/workflows/scap.sh @@ -9,7 +9,7 @@ workdir=./scap/ mkdir -p $workdir cat <<__END__ > $workdir/go.mod module github.com/gocomply/scap -go 1.17 +go 1.20 __END__ pushd $workdir From 83e46c9b36e312b70d799ad833d395da3335de18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Luka=C5=A1=C3=ADk?= Date: Mon, 20 Nov 2023 11:10:19 +0100 Subject: [PATCH 3/5] Revert "Always add InnerXml to ComplexType" Looking at the git history I see the following three events: - I had guarded InnerXml support - available in case we knew for sure InnerXml is needed - then we went with InnerXml being parsed all the time - then we saw some problems and disable InnerXml together Not trying to be impolite to outside contributors, but boy haven't the original design been better than the current end state? This reverts commit ac7b5f08a8ff8beeda439934ba258af7340d1619 and 032abf4c777fa62c7d8b57f21037882f2851c7ec Addressing: + go vet ./... Error: pkg/scap/models/cpe_language/models.go:84:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:96:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:110:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:126:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:134:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:144:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:158:2: struct field innerXml has xml tag but is not exported Error: pkg/scap/models/cpe_language/models.go:167:2: struct field innerXml has xml tag but is not exported ... and thousand other --- pkg/template/pkged.go | 2 +- pkg/template/types.tmpl | 4 +- pkg/xsd/types.go | 4 ++ tests/xsd-examples/valid/complex.xsd.out | 2 - tests/xsd-examples/valid/restriction.xsd.out | 7 +-- .../xsd-examples/valid/simple-8859-1.xsd.out | 2 - tests/xsd-examples/valid/simple.xsd.out | 2 - .../valid/xmldsig-core-schema.xsd.out | 45 ++++--------------- 8 files changed, 18 insertions(+), 50 deletions(-) diff --git a/pkg/template/pkged.go b/pkg/template/pkged.go index 73ec31a..4ddae51 100644 --- a/pkg/template/pkged.go +++ b/pkg/template/pkged.go @@ -10,4 +10,4 @@ import ( "github.com/markbates/pkger/pkging/mem" ) -var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffec595b73dabaf6ff2a7bf4fa67c71702c4bc051a0c6992dd4082c19d4e47b684ad224bfe5b32c1e9e4bb9f916c8c4920c93e2ffbcc99331dea75f9696969dd2cc86f40d88a0bd0ff0dd4e70bc9401f188f0267c26024e4140a03e18d41f906c79c12040b616c05b2230e5a6092a43c93dfa08c411f8016b88309067d50ebbff0b0543cc02cc2b2a4a79c57d42d94610cfa2ca7b4056612520cfa2b4805aeb8298682b312ebf211a158ecd0e5ce35fb05a735fd80857c8556a2572b6e39cad57ebf41e57e44649c0767214f8c88873c4969b13fe82d240cf46596e3d6df8d91cb6f39faf40223e26709477add1c6782e8f35b67d60578797969815579acdfefb8db37d27564489ca4144a6cc822c5e24c262955cb54b6d513610909d5965899b406ae050479c6a06f75cc760b241c61d03fb74d4dfe9444c36dd36eff695efc69590f96d5b7cdbe757e66f62e7af6b9d3edfe9f69f74d13b400113f910a57955551e81dbfe00de85bdd5eaf67db964e0506fd76dbbab868813b4ad81af4ad1698300efa9665763b1dabe7b4c02341a0df31ed167015a5fc992265c96c816f10fd0c23fed304fdef664bfffbd10297ca5791e2506d3a530fabeb58bdf35ed7b45ae04e2849db511e772ceba5056e4fe03b5deb7c87df1df1a505867f0f3e20998c4f2c39779cce6ec9f979fbc274ceed97169835d230a03c5c0bd0bf50e4ba4cd0b9e9745b6044612474185cccf4f346a430c39abcaf4815961fba84629cfddd563fa8a8d77d7fba125f2fabc64343f2de80f874875563e43b38033fea3952f6eae118097242d11f932f7f2444247a5163ae7caffd3a8bb832540f8cef20282416a005568904ad8f0ebc15e81094c06c1d40898552e34c29b9b1e259029535c20dc2734954db71b5490a656ca83e5704680189b7721fc51fbb61f71d04f98aa8f3efbc53ae645808635545b71644cf24d53c9390309c1994085909f0565359914a5e13062c2d964c48d258fb5df1a8a94402ee191ca2f8803b5022bbd3b19c868052924a12ee2571021b1c6112670c52035202c5117940a27258be51f08cb0e8a4c20802f28e561c5562f40433245e9de1a8da58114c8ff9c58890f8d8094b85b122501ed16690a1aa442a55823a7b46a91b5c78de609a091031b40e38bbd33de03b96dde0f34052bce7256da460db319d436eef6d0243fe0a6aa46bb2052d8093002b57310b392a33b4230d2898d5e4032870f7fc404218cc8aa624c6db26fb4bf579834f71d264b7898a20ce329e9de8e6205fad20e5468c33fc6f743a812ce41427901942662114f8c349705279c487d78846c453f13e345d4765b83fc41842229dbe881b504f89881b7a721a2167426690b04a8a7868843c49f04e500fb5a851bcea6291c20c2695d11466623705d34cc34a468490b11d23f91a334d52c8a2339e45c6d660581ab1d4593c2a37a0e4c9496518ab9de56bbd9eaf8d823cadd4161298be0f527b11867465be03dbc5e773288320cc2459912a3e2717fc822964b82cbcd3a835cf307c13de438c20494ad58e288cc9c726650611918433483f85cfd58b1d1d07d5a7568a1c469f44a9624c61783cc3fb7a84c7b35c0372b9ba78373bef7a95e50c8ba31a994126548b801688a188ab871166615bcdddfdeb2e204d56bddf218d9aa2906f70a64e9cc9906f0e3469de645789143c934d51c461a6af3e0d09c2411e1d8af036c519a97abb21d7b3615f969a3890480e9b3cc3526630c44d19177a08374529a7b4c9bf5e92e115c5a1a4441e88055ce1c65d692f272ca2784549141ff82f0a11424a0dbcc521669b63aa9ce957d5be5eb090941f4427676adf1843a4db51dfc2083756e2d57dae5c9694bea98751de3b2a528a1d5dbdc113f5ddaa7c18494e2549a1ce9d16fc7fce25467a62c240bf98991e66e57c936983d4ffeda25e0b1b35fd46664011125269189664674e556e9a717d37547c9ed517552e7418ab2beb919b6b95334d45789bd684210a26a18a729633591ebaa21a1e499ee8bbe11b4d15d03772f5f5b205aa7a572f60ae332ca4bad56955c1c2eab1375fe5bdbe69c3e02923e54be9f0eafd8a2f5f644a5a1e603fd02a4a0d12ab7bc85f6856550f68810d668867c6c1a4d85db96318c6d0363f874a392dacb6d9f900ad1f6a9a7c16b7bb93bd038ed768f53ee2cd2dfe33d80f4ea42a1131a13e0916a29cc5a780754744b93cb5ff012ecdf8b6f800681b710ac3f53b2882187c479df1fc64224421aa417e4cabab50e030cfb0111044b29c9e32f4e6bd7312b4ab5165f03338a6ecfdf86ffeb5ad1a6bcae775f491cbd54f1b277f7a7b69010425047d70535c44f7b6b3f66703e67b1d1a2623d3f7eea3255b47703c35c3f16df7a670185c4c39f226f9d276e48d8d36ea19badbce4d3b7ef6bf5cb3e05944d3ab8be861ed3c4eaee657b3f97d3e24179bc995b5f1ddb9088b4112b427116e8be8864ee33041145d75e2c09b3f87eee8973f1b38abfbf469e9dd654b0fd1c958f626c3ce38b006f1d296b16fcfff5a7a169d8c2d6718a569b0186c42761f7dbde4d16478a9eccac9f83a0e1244f53a93cad0750a34befbcbf7e66bdf9b3aabfb125b7eae7bb8b8cc95bd49d4b0e1ce737fa87ce1e9304a7bb85ddb1ce1b1da731a2f932d9d7a5b1a78f31c8d6fa3d5c2fc3a195e6e6e8ac12870e7d2f73ae6905c46684c9ffcd940ef33b59ddaffc9f8ce0cd9fc171a0e7a0a37190e960f8fdb4a1fcb60d8296977701e784fdd0993bd9bb58e95b39a5d47d59a1e2e06c5d2eb307f7699df2fa66698508216531a1683c3b3ee62692a1b8fca5f7556e5931bb4af29f450fee0396be46de96a61f570a1e23eed84aeda6f1061d7127f1115afce32f04a3f570b53281b6a1df4fcd45f5c3faf162659d6f9903448ee756c8ef97b247ebb1c44376bb499269406ee74b7d7cedf3bdfb36e970bba418ba9b35aa8b828ac53f81e65c1dadaf8e3b9f01796b3b333573978dc9f7ba9e2fb851365cf732df1908ca4c24f92cbaf75acf63550cb6e6683d42797f9bdede4c81da501bb7bf417b1a9eb9154711e4d291edf47617b5a40afc3eafc91ed2fe88e0adf1d99cb83fc9991ef75d6e5f9078eae377b9efbbac6f957d59bdee8ee6a7275b7091603e12fe247bc18d0893ba54b7b1bab5e859e93874fa7ebf4beec538a473a9fcf3b7f3f5b9b654fd064e27636687899cfdcd1731db7c79189c6d7e992cdcdb27fcbdc7b57d6add6cff4f9734d2b5d19471a24552faa58ef7b7680c62a6ed7166af8f98fd4ef58f6545eca59f3c6cfbac79b7df6cfd6eda059379facd741c5dfa9b991fbc52e4e13b1b4e3384ca63172afea781ce4cda57990cc0be5c7b1f5d0ebe4fee25ae5be5a6f7e2de7815ebfafebd15daaeb7aae72f518f9eefc57e08e8ae5629a0676e779c8642f4c46b96f3f4637ebf9b99ee7ee8804eefc017ad653e0ce753fd4791897767631ac6a50d5c0aece35be96ebfed6ba756853dd273aeeb3cbeeb759f96ea87a206af89123cfaaeb73693b79d8bed798ebf1c179f67d35b42a1fcc637ebddafbb0cebfcd2e49f9ce8c657055cb49e95763c6b2b26615adbffb64eaab727d5bd8df09c0eeaf2ef87f7f61fd4fbff3bdfc0b0000ffff010000ffffce135bfb101f0000`))) +var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffec195d4fe33af6af5cf9757349d2124a2aed032dd09601eed20e4d9bd168e4c44ee2a9636763a7b48cf8ef2b3b1f4da10574efc39576f7a1c4e7c3c7e7db27e117202ce202f47f01f5bb2439e80333e12936052d565090d5ef51f7d444504233c72881d28c8934932230631ef234a35b73235027e6c0009334e3b9fc179409e80360807b9862d0070dfd928725e12bcc632ccbf594f36a75076598803e2b2835c04c428a413f8254e00a9a6228382b7947fc9a502c6aeef2e406bcc459b3fe8a857cc5ad50af76dc7154a8f37e814afd98c8a4084e429e1e30f40e1206fa322fb0f1577d36e2771cfd690166cc4f528eb49c39ce05d1feb14fec73f0f2f26280a834fbd73be6f4cd6c159b12a71985129b729b617122d38caa6d2a3bd413610909d5925819d4169f010479c6a06f3ba73d03a41c61d03fed587af94312cddeb13adddf6dfbf78ef5d5b6fbb6d5b7ba27d6e979cf75ec9efb0fcbee5b163000113f9072671575b1d5275ee235e89f9df67ab601268c83be7de6f61cf7ecdc00f794b015e8db3a8018f4bb5dfbfcdc008f0481be6d59960146bbe5e2c78f0c220bf42d034c91126a1960d6527d4057a525a7967ba6401eae04e89f1be0429254a932c321e8db3dcb3aed3996d535c0bd509833bbe73a9675f66280bbf7396b935f0c30fc34e7e2c78f82150223d0ff661996617dd7c14d70fe578b762ff6af2bf878cebcde56157a0bf35ea9ffe95aa91ac4377002be371da2acc2fd06111484a2df2697bfa544a47a53ab637c6bf43c89b912d4b4826f20d84a2c8001a25402e323076c04da674a61be0aa0c4429171ae88dc8c789e42258d7093f0421255305c1d92419998aa42d5021840e28ddc79f57bddc6be81a08888b2bfd64ea9926321cca8f27683889f49a66126216138372911b242e08d5ee5db4cf26661c252620984244bb4de158cda4424e00ec0214af6a03d22ea388eedb61094924c9270874952d88208933867909a9012280ee00312976dee0d81e784c5470966109077a8e22011a3279823f1ca8683643322981ed28b1121f1210b4b821911280f5073c8509522152945ce0e50e416149eb68076004402ed3da8e39cedc18edd69c1452029dec192b642b0712c771f32b315d90003e034c04a1bcc428eca20d44b130a66b7e1000a7c76ba87210ce6db3626c19b36f85395720bce70da0637a97212ce739e1f29d8a0882248b999e01cff89622690859ce2143253c83c84027f58ec4789077478cdd1a4400a33f13e6bb68a4b777fc8630a8974ab89b909752388b9a99ba3197226640e09abb0888766c8d314d788a66fc5adfc54b77e067398564233988bbad165b9662b011142c66a40f215667a49218b4f781e9b1b936169265247f120de8492a7478961a24e96afe9ba85b612f238514b4861f63e933a8b30a433f31db6da3f9fe33209c24c928854fe39bae127cc20c365e21de75af11cc337eedde71124cda83a118509f958a4cc2122927006e9a7f80b4642357f1d626aac568402c69fe452c998c1f0708477f9080f47b961286474fe6e74ded52a2f1816072932874ca812010648a048aa8719e66157b5d6dd8d169036a8ae7048e3362ae46b9c2b8b7319f2f51e252bda60944ac173d946c51ce67aba6961100e8a781f853719ce4955db2dbcee0dbbb4d48b3d8ce4b00d332c650e43dcc671a19b701b95714adbf0eb2d398e280e2525720f2d60845be3d00e4f584c7144499cece92fb62284949a788343ccd6874805d357d52e5fb09094ef79a760eadc0443a4cb510f5a849b917835b295dbd25237f530cbd1a25a4a51afab4b3a552f3ee5c34c0b2a490675ec34e2df059718e98e09037df732ddcccafe26b3d652ffa9bdde205b39fd066742111252511896a416a73237cbb91eff145ce4cd2cca85766335951e184eab98e9558c3759b330c59649a8bc9c174c9646572b33d4637b0dedf4933cd5c3e01b4ae5de3778f5267818adc2acde40cbc2503735d7a920a49af0d42eb16561f5d89dbcdb5996330c9e7252de5efb63f82bb8bcf114b6b474d7f9aa95ea38f6d93e7cae419566c0006bcc10cfcdbd96528fdf090c13d8b13ec79571bab5bb96f301b77ea8b6f359be7a787b873959a1e87d8e3713fd67783fb048a52c6242fd522c44d9b48f3136a51317f2d8f97b7c59ce37db0f183b6692c170f50e17410c1e218bada83afa21aace3281c322c7664010c90b7accbc3717d051a63a0795c0cff03125effbfff237b3aaff299b56f14726559f3d8e7e407b3180d207f4c1edf63c7ee8b82b7f3660bee7d030bdb67cef215eb2550cc7532b1cdf9ddd6e5d0617538ebc49b1ecb8f2b683d6ea198e36ce6d3779f62f6f58f02ce2e9d579fc75e53e4eaee657b3f9433124e7ebc995bdf64773116e0769d09dc4b82be25b3a4dc2145174e52481377f0e47d73ffdd9c08d1eb2a7a5779f2f3d442763d99b0c9d71600f926547267e67fec7d2b3e9646cbbc338cb82c5601db287f8cb058f27c30b25574ec637499022aaf759548623778bc6f77ff8de7ce57b53377a2879cbdf4d0f6f2f0a256f12b7648ce6853f54baf06c18673ddc6d645ee3b13a739a2cd30d9d7a1b1a78f3028defe268617d990c2fd6b7dbc175309a4bdf73ac21b988d1983ef9b3813e67da711bfd27e37b2b64f39f6838e829bec970b0fcfab8a9e8890c864eb91e0d4e03efe96cc264ef76a57de546b39bb8dad3c3dbc176e939cc9f5d140f8ba915a694a0c59486dbc1beadb52f2d25e351e9ab6c553a8d82ee0d851e2abe7aee0a791b1a2dec1ede2abf4f9d70a4ce1bc478648b3f88f297b30cbc52cf6861092543ed839e9ff98b9be768619165130f4983f441fbe690be07fc57c720be5da1f534a534184debb36a7def7dcfbe5b2ee81a2da66eb4507e51bceed6f7280b56f6da1fcf85bfb0dd5ace5cc5e07167f752f9f7921325cf1bd9e26b7a2d15ff24bdf8d2f86a97030dee7636c87c72513c74dc028daeb380dd3ffa8bc4d2f9482a3f5f4f291e3fc46177ba859ec39af891cd4f38badefaa36b6bb9173f2bf63d6755da3f7075be75e685af739c7f51b5e95ddf5f4daeeed7c16220fc45f28817033a194de9b2b34954ad42cf2dc2a7e379fa50d629c5d73a9ecfb5be9fcdcdb226683a19396b34bc2866a3ebe7c66f8fd7161adf644b36b7cafa2d63ef5dd9779a3ed3f6177aad68a51f699056b5a87cbdabd9011a2bbfddd8a8a5e7df92bf63d95371297bcd1b3d9b1a6fd7d9df9bb78376de7c325f07157caffa46e16f6b3f4dc4b29324613a4dd0e8aaf1c7ebb81d907f13a40e0da9ea5f3bbfcc3ca7f01737cbc07b3a541799dec3d49eb22e9a1e5ce9193decd584eab1cb47eb217eec509dd7f3328f57be772f968b9b048de83a60775f7057ee7acd22790aba37d6d2bb11fefc3ed3b534ff6c3dd4f790e66fdd41555e0ca7cfd0b39f82d1bcaccd4bee4e86a7554f7bddf31c3b58d4fd6ef033e838cf48f35cacc23d7b76b97ebb2875b89d1dd26bff6c953755ddb9d1ecc2adefb8265f347eb2cb97aac795bd5ac7f69ffa052b57efe3cda4b19b2740fddf1dfcffffc9feb7cd972fff010000ffff010000ffff46ff9a54721f0000`))) diff --git a/pkg/template/types.tmpl b/pkg/template/types.tmpl index ea26cc4..d05edf1 100644 --- a/pkg/template/types.tmpl +++ b/pkg/template/types.tmpl @@ -45,7 +45,9 @@ import ( {{- if .ContainsText }} Text string `xml:",chardata"` {{- end}} - innerXml string `xml:",innerxml"` + {{- if .ContainsInnerXml }} + InnerXml string `xml:",innerxml"` + {{- end}} } {{end}} diff --git a/pkg/xsd/types.go b/pkg/xsd/types.go index dc0e9b9..df1b575 100644 --- a/pkg/xsd/types.go +++ b/pkg/xsd/types.go @@ -92,6 +92,10 @@ func (ct *ComplexType) GoTypeName() string { return ct.GoName() } +func (ct *ComplexType) ContainsInnerXml() bool { + return ct.Mixed +} + func (ct *ComplexType) ContainsText() bool { return ct.content != nil && ct.content.ContainsText() } diff --git a/tests/xsd-examples/valid/complex.xsd.out b/tests/xsd-examples/valid/complex.xsd.out index b04798f..3b094e3 100644 --- a/tests/xsd-examples/valid/complex.xsd.out +++ b/tests/xsd-examples/valid/complex.xsd.out @@ -35,8 +35,6 @@ type MyElementType struct { Id21 *int `xml:"id_21"` Id22 *int `xml:"id_22"` - - innerXml string `xml:",innerxml"` } // XSD SimpleType declarations diff --git a/tests/xsd-examples/valid/restriction.xsd.out b/tests/xsd-examples/valid/restriction.xsd.out index b153495..1451847 100644 --- a/tests/xsd-examples/valid/restriction.xsd.out +++ b/tests/xsd-examples/valid/restriction.xsd.out @@ -21,8 +21,6 @@ type StateRefType struct { XMLName xml.Name StateRef StateIdpattern `xml:"state_ref,attr"` - - innerXml string `xml:",innerxml"` } type MySimpleBaseType struct { @@ -32,8 +30,7 @@ type MySimpleBaseType struct { Operation OperationEnumeration `xml:"operation,attr,omitempty"` - Text string `xml:",chardata"` - innerXml string `xml:",innerxml"` + Text string `xml:",chardata"` } type MyElementType struct { @@ -42,8 +39,6 @@ type MyElementType struct { Datatype DatatypeEnumeration `xml:"datatype,attr,omitempty"` Operation OperationEnumeration `xml:"operation,attr,omitempty"` - - innerXml string `xml:",innerxml"` } // XSD SimpleType declarations diff --git a/tests/xsd-examples/valid/simple-8859-1.xsd.out b/tests/xsd-examples/valid/simple-8859-1.xsd.out index 3981c25..f78fa15 100644 --- a/tests/xsd-examples/valid/simple-8859-1.xsd.out +++ b/tests/xsd-examples/valid/simple-8859-1.xsd.out @@ -19,8 +19,6 @@ type MyElementType struct { XMLName xml.Name Id int64 `xml:",any"` - - innerXml string `xml:",innerxml"` } // XSD SimpleType declarations diff --git a/tests/xsd-examples/valid/simple.xsd.out b/tests/xsd-examples/valid/simple.xsd.out index 3981c25..f78fa15 100644 --- a/tests/xsd-examples/valid/simple.xsd.out +++ b/tests/xsd-examples/valid/simple.xsd.out @@ -19,8 +19,6 @@ type MyElementType struct { XMLName xml.Name Id int64 `xml:",any"` - - innerXml string `xml:",innerxml"` } // XSD SimpleType declarations diff --git a/tests/xsd-examples/valid/xmldsig-core-schema.xsd.out b/tests/xsd-examples/valid/xmldsig-core-schema.xsd.out index 6e71fd0..9730362 100644 --- a/tests/xsd-examples/valid/xmldsig-core-schema.xsd.out +++ b/tests/xsd-examples/valid/xmldsig-core-schema.xsd.out @@ -264,8 +264,6 @@ type SignatureType struct { KeyInfo *KeyInfoType `xml:"KeyInfo"` Object []ObjectType `xml:"Object"` - - innerXml string `xml:",innerxml"` } type SignatureValueType struct { @@ -273,8 +271,7 @@ type SignatureValueType struct { Id string `xml:"Id,attr,omitempty"` - Text string `xml:",chardata"` - innerXml string `xml:",innerxml"` + Text string `xml:",chardata"` } type SignedInfoType struct { @@ -287,8 +284,6 @@ type SignedInfoType struct { SignatureMethod SignatureMethodType `xml:"SignatureMethod"` Reference []ReferenceType `xml:"Reference"` - - innerXml string `xml:",innerxml"` } type CanonicalizationMethodType struct { @@ -296,7 +291,7 @@ type CanonicalizationMethodType struct { Algorithm string `xml:"Algorithm,attr"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type SignatureMethodType struct { @@ -306,7 +301,7 @@ type SignatureMethodType struct { HmacoutputLength *HmacoutputLengthType `xml:",any"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type ReferenceType struct { @@ -323,16 +318,12 @@ type ReferenceType struct { DigestMethod DigestMethodType `xml:"DigestMethod"` DigestValue DigestValueType `xml:"DigestValue"` - - innerXml string `xml:",innerxml"` } type TransformsType struct { XMLName xml.Name Transform []TransformType `xml:",any"` - - innerXml string `xml:",innerxml"` } type TransformType struct { @@ -342,7 +333,7 @@ type TransformType struct { Xpath []string `xml:"XPath"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type DigestMethodType struct { @@ -350,7 +341,7 @@ type DigestMethodType struct { Algorithm string `xml:"Algorithm,attr"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type KeyInfoType struct { @@ -372,7 +363,7 @@ type KeyInfoType struct { MgmtData []string `xml:"MgmtData"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type KeyValueType struct { @@ -382,7 +373,7 @@ type KeyValueType struct { RsakeyValue *RsakeyValueType `xml:"RSAKeyValue"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type RetrievalMethodType struct { @@ -393,8 +384,6 @@ type RetrievalMethodType struct { Type string `xml:"Type,attr,omitempty"` Transforms *TransformsType `xml:",any"` - - innerXml string `xml:",innerxml"` } type X509DataType struct { @@ -409,8 +398,6 @@ type X509DataType struct { X509Certificate string `xml:"X509Certificate"` X509Crl string `xml:"X509CRL"` - - innerXml string `xml:",innerxml"` } type X509IssuerSerialType struct { @@ -419,8 +406,6 @@ type X509IssuerSerialType struct { X509IssuerName string `xml:"X509IssuerName"` X509SerialNumber int64 `xml:"X509SerialNumber"` - - innerXml string `xml:",innerxml"` } type PgpdataType struct { @@ -429,16 +414,12 @@ type PgpdataType struct { PgpkeyId string `xml:"PGPKeyID"` PgpkeyPacket string `xml:"PGPKeyPacket"` - - innerXml string `xml:",innerxml"` } type SpkidataType struct { XMLName xml.Name Spkisexp string `xml:",any"` - - innerXml string `xml:",innerxml"` } type ObjectType struct { @@ -450,7 +431,7 @@ type ObjectType struct { Encoding string `xml:"Encoding,attr,omitempty"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type ManifestType struct { @@ -459,8 +440,6 @@ type ManifestType struct { Id string `xml:"Id,attr,omitempty"` Reference []ReferenceType `xml:",any"` - - innerXml string `xml:",innerxml"` } type SignaturePropertiesType struct { @@ -469,8 +448,6 @@ type SignaturePropertiesType struct { Id string `xml:"Id,attr,omitempty"` SignatureProperty []SignaturePropertyType `xml:",any"` - - innerXml string `xml:",innerxml"` } type SignaturePropertyType struct { @@ -480,7 +457,7 @@ type SignaturePropertyType struct { Id string `xml:"Id,attr,omitempty"` - innerXml string `xml:",innerxml"` + InnerXml string `xml:",innerxml"` } type DsakeyValueType struct { @@ -491,8 +468,6 @@ type DsakeyValueType struct { Y CryptoBinary `xml:"Y"` J *CryptoBinary `xml:"J"` - - innerXml string `xml:",innerxml"` } type RsakeyValueType struct { @@ -501,8 +476,6 @@ type RsakeyValueType struct { Modulus CryptoBinary `xml:"Modulus"` Exponent CryptoBinary `xml:"Exponent"` - - innerXml string `xml:",innerxml"` } // XSD SimpleType declarations From e9a8e6e5b8ff3fe1bf8cae75c902d361230657c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Luka=C5=A1=C3=ADk?= Date: Mon, 20 Nov 2023 11:21:07 +0100 Subject: [PATCH 4/5] avoid ioutil.ReadFile, it's been deprecated for a while --- tests/smoke_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/smoke_test.go b/tests/smoke_test.go index a3816c0..7cf3a8e 100644 --- a/tests/smoke_test.go +++ b/tests/smoke_test.go @@ -2,8 +2,8 @@ package tests import ( "fmt" - "io/ioutil" "os" + "io/ioutil" "os/exec" "path/filepath" "testing" @@ -21,7 +21,7 @@ func TestSanity(t *testing.T) { for _, xsdPath := range xsdFiles { actual := assertConvertsFine(t, xsdPath) - expected, err := ioutil.ReadFile(xsdPath + ".out") + expected, err := os.ReadFile(xsdPath + ".out") require.NoError(t, err) assert.Equal(t, string(expected), string(actual)) } @@ -41,7 +41,7 @@ func assertConvertsFine(t *testing.T, xsdPath string) []byte { generatedFilePath, err := locateGeneratedFile(outputDir) require.NoError(t, err) - result, err := ioutil.ReadFile(generatedFilePath) + result, err := os.ReadFile(generatedFilePath) require.NoError(t, err) out, err := exec.Command("go", "build", generatedFilePath).Output() From a72754131ab6a0420c6cabcaeb17727e74cf130a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Luka=C5=A1=C3=ADk?= Date: Mon, 20 Nov 2023 11:23:18 +0100 Subject: [PATCH 5/5] avoid ioutil.MkdirTemp, it's been deprecated for a while --- tests/smoke_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/smoke_test.go b/tests/smoke_test.go index 7cf3a8e..67270b8 100644 --- a/tests/smoke_test.go +++ b/tests/smoke_test.go @@ -3,7 +3,6 @@ package tests import ( "fmt" "os" - "io/ioutil" "os/exec" "path/filepath" "testing" @@ -28,7 +27,7 @@ func TestSanity(t *testing.T) { } func assertConvertsFine(t *testing.T, xsdPath string) []byte { - dname, err := ioutil.TempDir("", "xsd2go_tests_") + dname, err := os.MkdirTemp("", "xsd2go_tests_") assert.Nil(t, err) defer os.RemoveAll(dname)