validate xml, close #246

This commit is contained in:
larshp 2016-07-07 12:51:04 +00:00
parent 0a57243e53
commit 106008b04e
3 changed files with 70 additions and 50 deletions

View File

@ -18,7 +18,8 @@ CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
METHODS:
serialize
RETURNING VALUE(rv_xstr) TYPE xstring,
RETURNING VALUE(rv_xstr) TYPE xstring
RAISING lcx_exception,
add_ignore
IMPORTING iv_path TYPE string
iv_filename TYPE string,
@ -54,7 +55,8 @@ CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
CLASS-METHODS:
to_xml
IMPORTING is_data TYPE ty_dot_abapgit
RETURNING VALUE(rv_xml) TYPE string,
RETURNING VALUE(rv_xml) TYPE string
RAISING lcx_exception,
from_xml
IMPORTING iv_xml TYPE string
RETURNING VALUE(rs_data) TYPE ty_dot_abapgit.

View File

@ -12,12 +12,16 @@ CLASS lcl_persistence_migrate DEFINITION FINAL.
c_text TYPE string VALUE 'Generated by abapGit' ##NO_TEXT.
CLASS-METHODS:
migrate_repo RAISING lcx_exception,
migrate_user RAISING lcx_exception,
table_create RAISING lcx_exception,
migrate_repo
RAISING lcx_exception,
migrate_user
RAISING lcx_exception,
table_create
RAISING lcx_exception,
table_exists
RETURNING VALUE(rv_exists) TYPE abap_bool,
lock_create RAISING lcx_exception,
lock_create
RAISING lcx_exception,
lock_exists
RETURNING VALUE(rv_exists) TYPE abap_bool.
@ -40,46 +44,45 @@ CLASS lcl_persistence_db DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
END OF ty_content,
tt_content TYPE SORTED TABLE OF ty_content WITH UNIQUE KEY type value.
METHODS list_by_type
IMPORTING iv_type TYPE ty_type
RETURNING VALUE(rt_content) TYPE tt_content.
METHODS:
list_by_type
IMPORTING iv_type TYPE ty_type
RETURNING VALUE(rt_content) TYPE tt_content,
list
RETURNING VALUE(rt_content) TYPE tt_content,
add
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
iv_data TYPE ty_content-data_str
RAISING lcx_exception,
delete
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
RAISING lcx_exception,
update
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
iv_data TYPE ty_content-data_str
RAISING lcx_exception,
modify
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
iv_data TYPE ty_content-data_str
RAISING lcx_exception,
read
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
RETURNING VALUE(rv_data) TYPE ty_content-data_str
RAISING lcx_not_found,
lock
IMPORTING iv_mode TYPE enqmode DEFAULT 'E'
iv_type TYPE ty_type
iv_value TYPE ty_content-value
RAISING lcx_exception.
METHODS list
RETURNING VALUE(rt_content) TYPE tt_content.
METHODS add
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
iv_data TYPE ty_content-data_str
RAISING lcx_exception.
METHODS delete
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
RAISING lcx_exception.
METHODS update
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
iv_data TYPE ty_content-data_str
RAISING lcx_exception.
METHODS modify
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
iv_data TYPE ty_content-data_str
RAISING lcx_exception.
METHODS read
IMPORTING iv_type TYPE ty_type
iv_value TYPE ty_content-value
RETURNING VALUE(rv_data) TYPE ty_content-data_str
RAISING lcx_not_found.
METHODS lock
IMPORTING iv_mode TYPE enqmode DEFAULT 'E'
iv_type TYPE ty_type
iv_value TYPE ty_content-value
PRIVATE SECTION.
METHODS: validate_xml
IMPORTING iv_xml TYPE string
RAISING lcx_exception.
ENDCLASS.
@ -1128,8 +1131,18 @@ CLASS lcl_persistence_db IMPLEMENTATION.
ENDMETHOD.
METHOD validate_xml.
lcl_xml_pretty=>print(
iv_xml = iv_xml
iv_ignore_errors = abap_false ).
ENDMETHOD.
METHOD update.
validate_xml( iv_data ).
lock( iv_type = iv_type
iv_value = iv_value ).

View File

@ -358,8 +358,10 @@ CLASS lcl_xml_pretty DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS: print
IMPORTING iv_xml TYPE string
RETURNING VALUE(rv_xml) TYPE string.
IMPORTING iv_xml TYPE string
iv_ignore_errors TYPE abap_bool DEFAULT abap_true
RETURNING VALUE(rv_xml) TYPE string
RAISING lcx_exception.
ENDCLASS.
@ -388,9 +390,12 @@ CLASS lcl_xml_pretty IMPLEMENTATION.
document = li_xml_doc ).
li_parser->set_normalizing( abap_true ).
IF li_parser->parse( ) <> 0.
* ignore errors
rv_xml = iv_xml.
RETURN.
IF iv_ignore_errors = abap_true.
rv_xml = iv_xml.
RETURN.
ELSE.
_raise 'error parsing xml'.
ENDIF.
ENDIF.
li_istream->close( ).