CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Problem z kreatorem komponentu XMLDocument

Problem z kreatorem komponentu XMLDocument

dział ogólny

Problem z kreatorem komponentu XMLDocument

Nowy postprzez Yari27 » czwartek, 12 maja 2016, 21:20

Gdy korzystam z kreatora XML Data Binding Wizard zawsze na końcu wyskakuje mi błąd


Format '#define TargetNamespace "%s"' invalid or incompatible with argument.



i jest generowany tylko plik .cpp
Czym jest spowodowany ten błąd?

Używam na razie tego pliku do generowania metod:
► 
Avatar użytkownika
Yari27
Bladawiec
Bladawiec
 
Posty: 23
Dołączył(a): niedziela, 19 lipca 2015, 20:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 7 64bit
Kompilator: C++ Builder XE2 Update4
Gadu Gadu: 10382601
    Windows 7Chrome

Re: Problem z kreatorem komponentu XMLDocument

Nowy postprzez Cyfrowy Baron » czwartek, 12 maja 2016, 23:16

Sprawdziłem to w oparciu o twój plik XML i u mnie generowanie przebiega prawidłowo w C++Builder XE2 - generowane są pliki *.XDB *.CPP i *.H. Z tym, że ja mam środowisko z Update 4. Może bez tej poprawki środowisko zawiera jakieś błędy w tej mierze.

Zawartość pliku CPP:
KOD cpp:     UKRYJ  
// ********************************************************************** //
//                                                                      
//                           XML Data Binding                          
//                                                                      
//         Generated on: 2016-05-12 23:15:46                            
//       Generated from: D:\Embarcadero_Project_XE2\Medieval\test.xml  
//   Settings stored in: D:\Embarcadero_Project_XE2\Medieval\test.xdb  
//                                                                      
// ********************************************************************** //

#include <vcl.h>
#pragma hdrstop

#include "test.h"


// Global Functions

_di_IXMLvideosType __fastcall Getvideos(_di_IXMLDocument Doc)
{
  return (_di_IXMLvideosType) Doc->GetDocBinding("videos", __classid(TXMLvideosType), TargetNamespace);
};

_di_IXMLvideosType __fastcall Getvideos(TXMLDocument *Doc)
{
  _di_IXMLDocument DocIntf;
  Doc->GetInterface(DocIntf);
  return Getvideos(DocIntf);
};

_di_IXMLvideosType __fastcall Loadvideos(const UnicodeString& FileName)
{
  return (_di_IXMLvideosType) LoadXMLDocument(FileName)->GetDocBinding("videos", __classid(TXMLvideosType), TargetNamespace);
};

_di_IXMLvideosType __fastcall  Newvideos()
{
  return (_di_IXMLvideosType) NewXMLDocument()->GetDocBinding("videos", __classid(TXMLvideosType), TargetNamespace);
};

// TXMLvideosType

void __fastcall TXMLvideosType::AfterConstruction(void)
{
  RegisterChildNode(UnicodeString("video"), __classid(TXMLvideoType));
  ItemTag = "video";
  ItemInterface = __uuidof(IXMLvideoType);
  TXMLNodeCollection::AfterConstruction();
};

_di_IXMLvideoType __fastcall TXMLvideosType::Get_video(int Index)
{
  return (_di_IXMLvideoType) TXMLNodeCollection::List->Nodes[Index];
};

_di_IXMLvideoType __fastcall TXMLvideosType::Add()
{
  return (_di_IXMLvideoType) AddItem(-1);
};

_di_IXMLvideoType __fastcall TXMLvideosType::Insert(const int Index)
{
  return (_di_IXMLvideoType) AddItem(Index);
};

// TXMLvideoType

UnicodeString __fastcall TXMLvideoType::Get_title()
{
  return TXMLNode::ChildNodes->Nodes[UnicodeString("title")]->Text;
};

void __fastcall TXMLvideoType::Set_title(UnicodeString Value)
{
  TXMLNode::ChildNodes->Nodes[UnicodeString("title")]->NodeValue = Value;
};

UnicodeString __fastcall TXMLvideoType::Get_director()
{
  return TXMLNode::ChildNodes->Nodes[UnicodeString("director")]->Text;
};

void __fastcall TXMLvideoType::Set_director(UnicodeString Value)
{
  TXMLNode::ChildNodes->Nodes[UnicodeString("director")]->NodeValue = Value;
};

UnicodeString __fastcall TXMLvideoType::Get_length()
{
  return TXMLNode::ChildNodes->Nodes[UnicodeString("length")]->Text;
};

void __fastcall TXMLvideoType::Set_length(UnicodeString Value)
{
  TXMLNode::ChildNodes->Nodes[UnicodeString("length")]->NodeValue = Value;
};

UnicodeString __fastcall TXMLvideoType::Get_format()
{
  return TXMLNode::ChildNodes->Nodes[UnicodeString("format")]->Text;
};

void __fastcall TXMLvideoType::Set_format(UnicodeString Value)
{
  TXMLNode::ChildNodes->Nodes[UnicodeString("format")]->NodeValue = Value;
};

UnicodeString __fastcall TXMLvideoType::Get_rating()
{
  return TXMLNode::ChildNodes->Nodes[UnicodeString("rating")]->Text;
};

void __fastcall TXMLvideoType::Set_rating(UnicodeString Value)
{
  TXMLNode::ChildNodes->Nodes[UnicodeString("rating")]->NodeValue = Value;
};


Zawartość pliku H:
KOD cpp:     UKRYJ  
// ********************************************************************** //
//                                                                      
//                           XML Data Binding                          
//                                                                      
//         Generated on: 2016-05-12 23:15:46                            
//       Generated from: D:\Embarcadero_Project_XE2\Medieval\test.xml  
//   Settings stored in: D:\Embarcadero_Project_XE2\Medieval\test.xdb  
//                                                                      
// ********************************************************************** //

#ifndef   testH
#define   testH

#include <System.hpp>
#include <xmldom.hpp>
#include <XMLDoc.hpp>
#include <XMLIntf.hpp>
#include <XMLNodeImp.h>


// Forward Decls

__interface IXMLvideosType;
typedef System::DelphiInterface<IXMLvideosType> _di_IXMLvideosType;
__interface IXMLvideoType;
typedef System::DelphiInterface<IXMLvideoType> _di_IXMLvideoType;

// IXMLvideosType

__interface INTERFACE_UUID("{98BC07CF-2734-4B1A-A097-4520B614FA01}") IXMLvideosType : public IXMLNodeCollection
{
public:
public:
  // Property Accessors
  virtual _di_IXMLvideoType __fastcall Get_video(int Index) = 0;
  // Methods & Properties
  virtual _di_IXMLvideoType __fastcall Add() = 0;
  virtual _di_IXMLvideoType __fastcall Insert(const int Index) = 0;
  __property _di_IXMLvideoType video[int Index] = { read=Get_video };/* default */
};

// IXMLvideoType

__interface INTERFACE_UUID("{A4015739-B0A0-444A-B15C-7A29783D5384}") IXMLvideoType : public IXMLNode
{
public:
  // Property Accessors
  virtual UnicodeString __fastcall Get_title() = 0;
  virtual UnicodeString __fastcall Get_director() = 0;
  virtual UnicodeString __fastcall Get_length() = 0;
  virtual UnicodeString __fastcall Get_format() = 0;
  virtual UnicodeString __fastcall Get_rating() = 0;
  virtual void __fastcall Set_title(UnicodeString Value) = 0;
  virtual void __fastcall Set_director(UnicodeString Value) = 0;
  virtual void __fastcall Set_length(UnicodeString Value) = 0;
  virtual void __fastcall Set_format(UnicodeString Value) = 0;
  virtual void __fastcall Set_rating(UnicodeString Value) = 0;
  // Methods & Properties
  __property UnicodeString title = { read=Get_title, write=Set_title };
  __property UnicodeString director = { read=Get_director, write=Set_director };
  __property UnicodeString length = { read=Get_length, write=Set_length };
  __property UnicodeString format = { read=Get_format, write=Set_format };
  __property UnicodeString rating = { read=Get_rating, write=Set_rating };
};

// Forward Decls

class TXMLvideosType;
class TXMLvideoType;

// TXMLvideosType

class TXMLvideosType : public TXMLNodeCollection, public IXMLvideosType
{
  __IXMLNODECOLLECTION_IMPL__
protected:
  // IXMLvideosType
  virtual _di_IXMLvideoType __fastcall Get_video(int Index);
  virtual _di_IXMLvideoType __fastcall Add();
  virtual _di_IXMLvideoType __fastcall Insert(const int Index);
public:
  virtual void __fastcall AfterConstruction(void);
};

// TXMLvideoType

class TXMLvideoType : public TXMLNode, public IXMLvideoType
{
  __IXMLNODE_IMPL__
protected:
  // IXMLvideoType
  virtual UnicodeString __fastcall Get_title();
  virtual UnicodeString __fastcall Get_director();
  virtual UnicodeString __fastcall Get_length();
  virtual UnicodeString __fastcall Get_format();
  virtual UnicodeString __fastcall Get_rating();
  virtual void __fastcall Set_title(UnicodeString Value);
  virtual void __fastcall Set_director(UnicodeString Value);
  virtual void __fastcall Set_length(UnicodeString Value);
  virtual void __fastcall Set_format(UnicodeString Value);
  virtual void __fastcall Set_rating(UnicodeString Value);
};

// Global Functions

_di_IXMLvideosType __fastcall Getvideos(_di_IXMLDocument Doc);
_di_IXMLvideosType __fastcall Getvideos(TXMLDocument *Doc);
_di_IXMLvideosType __fastcall Loadvideos(const UnicodeString& FileName);
_di_IXMLvideosType __fastcall  Newvideos();

#define TargetNamespace ""

#endif


Zawartość pliku XDB:
KOD sql:     UKRYJ  
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://www.borland.com/schemas/delphi/10.0/XMLDataBinding">
  <element xmlns="http://www.w3.org/2001/XMLSchema" name="videos" type="videosType"/>
  <complexType xmlns="http://www.w3.org/2001/XMLSchema" name="videosType"><annotation>
      <appinfo xdb:docElement="videos"/>
    </annotation>
    <sequence>
      <element name="video" type="videoType" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <complexType xmlns="http://www.w3.org/2001/XMLSchema" name="videoType">
    <sequence>
      <element name="title" type="xs:string"/>
      <element name="director" type="xs:string"/>
      <element name="length" type="xs:string"/>
      <element name="format" type="xs:string"/>
      <element name="rating" type="xs:string"/>
    </sequence>
  </complexType>
</xs:schema>
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox

Re: Problem z kreatorem komponentu XMLDocument

Nowy postprzez Yari27 » piątek, 13 maja 2016, 09:45

Dodałem pliki które wygenerowałeś i działa wyśmienicie :D
A zatem mam ogromną prośbę, czy nie wygenerował byś mi do tego pliku:
► 


Można zaktualizować do poprawki 4 bez instalacji całości od nowa?
Avatar użytkownika
Yari27
Bladawiec
Bladawiec
 
Posty: 23
Dołączył(a): niedziela, 19 lipca 2015, 20:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows 7 64bit
Kompilator: C++ Builder XE2 Update4
Gadu Gadu: 10382601
    Windows 7Chrome

Re: Problem z kreatorem komponentu XMLDocument

Nowy postprzez Cyfrowy Baron » piątek, 13 maja 2016, 11:02

To nie rozwiązuje problemu. Powinieneś zainstalować Update 4. Pliki w załączniku.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 15 gości