JPA/eclipse link/sequence/mapped superclass

2013-02-04 Tema obsahu boris.bri...@gmail.com

Zdravim konferenciu

patram uz 2 dni a aj po precitani kopy webov sa neviem dopatrat k vysledku.

Urobil som si predka vsetkych entity tried, ma anotaciu 
@MappedSuperclass, atribut id s @Id a generovanim cez sekvenciu.
Ako povedat, aby kazda entity trieda, ktora extenduje superclass, 
pouzial atribut id s base entity, ale s vlastnou sekvenciou.
Podla mna sa to muselo riesit x-krat, pride mi to ako normalna vec, ale 
za ten svet neviem najst funkcy priklad.


Nevie niekto, ako na to?

Dakujem



Re: Validace XML souboru podle XSDcka

2013-02-04 Tema obsahu Vladislav Korecký
Title: Sign

  
  
Dobrý den,
  řešil jsem stejný problém.
  XSD mám v resource, ale je možné použít i XSD z disku. Ostatní XSD
  leží ve stejné složce jako výchoz XSD.
  
  Java code:
  public static void validateXmlFile(File xmlFile) throws
  ParserConfigurationException, IOException, JAXBException,
  SAXException {
      //Building a Schema instance
      SchemaFactory schemaFactory =
  SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
      Source schemaFile = new StreamSource(new
  File(Validator.class.getResource("/xsd/mets.xsd").getPath()));
      Schema schema = schemaFactory.newSchema(schemaFile);
  
      //Creating a SAXParser for our input XML
      //First the factory
      final SAXParserFactory factory =
  SAXParserFactory.newInstance();
      //Must be namespace aware to receive element names
      factory.setNamespaceAware(true);
      //Setting the Schema for validation
      factory.setSchema(schema);
      //Now the parser itself
      final SAXParser parser = factory.newSAXParser();
  
      //Creating an instance of our special handler
      final MyContentHandler handler = new MyContentHandler();
  
      //Parsing
      parser.parse(xmlFile, handler);
      }
  
  
  V XSD mám:
  xsd:schema targetNamespace="http://www.loc.gov/METS/"
  xmlns="http://www.loc.gov/METS/"
      xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:nsesss="http://www.mvcr.cz/nsesss/v2"
  elementFormDefault="qualified"
      attributeFormDefault="unqualified"
      xsd:import namespace="http://www.w3.org/1999/xlink"
          schemaLocation="xlink.xsd" /
      xsd:import namespace="http://www.mvcr.cz/nsesss/v2"
          schemaLocation="nsesss.xsd" /
      ...
  
  
  S pozdravem,
  Korecký
  
  



  

  
  
   Ing. Vladislav Korecký
  

  
  

  vedoucí týmu POR
  programátor - analytik 
  
  

   
  
  

  GORDIC - tým POR (Portálová Řešení)
  GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava, Czech
  Republic
  TEL: +420 567 571 491 
  

  

  
  Dne 4. 2. 2013 14:01, Dušan Rychnovský napsal(a):


  Dobrý den,
  
  
  
  mám následující problém.
  
  
  Potřebuji ve své aplikaci validovat XML soubory oproti XSD
schématu. Toto schéma je ale rozloženo do několika (cca 10ti)
souborů propojených navzájem pomocí tagů
include a import.
  
  
  Podle rad na internetu jsem sestavil níže uvedený kód
(prototypu), který ovšem nefunguje dobře.
  
  
  Kontrolou logů vypisovaných na konzoli se zdá že řešení
opravdu prochází tagy include/import (a to průchodem do
hloubky), nicméně z neznámých důvodů občas některé z nich
přeskočí. Dlouho jsem hledal rozdíly mezi tagy, které se úspěšně
zpracují a těmi, které jsou přeskočeny. Nicméně na nic jsem
nepřišel.
  
  
  V konkrétním případě například z těchto tří řádků se první a
poslední úspěšně zpracují, zatímco prostřední je ignorován.
Všechna schémata existují, jsou dostupná, validní (nicméně to by
nemělo mít na chybu vliv, protože resolver vůbec nedostane za
úkol tento import řešit).
  
import namespace="schemas/src/x20130601"
schemaLocation="../../x20130601/Personalnumber.xsd"/
import namespace="schemas/src/common/2008/01/03"
schemaLocation="../../../contract/x20080103/Contractnumber.xsd"/
import namespace="schemas/src/20100504"
schemaLocation="../../../system/x20100504/Contractidentification.xsd"
/
  
  
  
  Díky tomu, že se některé importy nezpracují, pak dostávám
výjimky tohoto charakteru:
  
Exception in thread "main" org.xml.sax.SAXParseException;
systemId: file:/z:/--- project path
---/schemas//x20130504/Identification.xsd; lineNumber: 18;
columnNumber: 61; src-resolve: Cannot resolve the name
'dat20080103:Contractnumber' to a(n) 'element declaration'
component.

Deklarace chybějícího elementu se nachází v přeskočeném XSDčku.

Prosím poraďte, kde hledat chybu, nebo alternativní řešení. 
  
Předem děkuji za pomoc,
  
Dušan Rychnovský
  
  

Re: Validace XML souboru podle XSDcka

2013-02-04 Tema obsahu Dušan Rychnovský
  //Creating an instance of our special handler
 final MyContentHandler handler = new MyContentHandler();

Mohl byste prosím přiložit i kód třídy MyContentHandler?

Děkuji za pomoc
Dušan


Dne 4. února 2013 15:36 Vladislav Korecký
vladislav_kore...@gordic.cznapsal(a):

  Dobrý den,
 řešil jsem stejný problém.
 XSD mám v resource, ale je možné použít i XSD z disku. Ostatní XSD leží ve
 stejné složce jako výchoz XSD.

 Java code:
 public static void validateXmlFile(File xmlFile) throws
 ParserConfigurationException, IOException, JAXBException, SAXException {
 //Building a Schema instance
 SchemaFactory schemaFactory =
 SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
 Source schemaFile = new StreamSource(new
 File(Validator.class.getResource(/xsd/mets.xsd).getPath()));
 Schema schema = schemaFactory.newSchema(schemaFile);

 //Creating a SAXParser for our input XML
 //First the factory
 final SAXParserFactory factory = SAXParserFactory.newInstance();
 //Must be namespace aware to receive element names
 factory.setNamespaceAware(true);
 //Setting the Schema for validation
 factory.setSchema(schema);
 //Now the parser itself
 final SAXParser parser = factory.newSAXParser();

 //Creating an instance of our special handler
 final MyContentHandler handler = new MyContentHandler();

 //Parsing
 parser.parse(xmlFile, handler);
 }


 V XSD mám:
 xsd:schema 
 targetNamespace=http://www.loc.gov/METS/;http://www.loc.gov/METS/xmlns=
 http://www.loc.gov/METS/; http://www.loc.gov/METS/
 
 xmlns:xlink=http://www.w3.org/1999/xlink;http://www.w3.org/1999/xlinkxmlns:xsd=
 http://www.w3.org/2001/XMLSchema; http://www.w3.org/2001/XMLSchema
 
 xmlns:nsesss=http://www.mvcr.cz/nsesss/v2;http://www.mvcr.cz/nsesss/v2elementFormDefault=qualified
 attributeFormDefault=unqualified
 xsd:import 
 namespace=http://www.w3.org/1999/xlink;http://www.w3.org/1999/xlink
 schemaLocation=xlink.xsd /
 xsd:import 
 namespace=http://www.mvcr.cz/nsesss/v2;http://www.mvcr.cz/nsesss/v2
 schemaLocation=nsesss.xsd /
 ...


 S pozdravem,
 Korecký

[image: GORDIC spol. s r.o.]   Ing. Vladislav Korecký
 vladislav_kore...@gordic.cz
   vedoucí týmu POR
 programátor - analytik
 --
   *GORDIC - tým POR (Portálová Řešení)*
 GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava, Czech Republic
 TEL: +420 567 571 491
  Dne 4. 2. 2013 14:01, Dušan Rychnovský napsal(a):

 Dobrý den,

  mám následující problém.

  Potřebuji ve své aplikaci validovat XML soubory oproti XSD schématu.
 Toto schéma je ale rozloženo do několika (cca 10ti) souborů propojených
 navzájem pomocí tagů include a import.

  Podle rad na internetu jsem sestavil níže uvedený kód (prototypu), který
 ovšem nefunguje dobře.

  Kontrolou logů vypisovaných na konzoli se zdá že řešení opravdu prochází
 tagy include/import (a to průchodem do hloubky), nicméně z neznámých důvodů
 občas některé z nich přeskočí. Dlouho jsem hledal rozdíly mezi tagy, které
 se úspěšně zpracují a těmi, které jsou přeskočeny. Nicméně na nic jsem
 nepřišel.

  V konkrétním případě například z těchto tří řádků se první a poslední
 úspěšně zpracují, zatímco prostřední je ignorován. Všechna schémata
 existují, jsou dostupná, validní (nicméně to by nemělo mít na chybu vliv,
 protože resolver vůbec nedostane za úkol tento import řešit).

 import namespace=schemas/src/x20130601
 schemaLocation=../../x20130601/Personalnumber.xsd/
 import namespace=schemas/src/common/2008/01/03
 schemaLocation=../../../contract/x20080103/Contractnumber.xsd/
 import namespace=schemas/src/20100504
 schemaLocation=../../../system/x20100504/Contractidentification.xsd /

  Díky tomu, že se některé importy nezpracují, pak dostávám výjimky tohoto
 charakteru:

 Exception in thread main org.xml.sax.SAXParseException; systemId:
 file:/z:/--- project path ---/schemas//x20130504/Identification.xsd;
 lineNumber: 18; columnNumber: 61; src-resolve: Cannot resolve the name
 'dat20080103:Contractnumber' to a(n) 'element declaration' component.

 Deklarace chybějícího elementu se nachází v přeskočeném XSDčku.

 Prosím poraďte, kde hledat chybu, nebo alternativní řešení.

 Předem děkuji za pomoc,
  Dušan Rychnovský
  --
 Main.java:

  private static final String PROJECT_ROOT_DIR_PATH = ---
 project-root-path ---;
 private static final String SCHEMAS_ROOT_PATH = --- schemas root path
 ---;

 private void validate() throws Exception
 {
 DocumentBuilderFactory builderFactory =
 DocumentBuilderFactory.newInstance();
 builderFactory.setNamespaceAware(true);

 DocumentBuilder parser = builderFactory.newDocumentBuilder();

 // parse the XML into a document object
 Document document = parser.parse(
 new File(
 PROJECT_ROOT_DIR_PATH +
 src\\test\\resources\\example.xml
 )
 );

 SchemaFactory factory =
 

Re: Validace XML souboru podle XSDcka

2013-02-04 Tema obsahu Dušan Rychnovský
Předpokládám, že jeho obsah souvisí s validací. Zbytek kódu se mi zdá
napsaný klasicky bez ohledu na importní tagy.

Dušan

Dne 4. února 2013 15:58 Dušan Rychnovský geraltzri...@gmail.com napsal(a):

  //Creating an instance of our special handler
  final MyContentHandler handler = new MyContentHandler();

 Mohl byste prosím přiložit i kód třídy MyContentHandler?

 Děkuji za pomoc
 Dušan


 Dne 4. února 2013 15:36 Vladislav Korecký 
 vladislav_kore...@gordic.cznapsal(a):

  Dobrý den,
 řešil jsem stejný problém.
 XSD mám v resource, ale je možné použít i XSD z disku. Ostatní XSD leží
 ve stejné složce jako výchoz XSD.

 Java code:
 public static void validateXmlFile(File xmlFile) throws
 ParserConfigurationException, IOException, JAXBException, SAXException {
 //Building a Schema instance
 SchemaFactory schemaFactory =
 SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
 Source schemaFile = new StreamSource(new
 File(Validator.class.getResource(/xsd/mets.xsd).getPath()));
 Schema schema = schemaFactory.newSchema(schemaFile);

 //Creating a SAXParser for our input XML
 //First the factory
 final SAXParserFactory factory = SAXParserFactory.newInstance();
 //Must be namespace aware to receive element names
 factory.setNamespaceAware(true);
 //Setting the Schema for validation
 factory.setSchema(schema);
 //Now the parser itself
 final SAXParser parser = factory.newSAXParser();

 //Creating an instance of our special handler
 final MyContentHandler handler = new MyContentHandler();

 //Parsing
 parser.parse(xmlFile, handler);
 }


 V XSD mám:
 xsd:schema 
 targetNamespace=http://www.loc.gov/METS/;http://www.loc.gov/METS/xmlns=
 http://www.loc.gov/METS/; http://www.loc.gov/METS/
 
 xmlns:xlink=http://www.w3.org/1999/xlink;http://www.w3.org/1999/xlinkxmlns:xsd=
 http://www.w3.org/2001/XMLSchema; http://www.w3.org/2001/XMLSchema
 
 xmlns:nsesss=http://www.mvcr.cz/nsesss/v2;http://www.mvcr.cz/nsesss/v2elementFormDefault=qualified
 attributeFormDefault=unqualified
 xsd:import 
 namespace=http://www.w3.org/1999/xlink;http://www.w3.org/1999/xlink
 schemaLocation=xlink.xsd /
 xsd:import 
 namespace=http://www.mvcr.cz/nsesss/v2;http://www.mvcr.cz/nsesss/v2
 schemaLocation=nsesss.xsd /
 ...


 S pozdravem,
 Korecký

[image: GORDIC spol. s r.o.]   Ing. Vladislav Korecký
 vladislav_kore...@gordic.cz
   vedoucí týmu POR
 programátor - analytik
 --
   *GORDIC - tým POR (Portálová Řešení)*
 GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava, Czech Republic
 TEL: +420 567 571 491
  Dne 4. 2. 2013 14:01, Dušan Rychnovský napsal(a):

 Dobrý den,

  mám následující problém.

  Potřebuji ve své aplikaci validovat XML soubory oproti XSD schématu.
 Toto schéma je ale rozloženo do několika (cca 10ti) souborů propojených
 navzájem pomocí tagů include a import.

  Podle rad na internetu jsem sestavil níže uvedený kód (prototypu),
 který ovšem nefunguje dobře.

  Kontrolou logů vypisovaných na konzoli se zdá že řešení opravdu
 prochází tagy include/import (a to průchodem do hloubky), nicméně z
 neznámých důvodů občas některé z nich přeskočí. Dlouho jsem hledal rozdíly
 mezi tagy, které se úspěšně zpracují a těmi, které jsou přeskočeny. Nicméně
 na nic jsem nepřišel.

  V konkrétním případě například z těchto tří řádků se první a poslední
 úspěšně zpracují, zatímco prostřední je ignorován. Všechna schémata
 existují, jsou dostupná, validní (nicméně to by nemělo mít na chybu vliv,
 protože resolver vůbec nedostane za úkol tento import řešit).

 import namespace=schemas/src/x20130601
 schemaLocation=../../x20130601/Personalnumber.xsd/
 import namespace=schemas/src/common/2008/01/03
 schemaLocation=../../../contract/x20080103/Contractnumber.xsd/
 import namespace=schemas/src/20100504
 schemaLocation=../../../system/x20100504/Contractidentification.xsd /

  Díky tomu, že se některé importy nezpracují, pak dostávám výjimky
 tohoto charakteru:

 Exception in thread main org.xml.sax.SAXParseException; systemId:
 file:/z:/--- project path ---/schemas//x20130504/Identification.xsd;
 lineNumber: 18; columnNumber: 61; src-resolve: Cannot resolve the name
 'dat20080103:Contractnumber' to a(n) 'element declaration' component.

 Deklarace chybějícího elementu se nachází v přeskočeném XSDčku.

 Prosím poraďte, kde hledat chybu, nebo alternativní řešení.

 Předem děkuji za pomoc,
  Dušan Rychnovský
  --
 Main.java:

  private static final String PROJECT_ROOT_DIR_PATH = ---
 project-root-path ---;
 private static final String SCHEMAS_ROOT_PATH = --- schemas root path
 ---;

 private void validate() throws Exception
 {
 DocumentBuilderFactory builderFactory =
 DocumentBuilderFactory.newInstance();
 builderFactory.setNamespaceAware(true);

 DocumentBuilder parser = builderFactory.newDocumentBuilder();

 // parse the XML 

Re: JPA/eclipse link/sequence/mapped superclass

2013-02-04 Tema obsahu Jan Liska
Dobry den,

my na projektu neco podobneho pouzivame. Mame nekolik zakadnich entity,
ktere lze rozsirit. Situace je nasledujici:

@MappedSuperclass
public abstract class BaseAssortmentGroup {

public static final String ID_GENERATOR =
BaseAssortmentGroup.ID_GENERATOR;

@Column(name = C112_ASSORTMENTGROUPID)
@Id
@GeneratedValue(generator = BaseAssortmentGroup.ID_GENERATOR)
private Long id;


}


@Table(name = T112_ASSORTMENTGROUPS)
@Entity
@SequenceGenerator(name = BaseAssortmentGroup.ID_GENERATOR,
sequenceName = S112_ASSORTMENTGROUPID,
allocationSize = 1)
public class AssortmentGroup extends BaseAssortmentGroup {

...

}

Tohle funguje pro jednu konkretni sekvenci. Nezkousel jsem mapovat ID
obecne, ale predpokladam ze vynechanim atributu generator v anotaci
@GeneratedValue by to mohlo fungovat.

Hezky den
Jan Liska

2013/2/4 boris.bri...@gmail.com boris.bri...@gmail.com

 Zdravim konferenciu

 patram uz 2 dni a aj po precitani kopy webov sa neviem dopatrat k vysledku.

 Urobil som si predka vsetkych entity tried, ma anotaciu @MappedSuperclass,
 atribut id s @Id a generovanim cez sekvenciu.
 Ako povedat, aby kazda entity trieda, ktora extenduje superclass, pouzial
 atribut id s base entity, ale s vlastnou sekvenciou.
 Podla mna sa to muselo riesit x-krat, pride mi to ako normalna vec, ale za
 ten svet neviem najst funkcy priklad.

 Nevie niekto, ako na to?

 Dakujem




Re: Validace XML souboru podle XSDcka

2013-02-04 Tema obsahu Vladislav Korecký
Title: Sign

  
  
Dobrý den,
  content handler není nutný pro správnou validaci, používám jej jen
  proto, abych si dokázal vypsat jméno a cestu k elementu, který je
  špatně validovaný (zatím jen vypisuji do konzole).
  
  Důležitý je tento řádek:
  SchemaFactory schemaFactory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
  Ten Vám zajistí, že se dotáhnou i ostatní XSD.
  
  Nicméně, zde je i ten content handler (je to rozvrtaná verze,
  právě si s ním hraji).
  private static class MyContentHandler extends DefaultHandler {
  
      private String element = "";
      private int documentNum = 0;
      private ListString elementPath = new
ArrayListString();
  
      @Override
      public void startElement(String uri, String
localName, String qName,
      Attributes attributes) throws
SAXException {
  
      if (localName != null 
!localName.isEmpty()) {
      element = localName;
      } else {
      element = qName;
      }
  
      if (StringUtils.equals(element, "Dokument"))
{
      documentNum++;
      element += String.valueOf(documentNum);
      }
      elementPath.add(element);    
      }
  
      @Override
      public void endElement(String uri, String
localName, String qName) throws SAXException {
      super.endElement(uri, localName, qName);
      elementPath.remove(elementPath.size() -
1);    
      }
  
      @Override
      public void warning(SAXParseException exception)
throws SAXException {
      printPath();
      System.out.println(element + ": " +
exception.getMessage());
      }
  
      @Override
      public void error(SAXParseException exception)
throws SAXException {
      printPath();
      System.out.println(element + ": " +
exception.getMessage());
      }
  
      @Override
      public void fatalError(SAXParseException
exception) throws SAXException {
      printPath();
      System.out.println(element + ": " +
exception.getMessage());
      }
  
      public String getElement() {
      return element;
      }
  
      private void printPath() {
      for (String element : elementPath) {
      System.out.print("/");
      System.out.print(element);
      }
      System.out.println();
      }
      }
  
  
  
  



  

  
  
   Ing. Vladislav Korecký
  

  
  

  vedoucí týmu POR
  programátor - analytik 
  
  

   
  
  

  GORDIC - tým POR (Portálová Řešení)
  GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava, Czech
  Republic
  TEL: +420 567 571 491 
  

  

  
  Dne 4. 2. 2013 16:00, Dušan Rychnovský napsal(a):


  Předpokládám, že jeho obsah souvisí s validací. Zbytek kódu
se mi zdá napsaný klasicky bez ohledu na importní tagy.
  
  
  
  Dušan
  
  Dne 4. února 2013 15:58 Dušan Rychnovský
geraltzri...@gmail.com
napsal(a):

  

   //Creating an instance of our special handler
 final MyContentHandler handler = new
MyContentHandler();



  
  Mohl byste prosím přiložit i kód třídy MyContentHandler?
  
  
  
  Děkuji za pomoc
  
  Dušan
  
  
  
  Dne 4. února 2013 15:36 Vladislav
Korecký vladislav_kore...@gordic.cz
napsal(a):

  

  
Dobrý den,
  řešil jsem stejný problém.
  XSD mám v resource, ale je možné použít i XSD z
  disku. Ostatní XSD leží ve stejné složce jako
  výchoz XSD.
  
  Java code:
  public static void validateXmlFile(File xmlFile)
  throws ParserConfigurationException, IOException,