aas-core3 1.0.0
Manipulate, verify and de/serialize asset administration shells in C++.
Loading...
Searching...
No Matches
xmlization.hpp
Go to the documentation of this file.
1#ifndef AAS_CORE_AAS_3_0_XMLIZATION_GUARD_
2#define AAS_CORE_AAS_3_0_XMLIZATION_GUARD_
3
4// This code has been automatically generated by aas-core-codegen.
5// Do NOT edit or append.
6
10
11#pragma warning(push, 0)
12#include <deque>
13#include <memory>
14#include <string>
15#pragma warning(pop)
16
17namespace aas_core {
18namespace aas_3_0 {
19
24namespace xmlization {
25
29extern const std::string kNamespace;
30
34class ISegment {
35 public:
42 virtual std::wstring ToWstring() const = 0;
43
44 virtual std::unique_ptr<ISegment> Clone() const = 0;
45
46 virtual ~ISegment() = default;
47}; // class ISegment
48
52struct ElementSegment : public ISegment {
63 std::wstring name;
64
66 std::wstring a_name
67 );
68
69 std::wstring ToWstring() const override;
70
71 std::unique_ptr<ISegment> Clone() const override;
72
73 ~ElementSegment() override = default;
74}; // struct ElementSegment
75
79struct IndexSegment : public ISegment {
83 size_t index;
84
85 explicit IndexSegment(
86 size_t an_index
87 );
88
89 std::wstring ToWstring() const override;
90
91 std::unique_ptr<ISegment> Clone() const override;
92
93 ~IndexSegment() override = default;
94}; // struct IndexSegment
95
99struct Path {
100 std::deque<std::unique_ptr<ISegment> > segments;
101
103 Path(const Path& other);
104 Path(Path&& other);
105 Path& operator=(const Path& other);
106 Path& operator=(Path&& other);
107
108 std::wstring ToWstring() const;
109}; // struct Path
110
111// region De-serialization
112
120 std::wstring cause;
121
126
127 explicit DeserializationError(std::wstring a_cause);
128 DeserializationError(std::wstring a_cause, Path a_path);
129}; // struct DeserializationError
130
141
146 size_t buffer_size = 1024;
147}; // struct ReadingOptions
148
157common::expected<
158 std::shared_ptr<types::IClass>,
161 std::istream& is,
162 const ReadingOptions& options = {}
163);
164
174common::expected<
175 std::shared_ptr<types::IHasSemantics>,
176 DeserializationError
178 std::istream& is,
179 const ReadingOptions& options = {}
180);
181
191common::expected<
192 std::shared_ptr<types::IExtension>,
193 DeserializationError
195 std::istream& is,
196 const ReadingOptions& options = {}
197);
198
208common::expected<
209 std::shared_ptr<types::IHasExtensions>,
210 DeserializationError
212 std::istream& is,
213 const ReadingOptions& options = {}
214);
215
225common::expected<
226 std::shared_ptr<types::IReferable>,
227 DeserializationError
229 std::istream& is,
230 const ReadingOptions& options = {}
231);
232
242common::expected<
243 std::shared_ptr<types::IIdentifiable>,
244 DeserializationError
246 std::istream& is,
247 const ReadingOptions& options = {}
248);
249
259common::expected<
260 std::shared_ptr<types::IHasKind>,
261 DeserializationError
263 std::istream& is,
264 const ReadingOptions& options = {}
265);
266
276common::expected<
277 std::shared_ptr<types::IHasDataSpecification>,
278 DeserializationError
280 std::istream& is,
281 const ReadingOptions& options = {}
282);
283
293common::expected<
294 std::shared_ptr<types::IAdministrativeInformation>,
295 DeserializationError
297 std::istream& is,
298 const ReadingOptions& options = {}
299);
300
310common::expected<
311 std::shared_ptr<types::IQualifiable>,
312 DeserializationError
314 std::istream& is,
315 const ReadingOptions& options = {}
316);
317
327common::expected<
328 std::shared_ptr<types::IQualifier>,
329 DeserializationError
331 std::istream& is,
332 const ReadingOptions& options = {}
333);
334
344common::expected<
345 std::shared_ptr<types::IAssetAdministrationShell>,
346 DeserializationError
348 std::istream& is,
349 const ReadingOptions& options = {}
350);
351
361common::expected<
362 std::shared_ptr<types::IAssetInformation>,
363 DeserializationError
365 std::istream& is,
366 const ReadingOptions& options = {}
367);
368
378common::expected<
379 std::shared_ptr<types::IResource>,
380 DeserializationError
382 std::istream& is,
383 const ReadingOptions& options = {}
384);
385
395common::expected<
396 std::shared_ptr<types::ISpecificAssetId>,
397 DeserializationError
399 std::istream& is,
400 const ReadingOptions& options = {}
401);
402
412common::expected<
413 std::shared_ptr<types::ISubmodel>,
414 DeserializationError
416 std::istream& is,
417 const ReadingOptions& options = {}
418);
419
429common::expected<
430 std::shared_ptr<types::ISubmodelElement>,
431 DeserializationError
433 std::istream& is,
434 const ReadingOptions& options = {}
435);
436
446common::expected<
447 std::shared_ptr<types::IRelationshipElement>,
448 DeserializationError
450 std::istream& is,
451 const ReadingOptions& options = {}
452);
453
463common::expected<
464 std::shared_ptr<types::ISubmodelElementList>,
465 DeserializationError
467 std::istream& is,
468 const ReadingOptions& options = {}
469);
470
480common::expected<
481 std::shared_ptr<types::ISubmodelElementCollection>,
482 DeserializationError
484 std::istream& is,
485 const ReadingOptions& options = {}
486);
487
497common::expected<
498 std::shared_ptr<types::IDataElement>,
499 DeserializationError
501 std::istream& is,
502 const ReadingOptions& options = {}
503);
504
514common::expected<
515 std::shared_ptr<types::IProperty>,
516 DeserializationError
518 std::istream& is,
519 const ReadingOptions& options = {}
520);
521
531common::expected<
532 std::shared_ptr<types::IMultiLanguageProperty>,
533 DeserializationError
535 std::istream& is,
536 const ReadingOptions& options = {}
537);
538
548common::expected<
549 std::shared_ptr<types::IRange>,
550 DeserializationError
552 std::istream& is,
553 const ReadingOptions& options = {}
554);
555
565common::expected<
566 std::shared_ptr<types::IReferenceElement>,
567 DeserializationError
569 std::istream& is,
570 const ReadingOptions& options = {}
571);
572
582common::expected<
583 std::shared_ptr<types::IBlob>,
584 DeserializationError
586 std::istream& is,
587 const ReadingOptions& options = {}
588);
589
599common::expected<
600 std::shared_ptr<types::IFile>,
601 DeserializationError
603 std::istream& is,
604 const ReadingOptions& options = {}
605);
606
616common::expected<
617 std::shared_ptr<types::IAnnotatedRelationshipElement>,
618 DeserializationError
620 std::istream& is,
621 const ReadingOptions& options = {}
622);
623
633common::expected<
634 std::shared_ptr<types::IEntity>,
635 DeserializationError
637 std::istream& is,
638 const ReadingOptions& options = {}
639);
640
650common::expected<
651 std::shared_ptr<types::IEventPayload>,
652 DeserializationError
654 std::istream& is,
655 const ReadingOptions& options = {}
656);
657
667common::expected<
668 std::shared_ptr<types::IEventElement>,
669 DeserializationError
671 std::istream& is,
672 const ReadingOptions& options = {}
673);
674
684common::expected<
685 std::shared_ptr<types::IBasicEventElement>,
686 DeserializationError
688 std::istream& is,
689 const ReadingOptions& options = {}
690);
691
701common::expected<
702 std::shared_ptr<types::IOperation>,
703 DeserializationError
705 std::istream& is,
706 const ReadingOptions& options = {}
707);
708
718common::expected<
719 std::shared_ptr<types::IOperationVariable>,
720 DeserializationError
722 std::istream& is,
723 const ReadingOptions& options = {}
724);
725
735common::expected<
736 std::shared_ptr<types::ICapability>,
737 DeserializationError
739 std::istream& is,
740 const ReadingOptions& options = {}
741);
742
752common::expected<
753 std::shared_ptr<types::IConceptDescription>,
754 DeserializationError
756 std::istream& is,
757 const ReadingOptions& options = {}
758);
759
769common::expected<
770 std::shared_ptr<types::IReference>,
771 DeserializationError
773 std::istream& is,
774 const ReadingOptions& options = {}
775);
776
786common::expected<
787 std::shared_ptr<types::IKey>,
788 DeserializationError
790 std::istream& is,
791 const ReadingOptions& options = {}
792);
793
803common::expected<
804 std::shared_ptr<types::IAbstractLangString>,
805 DeserializationError
807 std::istream& is,
808 const ReadingOptions& options = {}
809);
810
820common::expected<
821 std::shared_ptr<types::ILangStringNameType>,
822 DeserializationError
824 std::istream& is,
825 const ReadingOptions& options = {}
826);
827
837common::expected<
838 std::shared_ptr<types::ILangStringTextType>,
839 DeserializationError
841 std::istream& is,
842 const ReadingOptions& options = {}
843);
844
854common::expected<
855 std::shared_ptr<types::IEnvironment>,
856 DeserializationError
858 std::istream& is,
859 const ReadingOptions& options = {}
860);
861
871common::expected<
872 std::shared_ptr<types::IDataSpecificationContent>,
873 DeserializationError
875 std::istream& is,
876 const ReadingOptions& options = {}
877);
878
888common::expected<
889 std::shared_ptr<types::IEmbeddedDataSpecification>,
890 DeserializationError
892 std::istream& is,
893 const ReadingOptions& options = {}
894);
895
905common::expected<
906 std::shared_ptr<types::ILevelType>,
907 DeserializationError
909 std::istream& is,
910 const ReadingOptions& options = {}
911);
912
922common::expected<
923 std::shared_ptr<types::IValueReferencePair>,
924 DeserializationError
926 std::istream& is,
927 const ReadingOptions& options = {}
928);
929
939common::expected<
940 std::shared_ptr<types::IValueList>,
941 DeserializationError
943 std::istream& is,
944 const ReadingOptions& options = {}
945);
946
956common::expected<
957 std::shared_ptr<types::ILangStringPreferredNameTypeIec61360>,
958 DeserializationError
960 std::istream& is,
961 const ReadingOptions& options = {}
962);
963
973common::expected<
974 std::shared_ptr<types::ILangStringShortNameTypeIec61360>,
975 DeserializationError
977 std::istream& is,
978 const ReadingOptions& options = {}
979);
980
990common::expected<
991 std::shared_ptr<types::ILangStringDefinitionTypeIec61360>,
992 DeserializationError
994 std::istream& is,
995 const ReadingOptions& options = {}
996);
997
1007common::expected<
1008 std::shared_ptr<types::IDataSpecificationIec61360>,
1009 DeserializationError
1011 std::istream& is,
1012 const ReadingOptions& options = {}
1013);
1014
1015// endregion Deserialization
1016
1017// region Serialization
1018
1022class SerializationException : public std::exception {
1023 public:
1025 std::wstring cause
1026 );
1027
1029 std::wstring cause,
1031 );
1032
1033 const char* what() const noexcept override;
1034
1035 const std::wstring& cause() const noexcept;
1036 const iteration::Path& path() const noexcept;
1037
1038 ~SerializationException() noexcept override = default;
1039
1040 private:
1041 const std::wstring cause_;
1042 const iteration::Path path_;
1043 const std::string msg_;
1044}; // class SerializationException
1045
1067
1072 bool write_namespace = true;
1073
1077 std::string prefix = "";
1078}; // struct WritingOptions
1079
1090 const types::IClass& that,
1091 const WritingOptions& options,
1092 std::ostream& os
1093);
1094
1095// endregion Serialization
1096
1097} // namespace xmlization
1098
1099
1100} // namespace aas_3_0
1101} // namespace aas_core
1102
1103// This code has been automatically generated by aas-core-codegen.
1104// Do NOT edit or append.
1105
1106#endif // AAS_CORE_AAS_3_0_XMLIZATION_GUARD_
Definition types.hpp:456
Definition xmlization.hpp:34
virtual std::wstring ToWstring() const =0
Convert the segment to a string in an XPath.
virtual std::unique_ptr< ISegment > Clone() const =0
const std::wstring & cause() const noexcept
const iteration::Path & path() const noexcept
const char * what() const noexcept override
SerializationException(std::wstring cause, iteration::Path path)
Definition iteration.hpp:23
Definition xmlization.hpp:24
common::expected< std::shared_ptr< types::IHasSemantics >, DeserializationError > HasSemanticsFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IAssetAdministrationShell >, DeserializationError > AssetAdministrationShellFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IValueReferencePair >, DeserializationError > ValueReferencePairFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ISubmodel >, DeserializationError > SubmodelFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ILangStringPreferredNameTypeIec61360 >, DeserializationError > LangStringPreferredNameTypeIec61360From(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IQualifiable >, DeserializationError > QualifiableFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IClass >, DeserializationError > From(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IReferable >, DeserializationError > ReferableFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IDataSpecificationContent >, DeserializationError > DataSpecificationContentFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IFile >, DeserializationError > FileFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IEventElement >, DeserializationError > EventElementFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IBasicEventElement >, DeserializationError > BasicEventElementFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IConceptDescription >, DeserializationError > ConceptDescriptionFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IHasExtensions >, DeserializationError > HasExtensionsFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IEntity >, DeserializationError > EntityFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IAnnotatedRelationshipElement >, DeserializationError > AnnotatedRelationshipElementFrom(std::istream &is, const ReadingOptions &options={})
const std::string kNamespace
common::expected< std::shared_ptr< types::IHasKind >, DeserializationError > HasKindFrom(std::istream &is, const ReadingOptions &options={})
void Serialize(const types::IClass &that, const WritingOptions &options, std::ostream &os)
Serialize that instance to XML.
common::expected< std::shared_ptr< types::IValueList >, DeserializationError > ValueListFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IOperationVariable >, DeserializationError > OperationVariableFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ILangStringDefinitionTypeIec61360 >, DeserializationError > LangStringDefinitionTypeIec61360From(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ISubmodelElementCollection >, DeserializationError > SubmodelElementCollectionFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IMultiLanguageProperty >, DeserializationError > MultiLanguagePropertyFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IAdministrativeInformation >, DeserializationError > AdministrativeInformationFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IIdentifiable >, DeserializationError > IdentifiableFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IDataElement >, DeserializationError > DataElementFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IEmbeddedDataSpecification >, DeserializationError > EmbeddedDataSpecificationFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ISubmodelElementList >, DeserializationError > SubmodelElementListFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IRange >, DeserializationError > RangeFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IEventPayload >, DeserializationError > EventPayloadFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IRelationshipElement >, DeserializationError > RelationshipElementFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ILevelType >, DeserializationError > LevelTypeFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IDataSpecificationIec61360 >, DeserializationError > DataSpecificationIec61360From(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IKey >, DeserializationError > KeyFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ILangStringTextType >, DeserializationError > LangStringTextTypeFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IReferenceElement >, DeserializationError > ReferenceElementFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IHasDataSpecification >, DeserializationError > HasDataSpecificationFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ILangStringNameType >, DeserializationError > LangStringNameTypeFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IResource >, DeserializationError > ResourceFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IEnvironment >, DeserializationError > EnvironmentFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IQualifier >, DeserializationError > QualifierFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ICapability >, DeserializationError > CapabilityFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IProperty >, DeserializationError > PropertyFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IAssetInformation >, DeserializationError > AssetInformationFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IOperation >, DeserializationError > OperationFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ILangStringShortNameTypeIec61360 >, DeserializationError > LangStringShortNameTypeIec61360From(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IReference >, DeserializationError > ReferenceFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IExtension >, DeserializationError > ExtensionFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ISpecificAssetId >, DeserializationError > SpecificAssetIdFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IBlob >, DeserializationError > BlobFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::ISubmodelElement >, DeserializationError > SubmodelElementFrom(std::istream &is, const ReadingOptions &options={})
common::expected< std::shared_ptr< types::IAbstractLangString >, DeserializationError > AbstractLangStringFrom(std::istream &is, const ReadingOptions &options={})
Definition common.hpp:47
Definition common.hpp:46
Represent a path to some value.
Definition iteration.hpp:181
Path path
Definition xmlization.hpp:125
DeserializationError(std::wstring a_cause, Path a_path)
std::wstring cause
Definition xmlization.hpp:120
std::wstring name
Name of the XML element, without the namespace.
Definition xmlization.hpp:63
std::wstring ToWstring() const override
Convert the segment to a string in an XPath.
std::unique_ptr< ISegment > Clone() const override
std::unique_ptr< ISegment > Clone() const override
size_t index
Definition xmlization.hpp:83
std::wstring ToWstring() const override
Convert the segment to a string in an XPath.
Definition xmlization.hpp:99
std::deque< std::unique_ptr< ISegment > > segments
Definition xmlization.hpp:100
Path & operator=(const Path &other)
bool additional_attributes
Definition xmlization.hpp:140
size_t buffer_size
Definition xmlization.hpp:146
Customize how instances should be serialized to XML.
Definition xmlization.hpp:1062
bool write_declaration
Definition xmlization.hpp:1066
bool write_namespace
Definition xmlization.hpp:1072
std::string prefix
Definition xmlization.hpp:1077