├── Makefile ├── README ├── SCL.cxx ├── SCL.hxx ├── SCL_BaseSimpleTypes.cxx ├── SCL_BaseSimpleTypes.hxx ├── SCL_BaseTypes.cxx ├── SCL_BaseTypes.hxx ├── SCL_Bind ├── SCL_Bind.pro ├── SCL_Bind.pro.user ├── SCL_Bind.pro.user.2.1pre1 ├── SCL_Communication.cxx ├── SCL_Communication.hxx ├── SCL_DataTypeTemplates.cxx ├── SCL_DataTypeTemplates.hxx ├── SCL_Enums.cxx ├── SCL_Enums.hxx ├── SCL_IED.cxx ├── SCL_IED.hxx ├── SCL_Substation.cxx ├── SCL_Substation.hxx ├── main.cpp ├── scl_files ├── AA1.scd ├── RTDS_OK.scd └── teste.scd └── xsd ├── SCL.xsd ├── SCL_BaseSimpleTypes.xsd ├── SCL_BaseTypes.xsd ├── SCL_Communication.xsd ├── SCL_DataTypeTemplates.xsd ├── SCL_Enums.xsd ├── SCL_IED.xsd └── SCL_Substation.xsd /Makefile: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # Makefile for building: SCL_Bind 3 | # Generated by qmake (1.07a) (Qt 3.3.8b) on: Tue Jul 19 22:46:16 2011 4 | # Project: SCL_Bind.pro 5 | # Template: app 6 | # Command: $(QMAKE) -o Makefile SCL_Bind.pro 7 | ############################################################################# 8 | 9 | ####### Compiler, tools and options 10 | 11 | CC = gcc 12 | CXX = g++ 13 | LEX = flex 14 | YACC = yacc 15 | CFLAGS = -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT 16 | CXXFLAGS = -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT 17 | LEXFLAGS = 18 | YACCFLAGS= -d 19 | INCPATH = -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/xsd -I/usr/include/qt3 20 | LINK = g++ 21 | LFLAGS = 22 | LIBS = $(SUBLIBS) -L/usr/share/qt3/lib -L/usr/X11R6/lib -L/usr/lib -lxerces-c -lqt-mt -lXext -lX11 -lm -lpthread 23 | AR = ar cqs 24 | RANLIB = 25 | MOC = /usr/share/qt3/bin/moc 26 | UIC = /usr/share/qt3/bin/uic 27 | QMAKE = qmake 28 | TAR = tar -cf 29 | GZIP = gzip -9f 30 | COPY = cp -f 31 | COPY_FILE= $(COPY) 32 | COPY_DIR = $(COPY) -r 33 | INSTALL_FILE= $(COPY_FILE) 34 | INSTALL_DIR = $(COPY_DIR) 35 | DEL_FILE = rm -f 36 | SYMLINK = ln -sf 37 | DEL_DIR = rmdir 38 | MOVE = mv -f 39 | CHK_DIR_EXISTS= test -d 40 | MKDIR = mkdir -p 41 | 42 | ####### Output directory 43 | 44 | OBJECTS_DIR = ./ 45 | 46 | ####### Files 47 | 48 | HEADERS = SCL_Substation.hxx \ 49 | SCL_IED.hxx \ 50 | SCL_Enums.hxx \ 51 | SCL_DataTypeTemplates.hxx \ 52 | SCL_Communication.hxx \ 53 | SCL_BaseTypes.hxx \ 54 | SCL_BaseSimpleTypes.hxx \ 55 | SCL.hxx 56 | SOURCES = main.cpp \ 57 | SCL_Substation.cxx \ 58 | SCL_IED.cxx \ 59 | SCL_Enums.cxx \ 60 | SCL_DataTypeTemplates.cxx \ 61 | SCL_Communication.cxx \ 62 | SCL_BaseTypes.cxx \ 63 | SCL_BaseSimpleTypes.cxx \ 64 | SCL.cxx 65 | OBJECTS = main.o \ 66 | SCL_Substation.o \ 67 | SCL_IED.o \ 68 | SCL_Enums.o \ 69 | SCL_DataTypeTemplates.o \ 70 | SCL_Communication.o \ 71 | SCL_BaseTypes.o \ 72 | SCL_BaseSimpleTypes.o \ 73 | SCL.o 74 | FORMS = 75 | UICDECLS = 76 | UICIMPLS = 77 | SRCMOC = 78 | OBJMOC = 79 | DIST = SCL_Bind.pro 80 | QMAKE_TARGET = SCL_Bind 81 | DESTDIR = 82 | TARGET = SCL_Bind 83 | 84 | first: all 85 | ####### Implicit rules 86 | 87 | .SUFFIXES: .c .o .cpp .cc .cxx .C 88 | 89 | .cpp.o: 90 | $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< 91 | 92 | .cc.o: 93 | $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< 94 | 95 | .cxx.o: 96 | $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< 97 | 98 | .C.o: 99 | $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< 100 | 101 | .c.o: 102 | $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< 103 | 104 | ####### Build rules 105 | 106 | all: Makefile $(TARGET) 107 | 108 | $(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) 109 | $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS) 110 | 111 | mocables: $(SRCMOC) 112 | uicables: $(UICDECLS) $(UICIMPLS) 113 | 114 | $(MOC): 115 | ( cd $(QTDIR)/src/moc && $(MAKE) ) 116 | 117 | Makefile: SCL_Bind.pro /usr/share/qt3/mkspecs/default/qmake.conf /usr/share/qt3/lib/libqt-mt.prl 118 | $(QMAKE) -o Makefile SCL_Bind.pro 119 | qmake: 120 | @$(QMAKE) -o Makefile SCL_Bind.pro 121 | 122 | dist: 123 | @mkdir -p .tmp/SCL_Bind && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/SCL_Bind/ && ( cd `dirname .tmp/SCL_Bind` && $(TAR) SCL_Bind.tar SCL_Bind && $(GZIP) SCL_Bind.tar ) && $(MOVE) `dirname .tmp/SCL_Bind`/SCL_Bind.tar.gz . && $(DEL_FILE) -r .tmp/SCL_Bind 124 | 125 | mocclean: 126 | 127 | uiclean: 128 | 129 | yaccclean: 130 | lexclean: 131 | clean: 132 | -$(DEL_FILE) $(OBJECTS) 133 | -$(DEL_FILE) *~ core *.core 134 | 135 | 136 | ####### Sub-libraries 137 | 138 | distclean: clean 139 | -$(DEL_FILE) $(TARGET) $(TARGET) 140 | 141 | 142 | FORCE: 143 | 144 | ####### Compile 145 | 146 | main.o: main.cpp SCL.hxx \ 147 | SCL_IED.hxx \ 148 | SCL_Substation.hxx \ 149 | SCL_Communication.hxx \ 150 | SCL_DataTypeTemplates.hxx \ 151 | SCL_BaseTypes.hxx \ 152 | SCL_Enums.hxx \ 153 | SCL_BaseSimpleTypes.hxx 154 | 155 | SCL_Substation.o: SCL_Substation.cxx SCL_Substation.hxx \ 156 | SCL_BaseTypes.hxx \ 157 | SCL_Enums.hxx \ 158 | SCL_BaseSimpleTypes.hxx 159 | 160 | SCL_IED.o: SCL_IED.cxx SCL_IED.hxx \ 161 | SCL_BaseTypes.hxx \ 162 | SCL_Enums.hxx \ 163 | SCL_BaseSimpleTypes.hxx 164 | 165 | SCL_Enums.o: SCL_Enums.cxx SCL_Enums.hxx \ 166 | SCL_BaseSimpleTypes.hxx 167 | 168 | SCL_DataTypeTemplates.o: SCL_DataTypeTemplates.cxx SCL_DataTypeTemplates.hxx \ 169 | SCL_BaseTypes.hxx \ 170 | SCL_Enums.hxx \ 171 | SCL_BaseSimpleTypes.hxx 172 | 173 | SCL_Communication.o: SCL_Communication.cxx SCL_Communication.hxx \ 174 | SCL_BaseTypes.hxx \ 175 | SCL_Enums.hxx \ 176 | SCL_BaseSimpleTypes.hxx 177 | 178 | SCL_BaseTypes.o: SCL_BaseTypes.cxx SCL_BaseTypes.hxx \ 179 | SCL_Enums.hxx \ 180 | SCL_BaseSimpleTypes.hxx 181 | 182 | SCL_BaseSimpleTypes.o: SCL_BaseSimpleTypes.cxx SCL_BaseSimpleTypes.hxx 183 | 184 | SCL.o: SCL.cxx SCL.hxx \ 185 | SCL_Substation.hxx \ 186 | SCL_IED.hxx \ 187 | SCL_Communication.hxx \ 188 | SCL_DataTypeTemplates.hxx \ 189 | SCL_BaseTypes.hxx \ 190 | SCL_Enums.hxx \ 191 | SCL_BaseSimpleTypes.hxx 192 | 193 | ####### Install 194 | 195 | install: 196 | 197 | uninstall: 198 | 199 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | ================= 2 | SCL_Bind Project 3 | ================= 4 | 5 | Instructions to compile project: 6 | -------------------------------- 7 | 8 | cd SCL_Bind/ 9 | qmake 10 | make 11 | 12 | Alternatively you can load the project (SCL_Bind.pro) with QtCreator IDE. 13 | 14 | Dependencies: 15 | ------------- 16 | XSD: 17 | sudo apt-get install xsd 18 | 19 | 20 | Instructions to run SCL_Bind: 21 | ----------------------------- 22 | To parse one file: 23 | ./SCL_Bind filename 24 | 25 | To parse every file in a directory tree like this: 26 | +Dir1/ 27 | +Dir2/ 28 | +Dir3/ 29 | -SCL_Bind (executable) 30 | 31 | find . -iname "*.icd" -exec ./SCL_Bind {} \; 32 | 33 | -------------------------------------------------------------------------------- /SCL.cxx: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005-2010 Code Synthesis Tools CC 2 | // 3 | // This program was generated by CodeSynthesis XSD, an XML Schema to 4 | // C++ data binding compiler. 5 | // 6 | // This program is free software; you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License version 2 as 8 | // published by the Free Software Foundation. 9 | // 10 | // This program is distributed in the hope that it will be useful, 11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | // GNU General Public License for more details. 14 | // 15 | // You should have received a copy of the GNU General Public License 16 | // along with this program; if not, write to the Free Software 17 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | // 19 | // In addition, as a special exception, Code Synthesis Tools CC gives 20 | // permission to link this program with the Xerces-C++ library (or with 21 | // modified versions of Xerces-C++ that use the same license as Xerces-C++), 22 | // and distribute linked combinations including the two. You must obey 23 | // the GNU General Public License version 2 in all respects for all of 24 | // the code used other than Xerces-C++. If you modify this copy of the 25 | // program, you may extend this exception to your version of the program, 26 | // but you are not obligated to do so. If you do not wish to do so, delete 27 | // this exception statement from your version. 28 | // 29 | // Furthermore, Code Synthesis Tools CC makes a special exception for 30 | // the Free/Libre and Open Source Software (FLOSS) which is described 31 | // in the accompanying FLOSSE file. 32 | // 33 | 34 | // Begin prologue. 35 | // 36 | // 37 | // End prologue. 38 | 39 | #include 40 | 41 | #include "SCL.hxx" 42 | 43 | namespace SCL 44 | { 45 | // SCL 46 | // 47 | 48 | const SCL::Header_type& SCL:: 49 | Header () const 50 | { 51 | return this->Header_.get (); 52 | } 53 | 54 | SCL::Header_type& SCL:: 55 | Header () 56 | { 57 | return this->Header_.get (); 58 | } 59 | 60 | void SCL:: 61 | Header (const Header_type& x) 62 | { 63 | this->Header_.set (x); 64 | } 65 | 66 | void SCL:: 67 | Header (::std::auto_ptr< Header_type > x) 68 | { 69 | this->Header_.set (x); 70 | } 71 | 72 | const SCL::Substation_sequence& SCL:: 73 | Substation () const 74 | { 75 | return this->Substation_; 76 | } 77 | 78 | SCL::Substation_sequence& SCL:: 79 | Substation () 80 | { 81 | return this->Substation_; 82 | } 83 | 84 | void SCL:: 85 | Substation (const Substation_sequence& s) 86 | { 87 | this->Substation_ = s; 88 | } 89 | 90 | const SCL::Communication_optional& SCL:: 91 | Communication () const 92 | { 93 | return this->Communication_; 94 | } 95 | 96 | SCL::Communication_optional& SCL:: 97 | Communication () 98 | { 99 | return this->Communication_; 100 | } 101 | 102 | void SCL:: 103 | Communication (const Communication_type& x) 104 | { 105 | this->Communication_.set (x); 106 | } 107 | 108 | void SCL:: 109 | Communication (const Communication_optional& x) 110 | { 111 | this->Communication_ = x; 112 | } 113 | 114 | void SCL:: 115 | Communication (::std::auto_ptr< Communication_type > x) 116 | { 117 | this->Communication_.set (x); 118 | } 119 | 120 | const SCL::IED_sequence& SCL:: 121 | IED () const 122 | { 123 | return this->IED_; 124 | } 125 | 126 | SCL::IED_sequence& SCL:: 127 | IED () 128 | { 129 | return this->IED_; 130 | } 131 | 132 | void SCL:: 133 | IED (const IED_sequence& s) 134 | { 135 | this->IED_ = s; 136 | } 137 | 138 | const SCL::DataTypeTemplates_optional& SCL:: 139 | DataTypeTemplates () const 140 | { 141 | return this->DataTypeTemplates_; 142 | } 143 | 144 | SCL::DataTypeTemplates_optional& SCL:: 145 | DataTypeTemplates () 146 | { 147 | return this->DataTypeTemplates_; 148 | } 149 | 150 | void SCL:: 151 | DataTypeTemplates (const DataTypeTemplates_type& x) 152 | { 153 | this->DataTypeTemplates_.set (x); 154 | } 155 | 156 | void SCL:: 157 | DataTypeTemplates (const DataTypeTemplates_optional& x) 158 | { 159 | this->DataTypeTemplates_ = x; 160 | } 161 | 162 | void SCL:: 163 | DataTypeTemplates (::std::auto_ptr< DataTypeTemplates_type > x) 164 | { 165 | this->DataTypeTemplates_.set (x); 166 | } 167 | } 168 | 169 | #include 170 | 171 | namespace SCL 172 | { 173 | // SCL 174 | // 175 | 176 | SCL:: 177 | SCL (const Header_type& Header) 178 | : ::SCL::tBaseElement (), 179 | Header_ (Header, ::xml_schema::flags (), this), 180 | Substation_ (::xml_schema::flags (), this), 181 | Communication_ (::xml_schema::flags (), this), 182 | IED_ (::xml_schema::flags (), this), 183 | DataTypeTemplates_ (::xml_schema::flags (), this) 184 | { 185 | } 186 | 187 | SCL:: 188 | SCL (::std::auto_ptr< Header_type >& Header) 189 | : ::SCL::tBaseElement (), 190 | Header_ (Header, ::xml_schema::flags (), this), 191 | Substation_ (::xml_schema::flags (), this), 192 | Communication_ (::xml_schema::flags (), this), 193 | IED_ (::xml_schema::flags (), this), 194 | DataTypeTemplates_ (::xml_schema::flags (), this) 195 | { 196 | } 197 | 198 | SCL:: 199 | SCL (const SCL& x, 200 | ::xml_schema::flags f, 201 | ::xml_schema::container* c) 202 | : ::SCL::tBaseElement (x, f, c), 203 | Header_ (x.Header_, f, this), 204 | Substation_ (x.Substation_, f, this), 205 | Communication_ (x.Communication_, f, this), 206 | IED_ (x.IED_, f, this), 207 | DataTypeTemplates_ (x.DataTypeTemplates_, f, this) 208 | { 209 | } 210 | 211 | SCL:: 212 | SCL (const ::xercesc::DOMElement& e, 213 | ::xml_schema::flags f, 214 | ::xml_schema::container* c) 215 | : ::SCL::tBaseElement (e, f | ::xml_schema::flags::base, c), 216 | Header_ (f, this), 217 | Substation_ (f, this), 218 | Communication_ (f, this), 219 | IED_ (f, this), 220 | DataTypeTemplates_ (f, this) 221 | { 222 | if ((f & ::xml_schema::flags::base) == 0) 223 | { 224 | ::xsd::cxx::xml::dom::parser< char > p (e, true, false); 225 | this->parse (p, f); 226 | } 227 | } 228 | 229 | void SCL:: 230 | parse (::xsd::cxx::xml::dom::parser< char >& p, 231 | ::xml_schema::flags f) 232 | { 233 | this->::SCL::tBaseElement::parse (p, f); 234 | 235 | for (; p.more_elements (); p.next_element ()) 236 | { 237 | const ::xercesc::DOMElement& i (p.cur_element ()); 238 | const ::xsd::cxx::xml::qualified_name< char > n ( 239 | ::xsd::cxx::xml::dom::name< char > (i)); 240 | 241 | // Header 242 | // 243 | if (n.name () == "Header" && n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 244 | { 245 | ::std::auto_ptr< Header_type > r ( 246 | Header_traits::create (i, f, this)); 247 | 248 | if (!Header_.present ()) 249 | { 250 | this->Header_.set (r); 251 | continue; 252 | } 253 | } 254 | 255 | // Substation 256 | // 257 | if (n.name () == "Substation" && n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 258 | { 259 | ::std::auto_ptr< Substation_type > r ( 260 | Substation_traits::create (i, f, this)); 261 | 262 | this->Substation_.push_back (r); 263 | continue; 264 | } 265 | 266 | // Communication 267 | // 268 | if (n.name () == "Communication" && n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 269 | { 270 | ::std::auto_ptr< Communication_type > r ( 271 | Communication_traits::create (i, f, this)); 272 | 273 | if (!this->Communication_) 274 | { 275 | this->Communication_.set (r); 276 | continue; 277 | } 278 | } 279 | 280 | // IED 281 | // 282 | if (n.name () == "IED" && n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 283 | { 284 | ::std::auto_ptr< IED_type > r ( 285 | IED_traits::create (i, f, this)); 286 | 287 | this->IED_.push_back (r); 288 | continue; 289 | } 290 | 291 | // DataTypeTemplates 292 | // 293 | if (n.name () == "DataTypeTemplates" && n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 294 | { 295 | ::std::auto_ptr< DataTypeTemplates_type > r ( 296 | DataTypeTemplates_traits::create (i, f, this)); 297 | 298 | if (!this->DataTypeTemplates_) 299 | { 300 | this->DataTypeTemplates_.set (r); 301 | continue; 302 | } 303 | } 304 | 305 | break; 306 | } 307 | 308 | if (!Header_.present ()) 309 | { 310 | throw ::xsd::cxx::tree::expected_element< char > ( 311 | "Header", 312 | "http://www.iec.ch/61850/2006/SCL"); 313 | } 314 | } 315 | 316 | SCL* SCL:: 317 | _clone (::xml_schema::flags f, 318 | ::xml_schema::container* c) const 319 | { 320 | return new class SCL (*this, f, c); 321 | } 322 | 323 | SCL:: 324 | ~SCL () 325 | { 326 | } 327 | } 328 | 329 | #include 330 | #include 331 | #include 332 | 333 | namespace SCL 334 | { 335 | ::std::auto_ptr< ::SCL::SCL > 336 | SCL_ (const ::std::string& u, 337 | ::xml_schema::flags f, 338 | const ::xml_schema::properties& p) 339 | { 340 | ::xsd::cxx::xml::auto_initializer i ( 341 | (f & ::xml_schema::flags::dont_initialize) == 0, 342 | (f & ::xml_schema::flags::keep_dom) == 0); 343 | 344 | ::xsd::cxx::tree::error_handler< char > h; 345 | 346 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d ( 347 | ::xsd::cxx::xml::dom::parse< char > ( 348 | u, h, p, f)); 349 | 350 | h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > (); 351 | 352 | ::std::auto_ptr< ::SCL::SCL > r ( 353 | ::SCL::SCL_ ( 354 | d, f | ::xml_schema::flags::own_dom, p)); 355 | 356 | return r; 357 | } 358 | 359 | ::std::auto_ptr< ::SCL::SCL > 360 | SCL_ (const ::std::string& u, 361 | ::xml_schema::error_handler& h, 362 | ::xml_schema::flags f, 363 | const ::xml_schema::properties& p) 364 | { 365 | ::xsd::cxx::xml::auto_initializer i ( 366 | (f & ::xml_schema::flags::dont_initialize) == 0, 367 | (f & ::xml_schema::flags::keep_dom) == 0); 368 | 369 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d ( 370 | ::xsd::cxx::xml::dom::parse< char > ( 371 | u, h, p, f)); 372 | 373 | if (!d.get ()) 374 | throw ::xsd::cxx::tree::parsing< char > (); 375 | 376 | ::std::auto_ptr< ::SCL::SCL > r ( 377 | ::SCL::SCL_ ( 378 | d, f | ::xml_schema::flags::own_dom, p)); 379 | 380 | return r; 381 | } 382 | 383 | ::std::auto_ptr< ::SCL::SCL > 384 | SCL_ (const ::std::string& u, 385 | ::xercesc::DOMErrorHandler& h, 386 | ::xml_schema::flags f, 387 | const ::xml_schema::properties& p) 388 | { 389 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d ( 390 | ::xsd::cxx::xml::dom::parse< char > ( 391 | u, h, p, f)); 392 | 393 | if (!d.get ()) 394 | throw ::xsd::cxx::tree::parsing< char > (); 395 | 396 | ::std::auto_ptr< ::SCL::SCL > r ( 397 | ::SCL::SCL_ ( 398 | d, f | ::xml_schema::flags::own_dom, p)); 399 | 400 | return r; 401 | } 402 | 403 | ::std::auto_ptr< ::SCL::SCL > 404 | SCL_ (::std::istream& is, 405 | ::xml_schema::flags f, 406 | const ::xml_schema::properties& p) 407 | { 408 | ::xsd::cxx::xml::auto_initializer i ( 409 | (f & ::xml_schema::flags::dont_initialize) == 0, 410 | (f & ::xml_schema::flags::keep_dom) == 0); 411 | 412 | ::xsd::cxx::xml::sax::std_input_source isrc (is); 413 | return ::SCL::SCL_ (isrc, f, p); 414 | } 415 | 416 | ::std::auto_ptr< ::SCL::SCL > 417 | SCL_ (::std::istream& is, 418 | ::xml_schema::error_handler& h, 419 | ::xml_schema::flags f, 420 | const ::xml_schema::properties& p) 421 | { 422 | ::xsd::cxx::xml::auto_initializer i ( 423 | (f & ::xml_schema::flags::dont_initialize) == 0, 424 | (f & ::xml_schema::flags::keep_dom) == 0); 425 | 426 | ::xsd::cxx::xml::sax::std_input_source isrc (is); 427 | return ::SCL::SCL_ (isrc, h, f, p); 428 | } 429 | 430 | ::std::auto_ptr< ::SCL::SCL > 431 | SCL_ (::std::istream& is, 432 | ::xercesc::DOMErrorHandler& h, 433 | ::xml_schema::flags f, 434 | const ::xml_schema::properties& p) 435 | { 436 | ::xsd::cxx::xml::sax::std_input_source isrc (is); 437 | return ::SCL::SCL_ (isrc, h, f, p); 438 | } 439 | 440 | ::std::auto_ptr< ::SCL::SCL > 441 | SCL_ (::std::istream& is, 442 | const ::std::string& sid, 443 | ::xml_schema::flags f, 444 | const ::xml_schema::properties& p) 445 | { 446 | ::xsd::cxx::xml::auto_initializer i ( 447 | (f & ::xml_schema::flags::dont_initialize) == 0, 448 | (f & ::xml_schema::flags::keep_dom) == 0); 449 | 450 | ::xsd::cxx::xml::sax::std_input_source isrc (is, sid); 451 | return ::SCL::SCL_ (isrc, f, p); 452 | } 453 | 454 | ::std::auto_ptr< ::SCL::SCL > 455 | SCL_ (::std::istream& is, 456 | const ::std::string& sid, 457 | ::xml_schema::error_handler& h, 458 | ::xml_schema::flags f, 459 | const ::xml_schema::properties& p) 460 | { 461 | ::xsd::cxx::xml::auto_initializer i ( 462 | (f & ::xml_schema::flags::dont_initialize) == 0, 463 | (f & ::xml_schema::flags::keep_dom) == 0); 464 | 465 | ::xsd::cxx::xml::sax::std_input_source isrc (is, sid); 466 | return ::SCL::SCL_ (isrc, h, f, p); 467 | } 468 | 469 | ::std::auto_ptr< ::SCL::SCL > 470 | SCL_ (::std::istream& is, 471 | const ::std::string& sid, 472 | ::xercesc::DOMErrorHandler& h, 473 | ::xml_schema::flags f, 474 | const ::xml_schema::properties& p) 475 | { 476 | ::xsd::cxx::xml::sax::std_input_source isrc (is, sid); 477 | return ::SCL::SCL_ (isrc, h, f, p); 478 | } 479 | 480 | ::std::auto_ptr< ::SCL::SCL > 481 | SCL_ (::xercesc::InputSource& i, 482 | ::xml_schema::flags f, 483 | const ::xml_schema::properties& p) 484 | { 485 | ::xsd::cxx::tree::error_handler< char > h; 486 | 487 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d ( 488 | ::xsd::cxx::xml::dom::parse< char > ( 489 | i, h, p, f)); 490 | 491 | h.throw_if_failed< ::xsd::cxx::tree::parsing< char > > (); 492 | 493 | ::std::auto_ptr< ::SCL::SCL > r ( 494 | ::SCL::SCL_ ( 495 | d, f | ::xml_schema::flags::own_dom, p)); 496 | 497 | return r; 498 | } 499 | 500 | ::std::auto_ptr< ::SCL::SCL > 501 | SCL_ (::xercesc::InputSource& i, 502 | ::xml_schema::error_handler& h, 503 | ::xml_schema::flags f, 504 | const ::xml_schema::properties& p) 505 | { 506 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d ( 507 | ::xsd::cxx::xml::dom::parse< char > ( 508 | i, h, p, f)); 509 | 510 | if (!d.get ()) 511 | throw ::xsd::cxx::tree::parsing< char > (); 512 | 513 | ::std::auto_ptr< ::SCL::SCL > r ( 514 | ::SCL::SCL_ ( 515 | d, f | ::xml_schema::flags::own_dom, p)); 516 | 517 | return r; 518 | } 519 | 520 | ::std::auto_ptr< ::SCL::SCL > 521 | SCL_ (::xercesc::InputSource& i, 522 | ::xercesc::DOMErrorHandler& h, 523 | ::xml_schema::flags f, 524 | const ::xml_schema::properties& p) 525 | { 526 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > d ( 527 | ::xsd::cxx::xml::dom::parse< char > ( 528 | i, h, p, f)); 529 | 530 | if (!d.get ()) 531 | throw ::xsd::cxx::tree::parsing< char > (); 532 | 533 | ::std::auto_ptr< ::SCL::SCL > r ( 534 | ::SCL::SCL_ ( 535 | d, f | ::xml_schema::flags::own_dom, p)); 536 | 537 | return r; 538 | } 539 | 540 | ::std::auto_ptr< ::SCL::SCL > 541 | SCL_ (const ::xercesc::DOMDocument& d, 542 | ::xml_schema::flags f, 543 | const ::xml_schema::properties& p) 544 | { 545 | if (f & ::xml_schema::flags::keep_dom) 546 | { 547 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > c ( 548 | static_cast< ::xercesc::DOMDocument* > (d.cloneNode (true))); 549 | 550 | ::std::auto_ptr< ::SCL::SCL > r ( 551 | ::SCL::SCL_ ( 552 | c, f | ::xml_schema::flags::own_dom, p)); 553 | 554 | return r; 555 | } 556 | 557 | const ::xercesc::DOMElement& e (*d.getDocumentElement ()); 558 | const ::xsd::cxx::xml::qualified_name< char > n ( 559 | ::xsd::cxx::xml::dom::name< char > (e)); 560 | 561 | if (n.name () == "SCL" && 562 | n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 563 | { 564 | ::std::auto_ptr< ::SCL::SCL > r ( 565 | ::xsd::cxx::tree::traits< ::SCL::SCL, char >::create ( 566 | e, f, 0)); 567 | return r; 568 | } 569 | 570 | throw ::xsd::cxx::tree::unexpected_element < char > ( 571 | n.name (), 572 | n.namespace_ (), 573 | "SCL", 574 | "http://www.iec.ch/61850/2006/SCL"); 575 | } 576 | 577 | ::std::auto_ptr< ::SCL::SCL > 578 | SCL_ (::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >& d, 579 | ::xml_schema::flags f, 580 | const ::xml_schema::properties&) 581 | { 582 | ::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument > c ( 583 | ((f & ::xml_schema::flags::keep_dom) && 584 | !(f & ::xml_schema::flags::own_dom)) 585 | ? static_cast< ::xercesc::DOMDocument* > (d->cloneNode (true)) 586 | : 0); 587 | 588 | ::xercesc::DOMDocument& doc (c.get () ? *c : *d); 589 | const ::xercesc::DOMElement& e (*doc.getDocumentElement ()); 590 | 591 | const ::xsd::cxx::xml::qualified_name< char > n ( 592 | ::xsd::cxx::xml::dom::name< char > (e)); 593 | 594 | if (f & ::xml_schema::flags::keep_dom) 595 | doc.setUserData (::xml_schema::dom::tree_node_key, 596 | (c.get () ? &c : &d), 597 | 0); 598 | 599 | if (n.name () == "SCL" && 600 | n.namespace_ () == "http://www.iec.ch/61850/2006/SCL") 601 | { 602 | ::std::auto_ptr< ::SCL::SCL > r ( 603 | ::xsd::cxx::tree::traits< ::SCL::SCL, char >::create ( 604 | e, f, 0)); 605 | return r; 606 | } 607 | 608 | throw ::xsd::cxx::tree::unexpected_element < char > ( 609 | n.name (), 610 | n.namespace_ (), 611 | "SCL", 612 | "http://www.iec.ch/61850/2006/SCL"); 613 | } 614 | } 615 | 616 | #include 617 | 618 | // Begin epilogue. 619 | // 620 | // 621 | // End epilogue. 622 | 623 | -------------------------------------------------------------------------------- /SCL.hxx: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005-2010 Code Synthesis Tools CC 2 | // 3 | // This program was generated by CodeSynthesis XSD, an XML Schema to 4 | // C++ data binding compiler. 5 | // 6 | // This program is free software; you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License version 2 as 8 | // published by the Free Software Foundation. 9 | // 10 | // This program is distributed in the hope that it will be useful, 11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | // GNU General Public License for more details. 14 | // 15 | // You should have received a copy of the GNU General Public License 16 | // along with this program; if not, write to the Free Software 17 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | // 19 | // In addition, as a special exception, Code Synthesis Tools CC gives 20 | // permission to link this program with the Xerces-C++ library (or with 21 | // modified versions of Xerces-C++ that use the same license as Xerces-C++), 22 | // and distribute linked combinations including the two. You must obey 23 | // the GNU General Public License version 2 in all respects for all of 24 | // the code used other than Xerces-C++. If you modify this copy of the 25 | // program, you may extend this exception to your version of the program, 26 | // but you are not obligated to do so. If you do not wish to do so, delete 27 | // this exception statement from your version. 28 | // 29 | // Furthermore, Code Synthesis Tools CC makes a special exception for 30 | // the Free/Libre and Open Source Software (FLOSS) which is described 31 | // in the accompanying FLOSSE file. 32 | // 33 | 34 | #ifndef SCL_HXX 35 | #define SCL_HXX 36 | 37 | // Begin prologue. 38 | // 39 | // 40 | // End prologue. 41 | 42 | #include 43 | 44 | #if (XSD_INT_VERSION != 3030000L) 45 | #error XSD runtime version mismatch 46 | #endif 47 | 48 | #include 49 | 50 | #ifndef XSD_USE_CHAR 51 | #define XSD_USE_CHAR 52 | #endif 53 | 54 | #ifndef XSD_CXX_TREE_USE_CHAR 55 | #define XSD_CXX_TREE_USE_CHAR 56 | #endif 57 | 58 | #include 59 | 60 | #include 61 | #include 62 | #include 63 | 64 | #include 65 | 66 | #include 67 | 68 | #include 69 | #include 70 | #include 71 | #include 72 | #include 73 | #include 74 | #include 75 | #include 76 | #include 77 | #include 78 | #include 79 | #include 80 | #include 81 | 82 | namespace xml_schema 83 | { 84 | // anyType and anySimpleType. 85 | // 86 | typedef ::xsd::cxx::tree::type type; 87 | typedef ::xsd::cxx::tree::simple_type< type > simple_type; 88 | typedef ::xsd::cxx::tree::type container; 89 | 90 | // 8-bit 91 | // 92 | typedef signed char byte; 93 | typedef unsigned char unsigned_byte; 94 | 95 | // 16-bit 96 | // 97 | typedef short short_; 98 | typedef unsigned short unsigned_short; 99 | 100 | // 32-bit 101 | // 102 | typedef int int_; 103 | typedef unsigned int unsigned_int; 104 | 105 | // 64-bit 106 | // 107 | typedef long long long_; 108 | typedef unsigned long long unsigned_long; 109 | 110 | // Supposed to be arbitrary-length integral types. 111 | // 112 | typedef long long integer; 113 | typedef long long non_positive_integer; 114 | typedef unsigned long long non_negative_integer; 115 | typedef unsigned long long positive_integer; 116 | typedef long long negative_integer; 117 | 118 | // Boolean. 119 | // 120 | typedef bool boolean; 121 | 122 | // Floating-point types. 123 | // 124 | typedef float float_; 125 | typedef double double_; 126 | typedef double decimal; 127 | 128 | // String types. 129 | // 130 | typedef ::xsd::cxx::tree::string< char, simple_type > string; 131 | typedef ::xsd::cxx::tree::normalized_string< char, string > normalized_string; 132 | typedef ::xsd::cxx::tree::token< char, normalized_string > token; 133 | typedef ::xsd::cxx::tree::name< char, token > name; 134 | typedef ::xsd::cxx::tree::nmtoken< char, token > nmtoken; 135 | typedef ::xsd::cxx::tree::nmtokens< char, simple_type, nmtoken > nmtokens; 136 | typedef ::xsd::cxx::tree::ncname< char, name > ncname; 137 | typedef ::xsd::cxx::tree::language< char, token > language; 138 | 139 | // ID/IDREF. 140 | // 141 | typedef ::xsd::cxx::tree::id< char, ncname > id; 142 | typedef ::xsd::cxx::tree::idref< char, ncname, type > idref; 143 | typedef ::xsd::cxx::tree::idrefs< char, simple_type, idref > idrefs; 144 | 145 | // URI. 146 | // 147 | typedef ::xsd::cxx::tree::uri< char, simple_type > uri; 148 | 149 | // Qualified name. 150 | // 151 | typedef ::xsd::cxx::tree::qname< char, simple_type, uri, ncname > qname; 152 | 153 | // Binary. 154 | // 155 | typedef ::xsd::cxx::tree::buffer< char > buffer; 156 | typedef ::xsd::cxx::tree::base64_binary< char, simple_type > base64_binary; 157 | typedef ::xsd::cxx::tree::hex_binary< char, simple_type > hex_binary; 158 | 159 | // Date/time. 160 | // 161 | typedef ::xsd::cxx::tree::time_zone time_zone; 162 | typedef ::xsd::cxx::tree::date< char, simple_type > date; 163 | typedef ::xsd::cxx::tree::date_time< char, simple_type > date_time; 164 | typedef ::xsd::cxx::tree::duration< char, simple_type > duration; 165 | typedef ::xsd::cxx::tree::gday< char, simple_type > gday; 166 | typedef ::xsd::cxx::tree::gmonth< char, simple_type > gmonth; 167 | typedef ::xsd::cxx::tree::gmonth_day< char, simple_type > gmonth_day; 168 | typedef ::xsd::cxx::tree::gyear< char, simple_type > gyear; 169 | typedef ::xsd::cxx::tree::gyear_month< char, simple_type > gyear_month; 170 | typedef ::xsd::cxx::tree::time< char, simple_type > time; 171 | 172 | // Entity. 173 | // 174 | typedef ::xsd::cxx::tree::entity< char, ncname > entity; 175 | typedef ::xsd::cxx::tree::entities< char, simple_type, entity > entities; 176 | 177 | // Flags and properties. 178 | // 179 | typedef ::xsd::cxx::tree::flags flags; 180 | typedef ::xsd::cxx::tree::properties< char > properties; 181 | 182 | // Parsing/serialization diagnostics. 183 | // 184 | typedef ::xsd::cxx::tree::severity severity; 185 | typedef ::xsd::cxx::tree::error< char > error; 186 | typedef ::xsd::cxx::tree::diagnostics< char > diagnostics; 187 | 188 | // Exceptions. 189 | // 190 | typedef ::xsd::cxx::tree::exception< char > exception; 191 | typedef ::xsd::cxx::tree::bounds< char > bounds; 192 | typedef ::xsd::cxx::tree::duplicate_id< char > duplicate_id; 193 | typedef ::xsd::cxx::tree::parsing< char > parsing; 194 | typedef ::xsd::cxx::tree::expected_element< char > expected_element; 195 | typedef ::xsd::cxx::tree::unexpected_element< char > unexpected_element; 196 | typedef ::xsd::cxx::tree::expected_attribute< char > expected_attribute; 197 | typedef ::xsd::cxx::tree::unexpected_enumerator< char > unexpected_enumerator; 198 | typedef ::xsd::cxx::tree::expected_text_content< char > expected_text_content; 199 | typedef ::xsd::cxx::tree::no_prefix_mapping< char > no_prefix_mapping; 200 | 201 | // Error handler callback interface. 202 | // 203 | typedef ::xsd::cxx::xml::error_handler< char > error_handler; 204 | 205 | // DOM interaction. 206 | // 207 | namespace dom 208 | { 209 | // Automatic pointer for DOMDocument. 210 | // 211 | using ::xsd::cxx::xml::dom::auto_ptr; 212 | 213 | #ifndef XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA 214 | #define XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA 215 | // DOM user data key for back pointers to tree nodes. 216 | // 217 | const XMLCh* const tree_node_key = ::xsd::cxx::tree::user_data_keys::node; 218 | #endif 219 | } 220 | } 221 | 222 | // Forward declarations. 223 | // 224 | namespace SCL 225 | { 226 | class SCL; 227 | } 228 | 229 | 230 | #include // std::auto_ptr 231 | #include // std::numeric_limits 232 | #include // std::binary_search 233 | 234 | #include 235 | 236 | #include 237 | #include 238 | #include 239 | #include 240 | 241 | #include 242 | 243 | #include "SCL_Substation.hxx" 244 | 245 | #include "SCL_IED.hxx" 246 | 247 | #include "SCL_Communication.hxx" 248 | 249 | #include "SCL_DataTypeTemplates.hxx" 250 | 251 | namespace SCL 252 | { 253 | class SCL: public ::SCL::tBaseElement 254 | { 255 | public: 256 | // Header 257 | // 258 | typedef ::SCL::tHeader Header_type; 259 | typedef ::xsd::cxx::tree::traits< Header_type, char > Header_traits; 260 | 261 | const Header_type& 262 | Header () const; 263 | 264 | Header_type& 265 | Header (); 266 | 267 | void 268 | Header (const Header_type& x); 269 | 270 | void 271 | Header (::std::auto_ptr< Header_type > p); 272 | 273 | // Substation 274 | // 275 | typedef ::SCL::tSubstation Substation_type; 276 | typedef ::xsd::cxx::tree::sequence< Substation_type > Substation_sequence; 277 | typedef Substation_sequence::iterator Substation_iterator; 278 | typedef Substation_sequence::const_iterator Substation_const_iterator; 279 | typedef ::xsd::cxx::tree::traits< Substation_type, char > Substation_traits; 280 | 281 | const Substation_sequence& 282 | Substation () const; 283 | 284 | Substation_sequence& 285 | Substation (); 286 | 287 | void 288 | Substation (const Substation_sequence& s); 289 | 290 | // Communication 291 | // 292 | typedef ::SCL::tCommunication Communication_type; 293 | typedef ::xsd::cxx::tree::optional< Communication_type > Communication_optional; 294 | typedef ::xsd::cxx::tree::traits< Communication_type, char > Communication_traits; 295 | 296 | const Communication_optional& 297 | Communication () const; 298 | 299 | Communication_optional& 300 | Communication (); 301 | 302 | void 303 | Communication (const Communication_type& x); 304 | 305 | void 306 | Communication (const Communication_optional& x); 307 | 308 | void 309 | Communication (::std::auto_ptr< Communication_type > p); 310 | 311 | // IED 312 | // 313 | typedef ::SCL::tIED IED_type; 314 | typedef ::xsd::cxx::tree::sequence< IED_type > IED_sequence; 315 | typedef IED_sequence::iterator IED_iterator; 316 | typedef IED_sequence::const_iterator IED_const_iterator; 317 | typedef ::xsd::cxx::tree::traits< IED_type, char > IED_traits; 318 | 319 | const IED_sequence& 320 | IED () const; 321 | 322 | IED_sequence& 323 | IED (); 324 | 325 | void 326 | IED (const IED_sequence& s); 327 | 328 | // DataTypeTemplates 329 | // 330 | typedef ::SCL::tDataTypeTemplates DataTypeTemplates_type; 331 | typedef ::xsd::cxx::tree::optional< DataTypeTemplates_type > DataTypeTemplates_optional; 332 | typedef ::xsd::cxx::tree::traits< DataTypeTemplates_type, char > DataTypeTemplates_traits; 333 | 334 | const DataTypeTemplates_optional& 335 | DataTypeTemplates () const; 336 | 337 | DataTypeTemplates_optional& 338 | DataTypeTemplates (); 339 | 340 | void 341 | DataTypeTemplates (const DataTypeTemplates_type& x); 342 | 343 | void 344 | DataTypeTemplates (const DataTypeTemplates_optional& x); 345 | 346 | void 347 | DataTypeTemplates (::std::auto_ptr< DataTypeTemplates_type > p); 348 | 349 | // Constructors. 350 | // 351 | SCL (const Header_type&); 352 | 353 | SCL (::std::auto_ptr< Header_type >&); 354 | 355 | SCL (const ::xercesc::DOMElement& e, 356 | ::xml_schema::flags f = 0, 357 | ::xml_schema::container* c = 0); 358 | 359 | SCL (const SCL& x, 360 | ::xml_schema::flags f = 0, 361 | ::xml_schema::container* c = 0); 362 | 363 | virtual SCL* 364 | _clone (::xml_schema::flags f = 0, 365 | ::xml_schema::container* c = 0) const; 366 | 367 | virtual 368 | ~SCL (); 369 | 370 | // Implementation. 371 | // 372 | protected: 373 | void 374 | parse (::xsd::cxx::xml::dom::parser< char >&, 375 | ::xml_schema::flags); 376 | 377 | protected: 378 | ::xsd::cxx::tree::one< Header_type > Header_; 379 | Substation_sequence Substation_; 380 | Communication_optional Communication_; 381 | IED_sequence IED_; 382 | DataTypeTemplates_optional DataTypeTemplates_; 383 | }; 384 | } 385 | 386 | #include 387 | 388 | #include 389 | #include 390 | #include 391 | 392 | namespace SCL 393 | { 394 | // Parse a URI or a local file. 395 | // 396 | 397 | ::std::auto_ptr< ::SCL::SCL > 398 | SCL_ (const ::std::string& uri, 399 | ::xml_schema::flags f = 0, 400 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 401 | 402 | ::std::auto_ptr< ::SCL::SCL > 403 | SCL_ (const ::std::string& uri, 404 | ::xml_schema::error_handler& eh, 405 | ::xml_schema::flags f = 0, 406 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 407 | 408 | ::std::auto_ptr< ::SCL::SCL > 409 | SCL_ (const ::std::string& uri, 410 | ::xercesc::DOMErrorHandler& eh, 411 | ::xml_schema::flags f = 0, 412 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 413 | 414 | // Parse std::istream. 415 | // 416 | 417 | ::std::auto_ptr< ::SCL::SCL > 418 | SCL_ (::std::istream& is, 419 | ::xml_schema::flags f = 0, 420 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 421 | 422 | ::std::auto_ptr< ::SCL::SCL > 423 | SCL_ (::std::istream& is, 424 | ::xml_schema::error_handler& eh, 425 | ::xml_schema::flags f = 0, 426 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 427 | 428 | ::std::auto_ptr< ::SCL::SCL > 429 | SCL_ (::std::istream& is, 430 | ::xercesc::DOMErrorHandler& eh, 431 | ::xml_schema::flags f = 0, 432 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 433 | 434 | ::std::auto_ptr< ::SCL::SCL > 435 | SCL_ (::std::istream& is, 436 | const ::std::string& id, 437 | ::xml_schema::flags f = 0, 438 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 439 | 440 | ::std::auto_ptr< ::SCL::SCL > 441 | SCL_ (::std::istream& is, 442 | const ::std::string& id, 443 | ::xml_schema::error_handler& eh, 444 | ::xml_schema::flags f = 0, 445 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 446 | 447 | ::std::auto_ptr< ::SCL::SCL > 448 | SCL_ (::std::istream& is, 449 | const ::std::string& id, 450 | ::xercesc::DOMErrorHandler& eh, 451 | ::xml_schema::flags f = 0, 452 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 453 | 454 | // Parse xercesc::InputSource. 455 | // 456 | 457 | ::std::auto_ptr< ::SCL::SCL > 458 | SCL_ (::xercesc::InputSource& is, 459 | ::xml_schema::flags f = 0, 460 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 461 | 462 | ::std::auto_ptr< ::SCL::SCL > 463 | SCL_ (::xercesc::InputSource& is, 464 | ::xml_schema::error_handler& eh, 465 | ::xml_schema::flags f = 0, 466 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 467 | 468 | ::std::auto_ptr< ::SCL::SCL > 469 | SCL_ (::xercesc::InputSource& is, 470 | ::xercesc::DOMErrorHandler& eh, 471 | ::xml_schema::flags f = 0, 472 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 473 | 474 | // Parse xercesc::DOMDocument. 475 | // 476 | 477 | ::std::auto_ptr< ::SCL::SCL > 478 | SCL_ (const ::xercesc::DOMDocument& d, 479 | ::xml_schema::flags f = 0, 480 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 481 | 482 | ::std::auto_ptr< ::SCL::SCL > 483 | SCL_ (::xml_schema::dom::auto_ptr< ::xercesc::DOMDocument >& d, 484 | ::xml_schema::flags f = 0, 485 | const ::xml_schema::properties& p = ::xml_schema::properties ()); 486 | } 487 | 488 | #include 489 | 490 | // Begin epilogue. 491 | // 492 | // 493 | // End epilogue. 494 | 495 | #endif // SCL_HXX 496 | -------------------------------------------------------------------------------- /SCL_BaseSimpleTypes.cxx: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005-2010 Code Synthesis Tools CC 2 | // 3 | // This program was generated by CodeSynthesis XSD, an XML Schema to 4 | // C++ data binding compiler. 5 | // 6 | // This program is free software; you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License version 2 as 8 | // published by the Free Software Foundation. 9 | // 10 | // This program is distributed in the hope that it will be useful, 11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | // GNU General Public License for more details. 14 | // 15 | // You should have received a copy of the GNU General Public License 16 | // along with this program; if not, write to the Free Software 17 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | // 19 | // In addition, as a special exception, Code Synthesis Tools CC gives 20 | // permission to link this program with the Xerces-C++ library (or with 21 | // modified versions of Xerces-C++ that use the same license as Xerces-C++), 22 | // and distribute linked combinations including the two. You must obey 23 | // the GNU General Public License version 2 in all respects for all of 24 | // the code used other than Xerces-C++. If you modify this copy of the 25 | // program, you may extend this exception to your version of the program, 26 | // but you are not obligated to do so. If you do not wish to do so, delete 27 | // this exception statement from your version. 28 | // 29 | // Furthermore, Code Synthesis Tools CC makes a special exception for 30 | // the Free/Libre and Open Source Software (FLOSS) which is described 31 | // in the accompanying FLOSSE file. 32 | // 33 | 34 | // Begin prologue. 35 | // 36 | // 37 | // End prologue. 38 | 39 | #include 40 | 41 | #include "SCL_BaseSimpleTypes.hxx" 42 | 43 | namespace SCL 44 | { 45 | // tRef 46 | // 47 | 48 | 49 | // tAnyName 50 | // 51 | 52 | 53 | // tName 54 | // 55 | 56 | 57 | // tRestrName 58 | // 59 | 60 | 61 | // tRestrLdName 62 | // 63 | 64 | 65 | // tRestrName1stU 66 | // 67 | 68 | 69 | // tRestrName1stL 70 | // 71 | 72 | 73 | // tPAddr 74 | // 75 | } 76 | 77 | #include 78 | 79 | namespace SCL 80 | { 81 | // tRef 82 | // 83 | 84 | tRef:: 85 | tRef () 86 | : ::xml_schema::normalized_string () 87 | { 88 | } 89 | 90 | tRef:: 91 | tRef (const char* _xsd_normalized_string_base) 92 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 93 | { 94 | } 95 | 96 | tRef:: 97 | tRef (const ::std::string& _xsd_normalized_string_base) 98 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 99 | { 100 | } 101 | 102 | tRef:: 103 | tRef (const ::xml_schema::normalized_string& _xsd_normalized_string_base) 104 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 105 | { 106 | } 107 | 108 | tRef:: 109 | tRef (const tRef& x, 110 | ::xml_schema::flags f, 111 | ::xml_schema::container* c) 112 | : ::xml_schema::normalized_string (x, f, c) 113 | { 114 | } 115 | 116 | tRef:: 117 | tRef (const ::xercesc::DOMElement& e, 118 | ::xml_schema::flags f, 119 | ::xml_schema::container* c) 120 | : ::xml_schema::normalized_string (e, f, c) 121 | { 122 | } 123 | 124 | tRef:: 125 | tRef (const ::xercesc::DOMAttr& a, 126 | ::xml_schema::flags f, 127 | ::xml_schema::container* c) 128 | : ::xml_schema::normalized_string (a, f, c) 129 | { 130 | } 131 | 132 | tRef:: 133 | tRef (const ::std::string& s, 134 | const ::xercesc::DOMElement* e, 135 | ::xml_schema::flags f, 136 | ::xml_schema::container* c) 137 | : ::xml_schema::normalized_string (s, e, f, c) 138 | { 139 | } 140 | 141 | tRef* tRef:: 142 | _clone (::xml_schema::flags f, 143 | ::xml_schema::container* c) const 144 | { 145 | return new class tRef (*this, f, c); 146 | } 147 | 148 | tRef:: 149 | ~tRef () 150 | { 151 | } 152 | 153 | // tAnyName 154 | // 155 | 156 | tAnyName:: 157 | tAnyName () 158 | : ::xml_schema::normalized_string () 159 | { 160 | } 161 | 162 | tAnyName:: 163 | tAnyName (const char* _xsd_normalized_string_base) 164 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 165 | { 166 | } 167 | 168 | tAnyName:: 169 | tAnyName (const ::std::string& _xsd_normalized_string_base) 170 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 171 | { 172 | } 173 | 174 | tAnyName:: 175 | tAnyName (const ::xml_schema::normalized_string& _xsd_normalized_string_base) 176 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 177 | { 178 | } 179 | 180 | tAnyName:: 181 | tAnyName (const tAnyName& x, 182 | ::xml_schema::flags f, 183 | ::xml_schema::container* c) 184 | : ::xml_schema::normalized_string (x, f, c) 185 | { 186 | } 187 | 188 | tAnyName:: 189 | tAnyName (const ::xercesc::DOMElement& e, 190 | ::xml_schema::flags f, 191 | ::xml_schema::container* c) 192 | : ::xml_schema::normalized_string (e, f, c) 193 | { 194 | } 195 | 196 | tAnyName:: 197 | tAnyName (const ::xercesc::DOMAttr& a, 198 | ::xml_schema::flags f, 199 | ::xml_schema::container* c) 200 | : ::xml_schema::normalized_string (a, f, c) 201 | { 202 | } 203 | 204 | tAnyName:: 205 | tAnyName (const ::std::string& s, 206 | const ::xercesc::DOMElement* e, 207 | ::xml_schema::flags f, 208 | ::xml_schema::container* c) 209 | : ::xml_schema::normalized_string (s, e, f, c) 210 | { 211 | } 212 | 213 | tAnyName* tAnyName:: 214 | _clone (::xml_schema::flags f, 215 | ::xml_schema::container* c) const 216 | { 217 | return new class tAnyName (*this, f, c); 218 | } 219 | 220 | tAnyName:: 221 | ~tAnyName () 222 | { 223 | } 224 | 225 | // tName 226 | // 227 | 228 | tName:: 229 | tName () 230 | : ::SCL::tAnyName () 231 | { 232 | } 233 | 234 | tName:: 235 | tName (const char* _xsd_normalized_string_base) 236 | : ::SCL::tAnyName (_xsd_normalized_string_base) 237 | { 238 | } 239 | 240 | tName:: 241 | tName (const ::std::string& _xsd_normalized_string_base) 242 | : ::SCL::tAnyName (_xsd_normalized_string_base) 243 | { 244 | } 245 | 246 | tName:: 247 | tName (const ::xml_schema::normalized_string& _xsd_normalized_string_base) 248 | : ::SCL::tAnyName (_xsd_normalized_string_base) 249 | { 250 | } 251 | 252 | tName:: 253 | tName (const tName& x, 254 | ::xml_schema::flags f, 255 | ::xml_schema::container* c) 256 | : ::SCL::tAnyName (x, f, c) 257 | { 258 | } 259 | 260 | tName:: 261 | tName (const ::xercesc::DOMElement& e, 262 | ::xml_schema::flags f, 263 | ::xml_schema::container* c) 264 | : ::SCL::tAnyName (e, f, c) 265 | { 266 | } 267 | 268 | tName:: 269 | tName (const ::xercesc::DOMAttr& a, 270 | ::xml_schema::flags f, 271 | ::xml_schema::container* c) 272 | : ::SCL::tAnyName (a, f, c) 273 | { 274 | } 275 | 276 | tName:: 277 | tName (const ::std::string& s, 278 | const ::xercesc::DOMElement* e, 279 | ::xml_schema::flags f, 280 | ::xml_schema::container* c) 281 | : ::SCL::tAnyName (s, e, f, c) 282 | { 283 | } 284 | 285 | tName* tName:: 286 | _clone (::xml_schema::flags f, 287 | ::xml_schema::container* c) const 288 | { 289 | return new class tName (*this, f, c); 290 | } 291 | 292 | tName:: 293 | ~tName () 294 | { 295 | } 296 | 297 | // tRestrName 298 | // 299 | 300 | tRestrName:: 301 | tRestrName (const char* _xsd_name_base) 302 | : ::xml_schema::name (_xsd_name_base) 303 | { 304 | } 305 | 306 | tRestrName:: 307 | tRestrName (const ::std::string& _xsd_name_base) 308 | : ::xml_schema::name (_xsd_name_base) 309 | { 310 | } 311 | 312 | tRestrName:: 313 | tRestrName (const ::xml_schema::name& _xsd_name_base) 314 | : ::xml_schema::name (_xsd_name_base) 315 | { 316 | } 317 | 318 | tRestrName:: 319 | tRestrName (const tRestrName& x, 320 | ::xml_schema::flags f, 321 | ::xml_schema::container* c) 322 | : ::xml_schema::name (x, f, c) 323 | { 324 | } 325 | 326 | tRestrName:: 327 | tRestrName (const ::xercesc::DOMElement& e, 328 | ::xml_schema::flags f, 329 | ::xml_schema::container* c) 330 | : ::xml_schema::name (e, f, c) 331 | { 332 | } 333 | 334 | tRestrName:: 335 | tRestrName (const ::xercesc::DOMAttr& a, 336 | ::xml_schema::flags f, 337 | ::xml_schema::container* c) 338 | : ::xml_schema::name (a, f, c) 339 | { 340 | } 341 | 342 | tRestrName:: 343 | tRestrName (const ::std::string& s, 344 | const ::xercesc::DOMElement* e, 345 | ::xml_schema::flags f, 346 | ::xml_schema::container* c) 347 | : ::xml_schema::name (s, e, f, c) 348 | { 349 | } 350 | 351 | tRestrName* tRestrName:: 352 | _clone (::xml_schema::flags f, 353 | ::xml_schema::container* c) const 354 | { 355 | return new class tRestrName (*this, f, c); 356 | } 357 | 358 | tRestrName:: 359 | ~tRestrName () 360 | { 361 | } 362 | 363 | // tRestrLdName 364 | // 365 | 366 | tRestrLdName:: 367 | tRestrLdName (const char* _xsd_name_base) 368 | : ::xml_schema::name (_xsd_name_base) 369 | { 370 | } 371 | 372 | tRestrLdName:: 373 | tRestrLdName (const ::std::string& _xsd_name_base) 374 | : ::xml_schema::name (_xsd_name_base) 375 | { 376 | } 377 | 378 | tRestrLdName:: 379 | tRestrLdName (const ::xml_schema::name& _xsd_name_base) 380 | : ::xml_schema::name (_xsd_name_base) 381 | { 382 | } 383 | 384 | tRestrLdName:: 385 | tRestrLdName (const tRestrLdName& x, 386 | ::xml_schema::flags f, 387 | ::xml_schema::container* c) 388 | : ::xml_schema::name (x, f, c) 389 | { 390 | } 391 | 392 | tRestrLdName:: 393 | tRestrLdName (const ::xercesc::DOMElement& e, 394 | ::xml_schema::flags f, 395 | ::xml_schema::container* c) 396 | : ::xml_schema::name (e, f, c) 397 | { 398 | } 399 | 400 | tRestrLdName:: 401 | tRestrLdName (const ::xercesc::DOMAttr& a, 402 | ::xml_schema::flags f, 403 | ::xml_schema::container* c) 404 | : ::xml_schema::name (a, f, c) 405 | { 406 | } 407 | 408 | tRestrLdName:: 409 | tRestrLdName (const ::std::string& s, 410 | const ::xercesc::DOMElement* e, 411 | ::xml_schema::flags f, 412 | ::xml_schema::container* c) 413 | : ::xml_schema::name (s, e, f, c) 414 | { 415 | } 416 | 417 | tRestrLdName* tRestrLdName:: 418 | _clone (::xml_schema::flags f, 419 | ::xml_schema::container* c) const 420 | { 421 | return new class tRestrLdName (*this, f, c); 422 | } 423 | 424 | tRestrLdName:: 425 | ~tRestrLdName () 426 | { 427 | } 428 | 429 | // tRestrName1stU 430 | // 431 | 432 | tRestrName1stU:: 433 | tRestrName1stU (const char* _xsd_name_base) 434 | : ::xml_schema::name (_xsd_name_base) 435 | { 436 | } 437 | 438 | tRestrName1stU:: 439 | tRestrName1stU (const ::std::string& _xsd_name_base) 440 | : ::xml_schema::name (_xsd_name_base) 441 | { 442 | } 443 | 444 | tRestrName1stU:: 445 | tRestrName1stU (const ::xml_schema::name& _xsd_name_base) 446 | : ::xml_schema::name (_xsd_name_base) 447 | { 448 | } 449 | 450 | tRestrName1stU:: 451 | tRestrName1stU (const tRestrName1stU& x, 452 | ::xml_schema::flags f, 453 | ::xml_schema::container* c) 454 | : ::xml_schema::name (x, f, c) 455 | { 456 | } 457 | 458 | tRestrName1stU:: 459 | tRestrName1stU (const ::xercesc::DOMElement& e, 460 | ::xml_schema::flags f, 461 | ::xml_schema::container* c) 462 | : ::xml_schema::name (e, f, c) 463 | { 464 | } 465 | 466 | tRestrName1stU:: 467 | tRestrName1stU (const ::xercesc::DOMAttr& a, 468 | ::xml_schema::flags f, 469 | ::xml_schema::container* c) 470 | : ::xml_schema::name (a, f, c) 471 | { 472 | } 473 | 474 | tRestrName1stU:: 475 | tRestrName1stU (const ::std::string& s, 476 | const ::xercesc::DOMElement* e, 477 | ::xml_schema::flags f, 478 | ::xml_schema::container* c) 479 | : ::xml_schema::name (s, e, f, c) 480 | { 481 | } 482 | 483 | tRestrName1stU* tRestrName1stU:: 484 | _clone (::xml_schema::flags f, 485 | ::xml_schema::container* c) const 486 | { 487 | return new class tRestrName1stU (*this, f, c); 488 | } 489 | 490 | tRestrName1stU:: 491 | ~tRestrName1stU () 492 | { 493 | } 494 | 495 | // tRestrName1stL 496 | // 497 | 498 | tRestrName1stL:: 499 | tRestrName1stL (const char* _xsd_name_base) 500 | : ::xml_schema::name (_xsd_name_base) 501 | { 502 | } 503 | 504 | tRestrName1stL:: 505 | tRestrName1stL (const ::std::string& _xsd_name_base) 506 | : ::xml_schema::name (_xsd_name_base) 507 | { 508 | } 509 | 510 | tRestrName1stL:: 511 | tRestrName1stL (const ::xml_schema::name& _xsd_name_base) 512 | : ::xml_schema::name (_xsd_name_base) 513 | { 514 | } 515 | 516 | tRestrName1stL:: 517 | tRestrName1stL (const tRestrName1stL& x, 518 | ::xml_schema::flags f, 519 | ::xml_schema::container* c) 520 | : ::xml_schema::name (x, f, c) 521 | { 522 | } 523 | 524 | tRestrName1stL:: 525 | tRestrName1stL (const ::xercesc::DOMElement& e, 526 | ::xml_schema::flags f, 527 | ::xml_schema::container* c) 528 | : ::xml_schema::name (e, f, c) 529 | { 530 | } 531 | 532 | tRestrName1stL:: 533 | tRestrName1stL (const ::xercesc::DOMAttr& a, 534 | ::xml_schema::flags f, 535 | ::xml_schema::container* c) 536 | : ::xml_schema::name (a, f, c) 537 | { 538 | } 539 | 540 | tRestrName1stL:: 541 | tRestrName1stL (const ::std::string& s, 542 | const ::xercesc::DOMElement* e, 543 | ::xml_schema::flags f, 544 | ::xml_schema::container* c) 545 | : ::xml_schema::name (s, e, f, c) 546 | { 547 | } 548 | 549 | tRestrName1stL* tRestrName1stL:: 550 | _clone (::xml_schema::flags f, 551 | ::xml_schema::container* c) const 552 | { 553 | return new class tRestrName1stL (*this, f, c); 554 | } 555 | 556 | tRestrName1stL:: 557 | ~tRestrName1stL () 558 | { 559 | } 560 | 561 | // tPAddr 562 | // 563 | 564 | tPAddr:: 565 | tPAddr () 566 | : ::xml_schema::normalized_string () 567 | { 568 | } 569 | 570 | tPAddr:: 571 | tPAddr (const char* _xsd_normalized_string_base) 572 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 573 | { 574 | } 575 | 576 | tPAddr:: 577 | tPAddr (const ::std::string& _xsd_normalized_string_base) 578 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 579 | { 580 | } 581 | 582 | tPAddr:: 583 | tPAddr (const ::xml_schema::normalized_string& _xsd_normalized_string_base) 584 | : ::xml_schema::normalized_string (_xsd_normalized_string_base) 585 | { 586 | } 587 | 588 | tPAddr:: 589 | tPAddr (const tPAddr& x, 590 | ::xml_schema::flags f, 591 | ::xml_schema::container* c) 592 | : ::xml_schema::normalized_string (x, f, c) 593 | { 594 | } 595 | 596 | tPAddr:: 597 | tPAddr (const ::xercesc::DOMElement& e, 598 | ::xml_schema::flags f, 599 | ::xml_schema::container* c) 600 | : ::xml_schema::normalized_string (e, f, c) 601 | { 602 | } 603 | 604 | tPAddr:: 605 | tPAddr (const ::xercesc::DOMAttr& a, 606 | ::xml_schema::flags f, 607 | ::xml_schema::container* c) 608 | : ::xml_schema::normalized_string (a, f, c) 609 | { 610 | } 611 | 612 | tPAddr:: 613 | tPAddr (const ::std::string& s, 614 | const ::xercesc::DOMElement* e, 615 | ::xml_schema::flags f, 616 | ::xml_schema::container* c) 617 | : ::xml_schema::normalized_string (s, e, f, c) 618 | { 619 | } 620 | 621 | tPAddr* tPAddr:: 622 | _clone (::xml_schema::flags f, 623 | ::xml_schema::container* c) const 624 | { 625 | return new class tPAddr (*this, f, c); 626 | } 627 | 628 | tPAddr:: 629 | ~tPAddr () 630 | { 631 | } 632 | } 633 | 634 | #include 635 | #include 636 | #include 637 | 638 | namespace SCL 639 | { 640 | } 641 | 642 | #include 643 | 644 | // Begin epilogue. 645 | // 646 | // 647 | // End epilogue. 648 | 649 | -------------------------------------------------------------------------------- /SCL_BaseSimpleTypes.hxx: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005-2010 Code Synthesis Tools CC 2 | // 3 | // This program was generated by CodeSynthesis XSD, an XML Schema to 4 | // C++ data binding compiler. 5 | // 6 | // This program is free software; you can redistribute it and/or modify 7 | // it under the terms of the GNU General Public License version 2 as 8 | // published by the Free Software Foundation. 9 | // 10 | // This program is distributed in the hope that it will be useful, 11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | // GNU General Public License for more details. 14 | // 15 | // You should have received a copy of the GNU General Public License 16 | // along with this program; if not, write to the Free Software 17 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | // 19 | // In addition, as a special exception, Code Synthesis Tools CC gives 20 | // permission to link this program with the Xerces-C++ library (or with 21 | // modified versions of Xerces-C++ that use the same license as Xerces-C++), 22 | // and distribute linked combinations including the two. You must obey 23 | // the GNU General Public License version 2 in all respects for all of 24 | // the code used other than Xerces-C++. If you modify this copy of the 25 | // program, you may extend this exception to your version of the program, 26 | // but you are not obligated to do so. If you do not wish to do so, delete 27 | // this exception statement from your version. 28 | // 29 | // Furthermore, Code Synthesis Tools CC makes a special exception for 30 | // the Free/Libre and Open Source Software (FLOSS) which is described 31 | // in the accompanying FLOSSE file. 32 | // 33 | 34 | #ifndef SCL_BASE_SIMPLE_TYPES_HXX 35 | #define SCL_BASE_SIMPLE_TYPES_HXX 36 | 37 | // Begin prologue. 38 | // 39 | // 40 | // End prologue. 41 | 42 | #include 43 | 44 | #if (XSD_INT_VERSION != 3030000L) 45 | #error XSD runtime version mismatch 46 | #endif 47 | 48 | #include 49 | 50 | #ifndef XSD_USE_CHAR 51 | #define XSD_USE_CHAR 52 | #endif 53 | 54 | #ifndef XSD_CXX_TREE_USE_CHAR 55 | #define XSD_CXX_TREE_USE_CHAR 56 | #endif 57 | 58 | #include 59 | 60 | #include 61 | #include 62 | #include 63 | 64 | #include 65 | 66 | #include 67 | 68 | #include 69 | #include 70 | #include 71 | #include 72 | #include 73 | #include 74 | #include 75 | #include 76 | #include 77 | #include 78 | #include 79 | #include 80 | #include 81 | 82 | namespace xml_schema 83 | { 84 | // anyType and anySimpleType. 85 | // 86 | typedef ::xsd::cxx::tree::type type; 87 | typedef ::xsd::cxx::tree::simple_type< type > simple_type; 88 | typedef ::xsd::cxx::tree::type container; 89 | 90 | // 8-bit 91 | // 92 | typedef signed char byte; 93 | typedef unsigned char unsigned_byte; 94 | 95 | // 16-bit 96 | // 97 | typedef short short_; 98 | typedef unsigned short unsigned_short; 99 | 100 | // 32-bit 101 | // 102 | typedef int int_; 103 | typedef unsigned int unsigned_int; 104 | 105 | // 64-bit 106 | // 107 | typedef long long long_; 108 | typedef unsigned long long unsigned_long; 109 | 110 | // Supposed to be arbitrary-length integral types. 111 | // 112 | typedef long long integer; 113 | typedef long long non_positive_integer; 114 | typedef unsigned long long non_negative_integer; 115 | typedef unsigned long long positive_integer; 116 | typedef long long negative_integer; 117 | 118 | // Boolean. 119 | // 120 | typedef bool boolean; 121 | 122 | // Floating-point types. 123 | // 124 | typedef float float_; 125 | typedef double double_; 126 | typedef double decimal; 127 | 128 | // String types. 129 | // 130 | typedef ::xsd::cxx::tree::string< char, simple_type > string; 131 | typedef ::xsd::cxx::tree::normalized_string< char, string > normalized_string; 132 | typedef ::xsd::cxx::tree::token< char, normalized_string > token; 133 | typedef ::xsd::cxx::tree::name< char, token > name; 134 | typedef ::xsd::cxx::tree::nmtoken< char, token > nmtoken; 135 | typedef ::xsd::cxx::tree::nmtokens< char, simple_type, nmtoken > nmtokens; 136 | typedef ::xsd::cxx::tree::ncname< char, name > ncname; 137 | typedef ::xsd::cxx::tree::language< char, token > language; 138 | 139 | // ID/IDREF. 140 | // 141 | typedef ::xsd::cxx::tree::id< char, ncname > id; 142 | typedef ::xsd::cxx::tree::idref< char, ncname, type > idref; 143 | typedef ::xsd::cxx::tree::idrefs< char, simple_type, idref > idrefs; 144 | 145 | // URI. 146 | // 147 | typedef ::xsd::cxx::tree::uri< char, simple_type > uri; 148 | 149 | // Qualified name. 150 | // 151 | typedef ::xsd::cxx::tree::qname< char, simple_type, uri, ncname > qname; 152 | 153 | // Binary. 154 | // 155 | typedef ::xsd::cxx::tree::buffer< char > buffer; 156 | typedef ::xsd::cxx::tree::base64_binary< char, simple_type > base64_binary; 157 | typedef ::xsd::cxx::tree::hex_binary< char, simple_type > hex_binary; 158 | 159 | // Date/time. 160 | // 161 | typedef ::xsd::cxx::tree::time_zone time_zone; 162 | typedef ::xsd::cxx::tree::date< char, simple_type > date; 163 | typedef ::xsd::cxx::tree::date_time< char, simple_type > date_time; 164 | typedef ::xsd::cxx::tree::duration< char, simple_type > duration; 165 | typedef ::xsd::cxx::tree::gday< char, simple_type > gday; 166 | typedef ::xsd::cxx::tree::gmonth< char, simple_type > gmonth; 167 | typedef ::xsd::cxx::tree::gmonth_day< char, simple_type > gmonth_day; 168 | typedef ::xsd::cxx::tree::gyear< char, simple_type > gyear; 169 | typedef ::xsd::cxx::tree::gyear_month< char, simple_type > gyear_month; 170 | typedef ::xsd::cxx::tree::time< char, simple_type > time; 171 | 172 | // Entity. 173 | // 174 | typedef ::xsd::cxx::tree::entity< char, ncname > entity; 175 | typedef ::xsd::cxx::tree::entities< char, simple_type, entity > entities; 176 | 177 | // Flags and properties. 178 | // 179 | typedef ::xsd::cxx::tree::flags flags; 180 | typedef ::xsd::cxx::tree::properties< char > properties; 181 | 182 | // Parsing/serialization diagnostics. 183 | // 184 | typedef ::xsd::cxx::tree::severity severity; 185 | typedef ::xsd::cxx::tree::error< char > error; 186 | typedef ::xsd::cxx::tree::diagnostics< char > diagnostics; 187 | 188 | // Exceptions. 189 | // 190 | typedef ::xsd::cxx::tree::exception< char > exception; 191 | typedef ::xsd::cxx::tree::bounds< char > bounds; 192 | typedef ::xsd::cxx::tree::duplicate_id< char > duplicate_id; 193 | typedef ::xsd::cxx::tree::parsing< char > parsing; 194 | typedef ::xsd::cxx::tree::expected_element< char > expected_element; 195 | typedef ::xsd::cxx::tree::unexpected_element< char > unexpected_element; 196 | typedef ::xsd::cxx::tree::expected_attribute< char > expected_attribute; 197 | typedef ::xsd::cxx::tree::unexpected_enumerator< char > unexpected_enumerator; 198 | typedef ::xsd::cxx::tree::expected_text_content< char > expected_text_content; 199 | typedef ::xsd::cxx::tree::no_prefix_mapping< char > no_prefix_mapping; 200 | 201 | // Error handler callback interface. 202 | // 203 | typedef ::xsd::cxx::xml::error_handler< char > error_handler; 204 | 205 | // DOM interaction. 206 | // 207 | namespace dom 208 | { 209 | // Automatic pointer for DOMDocument. 210 | // 211 | using ::xsd::cxx::xml::dom::auto_ptr; 212 | 213 | #ifndef XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA 214 | #define XSD_CXX_TREE_TREE_NODE_KEY__XML_SCHEMA 215 | // DOM user data key for back pointers to tree nodes. 216 | // 217 | const XMLCh* const tree_node_key = ::xsd::cxx::tree::user_data_keys::node; 218 | #endif 219 | } 220 | } 221 | 222 | // Forward declarations. 223 | // 224 | namespace SCL 225 | { 226 | class tRef; 227 | class tAnyName; 228 | class tName; 229 | class tRestrName; 230 | class tRestrLdName; 231 | class tRestrName1stU; 232 | class tRestrName1stL; 233 | class tPAddr; 234 | } 235 | 236 | 237 | #include // std::auto_ptr 238 | #include // std::numeric_limits 239 | #include // std::binary_search 240 | 241 | #include 242 | 243 | #include 244 | #include 245 | #include 246 | #include 247 | 248 | #include 249 | 250 | namespace SCL 251 | { 252 | class tRef: public ::xml_schema::normalized_string 253 | { 254 | public: 255 | // Constructors. 256 | // 257 | tRef (); 258 | 259 | tRef (const char*); 260 | 261 | tRef (const ::std::string&); 262 | 263 | tRef (const ::xml_schema::normalized_string&); 264 | 265 | tRef (const ::xercesc::DOMElement& e, 266 | ::xml_schema::flags f = 0, 267 | ::xml_schema::container* c = 0); 268 | 269 | tRef (const ::xercesc::DOMAttr& a, 270 | ::xml_schema::flags f = 0, 271 | ::xml_schema::container* c = 0); 272 | 273 | tRef (const ::std::string& s, 274 | const ::xercesc::DOMElement* e, 275 | ::xml_schema::flags f = 0, 276 | ::xml_schema::container* c = 0); 277 | 278 | tRef (const tRef& x, 279 | ::xml_schema::flags f = 0, 280 | ::xml_schema::container* c = 0); 281 | 282 | virtual tRef* 283 | _clone (::xml_schema::flags f = 0, 284 | ::xml_schema::container* c = 0) const; 285 | 286 | virtual 287 | ~tRef (); 288 | }; 289 | 290 | class tAnyName: public ::xml_schema::normalized_string 291 | { 292 | public: 293 | // Constructors. 294 | // 295 | tAnyName (); 296 | 297 | tAnyName (const char*); 298 | 299 | tAnyName (const ::std::string&); 300 | 301 | tAnyName (const ::xml_schema::normalized_string&); 302 | 303 | tAnyName (const ::xercesc::DOMElement& e, 304 | ::xml_schema::flags f = 0, 305 | ::xml_schema::container* c = 0); 306 | 307 | tAnyName (const ::xercesc::DOMAttr& a, 308 | ::xml_schema::flags f = 0, 309 | ::xml_schema::container* c = 0); 310 | 311 | tAnyName (const ::std::string& s, 312 | const ::xercesc::DOMElement* e, 313 | ::xml_schema::flags f = 0, 314 | ::xml_schema::container* c = 0); 315 | 316 | tAnyName (const tAnyName& x, 317 | ::xml_schema::flags f = 0, 318 | ::xml_schema::container* c = 0); 319 | 320 | virtual tAnyName* 321 | _clone (::xml_schema::flags f = 0, 322 | ::xml_schema::container* c = 0) const; 323 | 324 | virtual 325 | ~tAnyName (); 326 | }; 327 | 328 | class tName: public ::SCL::tAnyName 329 | { 330 | public: 331 | // Constructors. 332 | // 333 | tName (); 334 | 335 | tName (const char*); 336 | 337 | tName (const ::std::string&); 338 | 339 | tName (const ::xml_schema::normalized_string&); 340 | 341 | tName (const ::xercesc::DOMElement& e, 342 | ::xml_schema::flags f = 0, 343 | ::xml_schema::container* c = 0); 344 | 345 | tName (const ::xercesc::DOMAttr& a, 346 | ::xml_schema::flags f = 0, 347 | ::xml_schema::container* c = 0); 348 | 349 | tName (const ::std::string& s, 350 | const ::xercesc::DOMElement* e, 351 | ::xml_schema::flags f = 0, 352 | ::xml_schema::container* c = 0); 353 | 354 | tName (const tName& x, 355 | ::xml_schema::flags f = 0, 356 | ::xml_schema::container* c = 0); 357 | 358 | virtual tName* 359 | _clone (::xml_schema::flags f = 0, 360 | ::xml_schema::container* c = 0) const; 361 | 362 | virtual 363 | ~tName (); 364 | }; 365 | 366 | class tRestrName: public ::xml_schema::name 367 | { 368 | public: 369 | // Constructors. 370 | // 371 | tRestrName (const char*); 372 | 373 | tRestrName (const ::std::string&); 374 | 375 | tRestrName (const ::xml_schema::name&); 376 | 377 | tRestrName (const ::xercesc::DOMElement& e, 378 | ::xml_schema::flags f = 0, 379 | ::xml_schema::container* c = 0); 380 | 381 | tRestrName (const ::xercesc::DOMAttr& a, 382 | ::xml_schema::flags f = 0, 383 | ::xml_schema::container* c = 0); 384 | 385 | tRestrName (const ::std::string& s, 386 | const ::xercesc::DOMElement* e, 387 | ::xml_schema::flags f = 0, 388 | ::xml_schema::container* c = 0); 389 | 390 | tRestrName (const tRestrName& x, 391 | ::xml_schema::flags f = 0, 392 | ::xml_schema::container* c = 0); 393 | 394 | virtual tRestrName* 395 | _clone (::xml_schema::flags f = 0, 396 | ::xml_schema::container* c = 0) const; 397 | 398 | virtual 399 | ~tRestrName (); 400 | }; 401 | 402 | class tRestrLdName: public ::xml_schema::name 403 | { 404 | public: 405 | // Constructors. 406 | // 407 | tRestrLdName (const char*); 408 | 409 | tRestrLdName (const ::std::string&); 410 | 411 | tRestrLdName (const ::xml_schema::name&); 412 | 413 | tRestrLdName (const ::xercesc::DOMElement& e, 414 | ::xml_schema::flags f = 0, 415 | ::xml_schema::container* c = 0); 416 | 417 | tRestrLdName (const ::xercesc::DOMAttr& a, 418 | ::xml_schema::flags f = 0, 419 | ::xml_schema::container* c = 0); 420 | 421 | tRestrLdName (const ::std::string& s, 422 | const ::xercesc::DOMElement* e, 423 | ::xml_schema::flags f = 0, 424 | ::xml_schema::container* c = 0); 425 | 426 | tRestrLdName (const tRestrLdName& x, 427 | ::xml_schema::flags f = 0, 428 | ::xml_schema::container* c = 0); 429 | 430 | virtual tRestrLdName* 431 | _clone (::xml_schema::flags f = 0, 432 | ::xml_schema::container* c = 0) const; 433 | 434 | virtual 435 | ~tRestrLdName (); 436 | }; 437 | 438 | class tRestrName1stU: public ::xml_schema::name 439 | { 440 | public: 441 | // Constructors. 442 | // 443 | tRestrName1stU (const char*); 444 | 445 | tRestrName1stU (const ::std::string&); 446 | 447 | tRestrName1stU (const ::xml_schema::name&); 448 | 449 | tRestrName1stU (const ::xercesc::DOMElement& e, 450 | ::xml_schema::flags f = 0, 451 | ::xml_schema::container* c = 0); 452 | 453 | tRestrName1stU (const ::xercesc::DOMAttr& a, 454 | ::xml_schema::flags f = 0, 455 | ::xml_schema::container* c = 0); 456 | 457 | tRestrName1stU (const ::std::string& s, 458 | const ::xercesc::DOMElement* e, 459 | ::xml_schema::flags f = 0, 460 | ::xml_schema::container* c = 0); 461 | 462 | tRestrName1stU (const tRestrName1stU& x, 463 | ::xml_schema::flags f = 0, 464 | ::xml_schema::container* c = 0); 465 | 466 | virtual tRestrName1stU* 467 | _clone (::xml_schema::flags f = 0, 468 | ::xml_schema::container* c = 0) const; 469 | 470 | virtual 471 | ~tRestrName1stU (); 472 | }; 473 | 474 | class tRestrName1stL: public ::xml_schema::name 475 | { 476 | public: 477 | // Constructors. 478 | // 479 | tRestrName1stL (const char*); 480 | 481 | tRestrName1stL (const ::std::string&); 482 | 483 | tRestrName1stL (const ::xml_schema::name&); 484 | 485 | tRestrName1stL (const ::xercesc::DOMElement& e, 486 | ::xml_schema::flags f = 0, 487 | ::xml_schema::container* c = 0); 488 | 489 | tRestrName1stL (const ::xercesc::DOMAttr& a, 490 | ::xml_schema::flags f = 0, 491 | ::xml_schema::container* c = 0); 492 | 493 | tRestrName1stL (const ::std::string& s, 494 | const ::xercesc::DOMElement* e, 495 | ::xml_schema::flags f = 0, 496 | ::xml_schema::container* c = 0); 497 | 498 | tRestrName1stL (const tRestrName1stL& x, 499 | ::xml_schema::flags f = 0, 500 | ::xml_schema::container* c = 0); 501 | 502 | virtual tRestrName1stL* 503 | _clone (::xml_schema::flags f = 0, 504 | ::xml_schema::container* c = 0) const; 505 | 506 | virtual 507 | ~tRestrName1stL (); 508 | }; 509 | 510 | class tPAddr: public ::xml_schema::normalized_string 511 | { 512 | public: 513 | // Constructors. 514 | // 515 | tPAddr (); 516 | 517 | tPAddr (const char*); 518 | 519 | tPAddr (const ::std::string&); 520 | 521 | tPAddr (const ::xml_schema::normalized_string&); 522 | 523 | tPAddr (const ::xercesc::DOMElement& e, 524 | ::xml_schema::flags f = 0, 525 | ::xml_schema::container* c = 0); 526 | 527 | tPAddr (const ::xercesc::DOMAttr& a, 528 | ::xml_schema::flags f = 0, 529 | ::xml_schema::container* c = 0); 530 | 531 | tPAddr (const ::std::string& s, 532 | const ::xercesc::DOMElement* e, 533 | ::xml_schema::flags f = 0, 534 | ::xml_schema::container* c = 0); 535 | 536 | tPAddr (const tPAddr& x, 537 | ::xml_schema::flags f = 0, 538 | ::xml_schema::container* c = 0); 539 | 540 | virtual tPAddr* 541 | _clone (::xml_schema::flags f = 0, 542 | ::xml_schema::container* c = 0) const; 543 | 544 | virtual 545 | ~tPAddr (); 546 | }; 547 | } 548 | 549 | #include 550 | 551 | #include 552 | #include 553 | #include 554 | 555 | namespace SCL 556 | { 557 | } 558 | 559 | #include 560 | 561 | // Begin epilogue. 562 | // 563 | // 564 | // End epilogue. 565 | 566 | #endif // SCL_BASE_SIMPLE_TYPES_HXX 567 | -------------------------------------------------------------------------------- /SCL_Bind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trevisan/SCL_Bind/b58b790e6cfa2be7a61f80059bbbce6768b0513e/SCL_Bind -------------------------------------------------------------------------------- /SCL_Bind.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2011-07-18T23:16:58 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core 8 | 9 | QT -= gui 10 | 11 | TARGET = SCL_Bind 12 | CONFIG += console 13 | CONFIG -= app_bundle 14 | 15 | TEMPLATE = app 16 | 17 | 18 | SOURCES += main.cpp \ 19 | SCL_Substation.cxx \ 20 | SCL_IED.cxx \ 21 | SCL_Enums.cxx \ 22 | SCL_DataTypeTemplates.cxx \ 23 | SCL_Communication.cxx \ 24 | SCL_BaseTypes.cxx \ 25 | SCL_BaseSimpleTypes.cxx \ 26 | SCL.cxx 27 | 28 | HEADERS += \ 29 | SCL_Substation.hxx \ 30 | SCL_IED.hxx \ 31 | SCL_Enums.hxx \ 32 | SCL_DataTypeTemplates.hxx \ 33 | SCL_Communication.hxx \ 34 | SCL_BaseTypes.hxx \ 35 | SCL_BaseSimpleTypes.hxx \ 36 | SCL.hxx 37 | 38 | LIBS +=-L/usr/lib \ 39 | -lxerces-c 40 | 41 | INCLUDEPATH += /usr/include/xsd/ 42 | -------------------------------------------------------------------------------- /SCL_Bind.pro.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ProjectExplorer.Project.ActiveTarget 5 | 0 6 | 7 | 8 | ProjectExplorer.Project.EditorSettings 9 | 10 | true 11 | false 12 | System 13 | false 14 | false 15 | 4 16 | true 17 | 1 18 | true 19 | false 20 | true 21 | 0 22 | 8 23 | true 24 | 1 25 | true 26 | true 27 | true 28 | false 29 | 30 | 31 | 32 | ProjectExplorer.Project.Target.0 33 | 34 | Desktop 35 | Desktop 36 | Qt4ProjectManager.Target.DesktopTarget 37 | 0 38 | 0 39 | 0 40 | 41 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 42 | 43 | 44 | qmake 45 | qmake 46 | QtProjectManager.QMakeBuildStep 47 | false 48 | 49 | false 50 | 51 | 52 | Make 53 | Make 54 | Qt4ProjectManager.MakeStep 55 | false 56 | 57 | 58 | 59 | 2 60 | Build 61 | Build 62 | ProjectExplorer.BuildSteps.Build 63 | 64 | 65 | 66 | Make 67 | Make 68 | Qt4ProjectManager.MakeStep 69 | true 70 | clean 71 | 72 | 73 | 1 74 | Clean 75 | Clean 76 | ProjectExplorer.BuildSteps.Clean 77 | 78 | 2 79 | false 80 | 81 | Qt 4.7.0 OpenSource Debug 82 | Qt 4.7.0 OpenSource Debug 83 | Qt4ProjectManager.Qt4BuildConfiguration 84 | 2 85 | /home/trevisan/Projects/SCL_Bind-build-desktop 86 | 2 87 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 88 | true 89 | 90 | 91 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 92 | 93 | 94 | qmake 95 | qmake 96 | QtProjectManager.QMakeBuildStep 97 | false 98 | 99 | false 100 | 101 | 102 | Make 103 | Make 104 | Qt4ProjectManager.MakeStep 105 | false 106 | 107 | 108 | 109 | 2 110 | Build 111 | Build 112 | ProjectExplorer.BuildSteps.Build 113 | 114 | 115 | 116 | Make 117 | Make 118 | Qt4ProjectManager.MakeStep 119 | true 120 | clean 121 | 122 | 123 | 1 124 | Clean 125 | Clean 126 | ProjectExplorer.BuildSteps.Clean 127 | 128 | 2 129 | false 130 | 131 | Qt 4.7.0 OpenSource Release 132 | Qt 4.7.0 OpenSource Release 133 | Qt4ProjectManager.Qt4BuildConfiguration 134 | 0 135 | /home/trevisan/Projects/SCL_Bind-build-desktop 136 | 2 137 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 138 | true 139 | 140 | 141 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 142 | 143 | 144 | qmake 145 | qmake 146 | QtProjectManager.QMakeBuildStep 147 | false 148 | 149 | false 150 | 151 | 152 | Make 153 | Make 154 | Qt4ProjectManager.MakeStep 155 | false 156 | 157 | 158 | 159 | 2 160 | Build 161 | Build 162 | ProjectExplorer.BuildSteps.Build 163 | 164 | 165 | 166 | Make 167 | Make 168 | Qt4ProjectManager.MakeStep 169 | true 170 | clean 171 | 172 | 173 | 1 174 | Clean 175 | Clean 176 | ProjectExplorer.BuildSteps.Clean 177 | 178 | 2 179 | false 180 | 181 | Qt in PATH Debug 182 | Qt in PATH Debug 183 | Qt4ProjectManager.Qt4BuildConfiguration 184 | 2 185 | /home/trevisan/Projects/SCL_Bind-build-desktop 186 | 3 187 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 188 | true 189 | 190 | 191 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 192 | 193 | 194 | qmake 195 | qmake 196 | QtProjectManager.QMakeBuildStep 197 | false 198 | 199 | false 200 | 201 | 202 | Make 203 | Make 204 | Qt4ProjectManager.MakeStep 205 | false 206 | 207 | 208 | 209 | 2 210 | Build 211 | Build 212 | ProjectExplorer.BuildSteps.Build 213 | 214 | 215 | 216 | Make 217 | Make 218 | Qt4ProjectManager.MakeStep 219 | true 220 | clean 221 | 222 | 223 | 1 224 | Clean 225 | Clean 226 | ProjectExplorer.BuildSteps.Clean 227 | 228 | 2 229 | false 230 | 231 | Qt in PATH Release 232 | Qt in PATH Release 233 | Qt4ProjectManager.Qt4BuildConfiguration 234 | 0 235 | /home/trevisan/Projects/SCL_Bind-build-desktop 236 | 3 237 | ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-32bit. 238 | true 239 | 240 | 4 241 | 242 | 243 | 0 244 | Deploy 245 | Deploy 246 | ProjectExplorer.BuildSteps.Deploy 247 | 248 | 1 249 | No deployment 250 | No deployment 251 | ProjectExplorer.DefaultDeployConfiguration 252 | 253 | 1 254 | 255 | 256 | true 257 | 25 258 | 259 | true 260 | valgrind 261 | 262 | 0 263 | 1 264 | 2 265 | 3 266 | 4 267 | 5 268 | 6 269 | 7 270 | 8 271 | 9 272 | 10 273 | 11 274 | 12 275 | 13 276 | 14 277 | 278 | Qt4 RunConfiguration 279 | SCL_Bind 280 | Qt4ProjectManager.Qt4RunConfiguration 281 | 2 282 | 283 | SCL_Bind.pro 284 | false 285 | false 286 | 287 | 288 | 3768 289 | true 290 | false 291 | 292 | 1 293 | 294 | 295 | 296 | ProjectExplorer.Project.TargetCount 297 | 1 298 | 299 | 300 | ProjectExplorer.Project.Updater.EnvironmentId 301 | {bc88c4cc-2853-4345-9a68-e429f2053e08} 302 | 303 | 304 | ProjectExplorer.Project.Updater.FileVersion 305 | 9 306 | 307 | 308 | -------------------------------------------------------------------------------- /SCL_Bind.pro.user.2.1pre1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ProjectExplorer.Project.ActiveTarget 5 | 0 6 | 7 | 8 | ProjectExplorer.Project.EditorSettings 9 | 10 | System 11 | 12 | 13 | 14 | ProjectExplorer.Project.Target.0 15 | 16 | Desktop 17 | Qt4ProjectManager.Target.DesktopTarget 18 | 0 19 | 0 20 | 21 | 22 | qmake 23 | QtProjectManager.QMakeBuildStep 24 | 25 | 26 | 27 | Make 28 | Qt4ProjectManager.MakeStep 29 | false 30 | 31 | 32 | 33 | 2 34 | 35 | Make 36 | Qt4ProjectManager.MakeStep 37 | true 38 | 39 | clean 40 | 41 | 42 | 43 | 1 44 | false 45 | 46 | Qt 4.7.0 OpenSource Debug 47 | Qt4ProjectManager.Qt4BuildConfiguration 48 | 2 49 | /home/trevisan/Projects/SCL_Bind-build-desktop 50 | 2 51 | 0 52 | true 53 | 54 | 55 | 56 | qmake 57 | QtProjectManager.QMakeBuildStep 58 | 59 | 60 | 61 | Make 62 | Qt4ProjectManager.MakeStep 63 | false 64 | 65 | 66 | 67 | 2 68 | 69 | Make 70 | Qt4ProjectManager.MakeStep 71 | true 72 | 73 | clean 74 | 75 | 76 | 77 | 1 78 | false 79 | 80 | Qt 4.7.0 OpenSource Release 81 | Qt4ProjectManager.Qt4BuildConfiguration 82 | 0 83 | /home/trevisan/Projects/SCL_Bind-build-desktop 84 | 2 85 | 0 86 | true 87 | 88 | 89 | 90 | qmake 91 | QtProjectManager.QMakeBuildStep 92 | 93 | 94 | 95 | Make 96 | Qt4ProjectManager.MakeStep 97 | false 98 | 99 | 100 | 101 | 2 102 | 103 | Make 104 | Qt4ProjectManager.MakeStep 105 | true 106 | 107 | clean 108 | 109 | 110 | 111 | 1 112 | false 113 | 114 | Qt in PATH Debug 115 | Qt4ProjectManager.Qt4BuildConfiguration 116 | 2 117 | /home/trevisan/Projects/SCL_Bind-build-desktop 118 | 3 119 | 0 120 | true 121 | 122 | 123 | 124 | qmake 125 | QtProjectManager.QMakeBuildStep 126 | 127 | 128 | 129 | Make 130 | Qt4ProjectManager.MakeStep 131 | false 132 | 133 | 134 | 135 | 2 136 | 137 | Make 138 | Qt4ProjectManager.MakeStep 139 | true 140 | 141 | clean 142 | 143 | 144 | 145 | 1 146 | false 147 | 148 | Qt in PATH Release 149 | Qt4ProjectManager.Qt4BuildConfiguration 150 | 0 151 | /home/trevisan/Projects/SCL_Bind-build-desktop 152 | 3 153 | 0 154 | true 155 | 156 | 4 157 | 158 | SCL_Bind 159 | Qt4ProjectManager.Qt4RunConfiguration 160 | 2 161 | 162 | SCL_Bind.pro 163 | false 164 | false 165 | 166 | false 167 | false 168 | 169 | 170 | 1 171 | 172 | 173 | 174 | ProjectExplorer.Project.TargetCount 175 | 1 176 | 177 | 178 | ProjectExplorer.Project.Updater.FileVersion 179 | 4 180 | 181 | 182 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | int main(int argc, char *argv[]) 8 | { 9 | 10 | // Get file_name from command line argument 11 | string* file_name; 12 | 13 | if (argc != 2) 14 | { 15 | cout << "Error: wrong number of arguments!" << endl; 16 | cout << "Enter 'scl_bind scl_filename' " << endl; 17 | return 1; 18 | } 19 | else 20 | { 21 | file_name = new string(argv[1]); 22 | cout << "==================" << endl; 23 | cout << " SCL_Bind" << endl; 24 | cout << "==================" << endl; 25 | 26 | } 27 | 28 | 29 | try 30 | { 31 | // Instantiate a SCL object from XML file 32 | auto_ptr scl (SCL::SCL_(*file_name, xml_schema::flags::dont_validate)); 33 | 34 | cout << scl->Header().id() << endl; 35 | cout << scl->Header().nameStructure() << endl; 36 | 37 | // iterate over all IEDs ( elements) and print out some information about them 38 | for (SCL::SCL::IED_const_iterator i (scl->IED().begin()); i != scl->IED().end(); i++ ) { 39 | 40 | cout << "----------------" << endl; 41 | cout << " name: " << ((SCL::tIED)*i).name() << endl; 42 | cout << " manufacturer:" << ((SCL::tIED)*i).manufacturer() << endl; 43 | cout << " desc: " << ((SCL::tIED)*i).desc() << endl; 44 | cout << " type: " << ((SCL::tIED)*i).type() << endl; 45 | } 46 | } 47 | catch (const xml_schema::exception& e) 48 | { 49 | cerr << e << endl; 50 | return 1; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /scl_files/teste.scd: -------------------------------------------------------------------------------- 1 | 2 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 220 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 132 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | Station bus 132 | 10 133 | 134 |
135 |

10.0.0.11

136 |

255.255.255.0

137 |

10.0.0.101

138 |

00000001

139 |

01

140 |

01

141 |
142 | 143 |
144 |

01-0C-CD-01-00-02

145 |

3001

146 |

4

147 |
148 |
149 | 150 |

FOC

151 |

ST

152 |
153 |
154 | 155 |
156 |

10.0.0.1

157 |

255.255.255.0

158 |

10.0.0.101

159 |

00000001

160 |

01

161 |

01

162 |
163 | 164 |
165 |

01-0C-CD-01-00-01

166 |

3000

167 |

4

168 |
169 |
170 | 171 |
172 |

01-0C-CD-04-00-01

173 |

4000

174 |

123

175 |

4

176 |
177 |
178 |
179 | 180 |
181 |

10.0.0.2

182 |

255.255.255.0

183 |

10.0.0.101

184 |

00000001

185 |

01

186 |

01

187 |
188 |
189 | 190 |
191 |

10.0.0.3

192 |

255.255.255.0

193 |

10.0.0.101

194 |

00000001

195 |

01

196 |

01

197 |
198 |
199 |
200 |
201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | false 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 10 271 | 272 | 273 | 200 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | false 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | IEC61850-7-4:2003 420 | 421 | 422 | Rev 3.45 423 | 424 | 425 | 426 | 427 | myVendorName 428 | 429 | 430 | Rev 1.23 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | unknown 478 | forward 479 | backward 480 | both 481 | 482 | 483 | pos-neg-zero 484 | dir-quad-zero 485 | 486 | 487 | intermediate 488 | off 489 | on 490 | bad 491 | 492 | 493 | stop 494 | lower 495 | higher 496 | reserved 497 | 498 | 499 | on 500 | blocked 501 | test 502 | test/blocked 503 | off 504 | 505 | 506 | on 507 | blocked 508 | test 509 | test/blocked 510 | off 511 | 512 | 513 | Ok 514 | Warning 515 | Alarm 516 | 517 | 518 | 519 | -------------------------------------------------------------------------------- /xsd/SCL.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /xsd/SCL_BaseSimpleTypes.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /xsd/SCL_BaseTypes.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /xsd/SCL_Communication.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | -------------------------------------------------------------------------------- /xsd/SCL_DataTypeTemplates.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /xsd/SCL_Enums.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | -------------------------------------------------------------------------------- /xsd/SCL_IED.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 596 | 597 | 598 | -------------------------------------------------------------------------------- /xsd/SCL_Substation.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | --------------------------------------------------------------------------------