Schemat do appinfo do określania informacji o relacjach - doswiadczalny - propozycja - DRAFT @2015-11-19 modelowa struktura obietkow generowanych przez algorytm tworzenia mapy przetwarzania obiektow Lista derewiacji stworzona w generate_resources_xsl_require_occurs_raport np. default_accounting___d6e182 - nadrzedny complexType id uzytego typy dziecka complexType np. default_accounting___d6e182 Nazwa najwyzszego complexType, z ktorego nastepuje dziedziczenie. unikalny numer dla kazdego z rekordow - uzywany przez sso_procesy5 do wlasciwego przetwoarzenia elementu pod katem znalezienia wlasciwej derewiacji - dla kazdego z elementow @id moga byc rozne konteksty uzycia pod katem dziedziczen. Poczatek mapy transformacji obiektu Z reguly przetwarzamy schemat tak, ze element jest przepuszczany do typu 434, dopiero przetwarzamy kolejny typ ktory jest albo dziedziczeniem albo wlasciwym elementem 434 w przypadku wglownego wezla :when test="local-name()='element' and @type and child::*/local-name()!='simpleType' and $p5_tr_map:last-type='477' and not(@id)" warunek 434n zaraz po 477 ktore sie tyczy zasobow z bazy danych , ktore nie maja @id - TODO jakos madrzej trzeba to wykryc @2016-01-20 przechodzimy na wyzwalanie 4777 i nie ma juz wyjscia do 434n / 734 Element po @ref , ktory nie jest complexType - zawiera jedna wartosc wzglednie dodatkowo atrybuty. Wymagane instancjonowanie od razu z wartoscia np. teryt WOJ po refie - ktore nie jest complexType - jest tutaj jedno wstrzymanie na complexType, do przetworzenia na 481 kolejny element. Element z typem, lokalnie rozszerzony extension/restriction 434r warunek 434r w !__element__! = /schema/complexType//@ref/!__element__!/complexType bez @type za @ref Element z zawartoscia simpleContent - na pewno nie moze byc to complexContent. Ten elemenet moze zawierac atrybuty. Instancjonowany w tabeli typu instancja+wartosci. Bez dziedziczenia. Element z zawartoscia simpleContent - na pewno nie moze byc to complexContent. Ten elemenet moze zawierac atrybuty. Instancjonowany w tabeli typu instancja+wartosci. Ostatnie dziedziczenie w przypadku wiecej niz jednego dziedziczenia. Element z zawartoscia simpleContent - na pewno nie moze byc to complexContent. Ten elemenet moze zawierac atrybuty. Instancjonowany w tabeli typu instancja+wartosci. Element z zawartoscia simpleContent - na pewno nie moze byc to complexContent. Ten elemenet moze zawierac atrybuty. Instancjonowany w tabeli typu instancja+wartosci. Drugie i kolejne dziedziczenia w przypadku wiecej niz dwoch dziedziczen, nie ostatnie. Element z zawartoscia simpleContent - na pewno nie moze byc to complexContent. Ten elemenet moze zawierac atrybuty. Instancjonowany w tabeli typu instancja+wartosci. - Pierwsze dziedziczenie w przypadku wiecej niz jednego dziedziczenia. pomiedzy 4812 a 4810 warunek 494d complexType jako instancja elementu complexType bez @type - bez dziedziczen REMOTE_ID=parent::node()/ID ten typ 494 jest uzywany w przypadku complexType bez dodatkowych dziedziczen - wylacznie jak jest uzyty element jakiego nazwanego typu xsl:when test="local-name()='element' and not(@type) and child::node()/local-name()='complexType' and not(@system_cache__appinfo:root_element_in_schema='true')" element|sequence/complexType/element|sequence|attribute - to jest to cos w rodzaju sequence - element bez wartosci - do ktorego mozna gromadzic atrybuty lub inne elementy - nowy warunek 473b when test="( local-name()='element' ) and child::node()/local-name()='simpleType' and $p5_tr_map:last-type!='477' warunek 459 (podobny do 428) element lub atrybut typu simpleType np. default_default_objects_types___d10e120614-1 - schema/complexType/seq/ELEMENT/simpleType/restriction/@base 394-720 pobranie wartosci atrybutu po @ref z tabeli instancja+value Wywolanie pseudo instancji kombinowanej do obiektu plaskiego z default_db , ktorego dane maja byc integrowane z obiektem odwolujacym sie. Tylko jedna jest mozliwa taka referencja i powinna byc ona na pierwszym miejscu w schemacie elementu zaraz za pierwszym sequence. od 2016-01-20 jest ref do zasobow natywnej plaskiej tabeli , kombinowanej z instancja, w typie 4777 - tylko jedna taka referencja moze byc Powinien tutaj byc schemat elementu do ktorego sie odwoluje when test="local-name()='element' and @type and child::* and $p5_tr_map:last-type!='477' 477b wymuszenie 477 na pierwszym elemencie ktory jest @complexType i nie jest ref 477 sa to ComplexType nazwanego typu uzyte jako elementy w schemacie analogicznie jak @ref, z tymze na zasadzie @type. W zwiazku z czym jest troche inne przetwarzanie, ale robimy tak samo jak w 477, z tymze odwolujemy sie do innych nazw i inaczej zachowuja sie dziedziczenia- TODO uzyty jest tylko typ, bez elementu - dziedziczenia zgodne z typem. 4771 (aktualizacja @prefix_for_elements) pobranie atrybutu z referencja. ma @ref i musi miec REMOTE_ID @2016-01-20 przechodzimy na wyzwalanie 4777 i nie ma juz wyjscia do 434n / 734 Pobranie danych z plaskiej tabeli z API np. RESOURCE np. RESOURCE np. RESOURCE np. default_default_objects_types__d20e41 np. Teryt_Opcje_Adresowe tutaj pusty np. Teryt_Opcje_Adresowe np. teryt np. http://biuro.biall-net.pl/xmlschema_procesy5/default_objects/teryt.xsd np. Teryt_Opcje_Adresowe tutaj pusty np. Teryt_Opcje_Adresowe np. teryt np. http://biuro.biall-net.pl/xmlschema_procesy5/default_objects/teryt.xsd np. Teryt_Adres_Prawidlowy np. Teryt_Adres_Prawidlowy np. Teryt_Adres_Prawidlowy np. teryt np. http://biuro.biall-net.pl/xmlschema_procesy5/default_objects/teryt.xsd 4810 tutaj jest tabela z dodatkowa derewiacja @type, z instancjami, obych obiektow (ComplexType) , pytamy sie o konkretne ID=@REMOTE_ID w konkretnej tabeli (nie ma parent_type) np. Teryt_Opcje_Adresowe tutaj pusty np. Teryt_Opcje_Adresowe np. teryt np. http://biuro.biall-net.pl/xmlschema_procesy5/default_objects/teryt.xsd np. Teryt_Opcje_Adresowe tutaj pusty np. Teryt_Opcje_Adresowe np. teryt np. http://biuro.biall-net.pl/xmlschema_procesy5/default_objects/teryt.xsd 4812 derewiacja na child::node=complexType , z instancjami, obych obiektow (ComplexType) , pytamy sie o konkretne ID=@REMOTE_ID w konkretnej tabeli (nie ma parent_type) np. Teryt_Adres_Prawidlowy np. Teryt_Adres_Prawidlowy np. Teryt_Adres_Prawidlowy np. teryt np. http://biuro.biall-net.pl/xmlschema_procesy5/default_objects/teryt.xsd 481 tutaj jest tabela z instancjami obych obiektow (ComplexType) , pytamy sie o konkretne ID=@REMOTE_ID w konkretnej tabeli (nie ma parent_type) np. RESOURCE np. RESOURCE np. RESOURCE np. default_default_objects_types__d20e41 434 przepuszczenie pierwszego elementu jezeli ma @type - magazynujemy go w complexType nizej local-name:element @name:TELBOXES @id: INSTANCE_ID: np. dla elementu MAGAZYN, ktory ma @type MAGAZYN np. default_corespondence:document_position_offer 434b przepuszczenie pierszego elementu dla przypadku //schema/element/complexType - magazynujemy go w complexType nizej local-name:element @name:WOJ @id:TERYT_terc_xml_import_after_main___d44e20 INSTANCE_ID: np. dla elementu teryt(..):WOJ , ktory ma nizej complexType 434c po 477 po refie ktory jest na element The same like in retrieve_resource_id The same like in retrieve_resource_id 459b element lub atrybut typu simpleType np. NAZWA np. TERYT_terc_xml_import_after_main:NAZWA np. CRM_LISTA_ZASOBOW np. xs:int TODO do potrzebny schemat typu prostego np. TERYT_terc_xml_import_after_main___d44e182 TODO? tutaj pusty? czy to dobrze? existient todo look for:xs:int; $restriction_path:_start_/element:ID/; np. default_default_objects_types___d20e438-id-mag-restr Jest to @id elementu oryginalne z restrykcji, ktore zostalo podmienione w polu @id na odpowiednik obiektu z bazowego schematu, aby trzymac dane w tej samej tabeli np. default_default_objects_types__d20e41 eg. _start_/element:ID/ 459 element lub atrybut typu simpleType np. prefix:nazwa_attr np. CRM_LISTA_ZASOBOW np. xs:int TODO do potrzebny schemat typu prostego . w 459 - w zaleznosci od sposobu wyrazonej restrykcji moze zdarzyc sie tam @type np. TERYT_terc_xml_import_after_main___d44e182 existient todo look for:xs:int; $restriction_path:_start_/element:ID/; np. default_default_objects_types___d20e438-id-mag-restr Jest to @id elementu oryginalne z restrykcji, ktore zostalo podmienione w polu @id na odpowiednik obiektu z bazowego schematu, aby trzymac dane w tej samej tabeli np. default_default_objects_types__d20e41 eg. _start_/element:ID/ np. testattr np. testattr np. default_default_objects_types__d20e41 np. testattr The same like in retrieve_resource_id np. testattr np. testattr np. default_default_objects_types__d20e41 np. testattr The same like in retrieve_resource_id eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN raczej jest to complex, wiec root-in schema pojdzie w 343d, nie tu. Przeniesiony parametr z poprzedniego typu 343d, zaczytany z @name eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN eg. default_default_objects_types:MAGAZYN np. LOKALIZACJA eg. default_default_objects_types:MAGAZYN eg. default_default_objects_types:MAGAZYN eg. MAGAZYN 477 (aktualizacja @prefix_for_elements) pobranie elementu z referencja do tabeli natywnej SE lub innej - ma @ref i musi miec REMOTE_ID np. MAGAZYN/sequence/default_db:TELBOXES (@ref) pasuje tez element /MAGAZYN//sequence/teryt:AdresUlica TODO element z ref nie moze miec ID np. default_db:TELBOXES np. default_db:TELBOXES The same like in retrieve_resource_id np. default_db:CRM_LISTA_ZASOBOW np. default_db:CRM_LISTA_ZASOBOW raczej nie potrzebne w dalszym przetwarzaniu _start_/element:@ref:default_default_objects_types:RESOURCE//element:RESOURCE//element:@ref:default_db:CRM_LISTA_ZASOBOW/ np. default_db:TELBOXES np. default_db:TELBOXES The same like in retrieve_resource_id np. default_db:CRM_LISTA_ZASOBOW np. default_db:CRM_LISTA_ZASOBOW raczej nie potrzebne w dalszym przetwarzaniu _start_/element:@ref:default_default_objects_types:RESOURCE//element:RESOURCE//element:@ref:default_db:CRM_LISTA_ZASOBOW/ np. default_db:xxxx np. default_db:xxxx The same like in retrieve_resource_id np. default_db:some_attr_refered np. default_db:CRM_LISTA_ZASOBOW raczej nie potrzebne w dalszym przetwarzaniu _start_/element:@ref:default_default_objects_types:RESOURCE//element:RESOURCE//element:@ref:default_db:CRM_LISTA_ZASOBOW/ np. default_db:TELBOXES np. default_db:TELBOXES The same like in retrieve_resource_id np. default_db:CRM_LISTA_ZASOBOW np. default_db:CRM_LISTA_ZASOBOW raczej nie potrzebne w dalszym przetwarzaniu _start_/element:@ref:default_default_objects_types:RESOURCE//element:RESOURCE//element:@ref:default_db:CRM_LISTA_ZASOBOW/ Wyliczona pozycja elementu w schemacie - powinna byc pierwsza pozycja na lisciu schematu, zaraz za sequence, wiec=0 734 pobranie elementu zwyczajowo z default_db, bo nie ma @id i jest complextype np. MAGAZYN/sequence/default_db:TELBOXES/(obiekt z tabeli TELBOXES z ID=@REMOTE_ID) np. TELBOXES np. CRM_LISTA_ZASOBOW np. ID np. ID The same like in retrieve_resource_id np. CRM_LISTA_ZASOBOW np. xs:int TODO do potrzebny schemat typu prostego existient todo look for:xs:int; $restriction_path:_start_/element:ID/; np. default_default_objects_types___d20e438-id-mag-restr Jest to @id elementu oryginalne z restrykcji, ktore zostalo podmienione w polu @id na odpowiednik obiektu z bazowego schematu, aby trzymac dane w tej samej tabeli TODO BLAD - w przykladzie z MAGAZYNU jest wartosc xs:int np. default_default_objects_types__d20e41 eg. _start_/element:ID/ 428a - parent_name:default_default_objects_types:MAGAZYN pusty element - tylko instancja np. ID np. ID The same like in retrieve_resource_id np. CRM_LISTA_ZASOBOW np. xs:int TODO do potrzebny schemat typu prostego existient todo look for:xs:int; $restriction_path:_start_/element:ID/; np. default_default_objects_types___d20e438-id-mag-restr Jest to @id elementu oryginalne z restrykcji, ktore zostalo podmienione w polu @id na odpowiednik obiektu z bazowego schematu, aby trzymac dane w tej samej tabeli TODO BLAD - w przykladzie z MAGAZYNU jest wartosc xs:int np. default_default_objects_types__d20e41 eg. _start_/element:ID/ np. default_default_objects_types:URZADZENIE The same like in retrieve_resource_id np. CRM_LISTA_ZASOBOW jakiego typu dziedziczenia jest uzyty complexType mainly at 477 - to detect if child nodes are loop (recursive action) which could be detected by partially instance object ref. dorzucona struktura na potrzeby synchronizacji refow 2017-03 w p5_tr_map