Oxygen Compare and Merge Scripts
In this presentation I cover in detail this compare and merge scripting support, as well as showing you examples on how to use it efficiently, showing you the following:
- The Compare and Merge Files Command-Line Script - used to compare and merge files and get the comparison results in various formats (YAML, JSON, XML, HTML).
- The Compare and Merge Directories Command-Line Script - with many options to choose from, such as the comparison mode (content, binary, timestamp), the algorithm to be used for the comparison, the "strength" of the comparison algorithm, various "include/exclude" type file filters, various "ignore" type options to refine the comparison results.
- Generating File or Directory Comparison HTML Reports - the support to save the comparison made with Oxygen XML Editor in HTML format.
https://www.oxygenxml.com/events/2021/webinar_the_new_oxygen_compare_and_merge_scripts.html
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Understanding SAS Data Step Processingguest2160992
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Understanding SAS Data Step Processingguest2160992
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Slides describing a Reconciliation Tool which can be used for including but not limited to wide spread financial attribute reconciliations. Used to test and validate Data Integrity in Systems.
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Improving Effeciency with Options in SASguest2160992
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Slides describing a Reconciliation Tool which can be used for including but not limited to wide spread financial attribute reconciliations. Used to test and validate Data Integrity in Systems.
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Improving Effeciency with Options in SASguest2160992
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Learning
Base SAS,
Advanced SAS,
Proc SQl,
ODS,
SAS in financial industry,
Clinical trials,
SAS Macros,
SAS BI,
SAS on Unix,
SAS on Mainframe,
SAS interview Questions and Answers,
SAS Tips and Techniques,
SAS Resources,
SAS Certification questions...
visit http://sastechies.blogspot.com
Using SPMetal for faster SharePoint developmentPranav Sharma
This session will cover the ins and outs of SPMetal, a tool which ships with SharePoint 2010. SPMetal allows developers compile-time access to SharePoint lists, content types and columns. This allows for type-safe access to columns/fields on a SharePoint site. Additionally, developers can write LINQ queries against these lists using SPMetal which speeds up query writing tremendously. We will cover adding support for complex column types (Managed Metadata, Publishing HTML, etc) which aren’t supported by SPMetal out of the box. Lastly we will also touch upon performance considerations and other best practices when coding with SPMetal.
Comparing XML Files with a DOGMA Ontology to Generate Omega-RIDL Annotations.Christophe Debruyne
Presentation of Alkhaldi, N., Debruyne, C. (2011) Comparing XML Files with a DOGMA Ontology to Generate Omega-RIDL Annotations. In Proc. of On the Move to Meaningful Internet Systems 2011: OTM Workshops - Semantic and Decision Support (SeDeS 2011), LNCS, Springer - October 2011
Abstract: To facilitate the process of annotating data in the DOGMA ontology-engineering framework, we present a method and tool for semi-automatic annotation of XML data using an ontology. XML elements are compared against concepts and their interrelations in the ontology using various metrics at different levels (lexical level, semantic level, structural level, etc.). The result of these metrics are then used to propose the user a series of annotations from XML elements to concepts in the ontology, which are then validated by that user. Those annotations - expressed in Ω-RIDL - are then used to transform data from one format into another format. In this paper, we demonstrate our approach on XML data containing vendor offers in the tourism domain, more precisely holiday packages.
This document is part of Oracle BI Publisher Certification Program from Adiva Consulting Inc. contact
info@adivaconsulting.com for you corporate training needs and reduce your training cost by 75%
BI Publisher 11g : Data Model Design documentadivasoft
This document is part of BI Publisher 11g Training program from Adiva Consulting Inc.
Contact info@adivaconsulting.com any Corporate Training need and save 75% of your training budget.
Oxygen provides full support for editing and validating YAML documents. You can use Oxygen's editor to create, modify, and format YAML files with its intelligent editing features, including syntax highlighting, code folding, content completion, and error checking. Oxygen also offers validation against JSON schemas and supports customization of schemas for specific projects or file types. Additionally, you can visualize and navigate through your YAML structures with Oxygen's Outline view.
https://www.oxygenxml.com/events/2023/webinar_exploring_oxygen_yaml_support.html
https://www.oxygenxml.com/json_editor/yaml.html
Oxygen JSON Editor is a specialized tool designed for editing JSON documents. It offers a wide range of features and views, including Text, Grid, and Author editing modes, along with Design mode for JSON Schema. The intuitive interface and comprehensive set of tools make it easy to navigate, understand, and modify your JSON, JSON Schema files, as well as YAML and OpenAPI files.
Leveraging the Power of AI and Schematron for Content Verification and Correc...Octavian Nadolu
The journey into the world of AI continues by exploring its application in conjunction with Schematron and Schematron Quick Fix (SQF) for content verification and correction. In this webinar, we aim to offer a comprehensive overview of AI, highlight the potential advantages it brings, and shed light on the challenges we encounter when utilizing AI for these purposes.
Don't miss this opportunity to gain valuable insights into the intersection of AI and content validation by exploring topics such as:
Artificial Intelligence (AI)
OpenAI/Generative Pre-trained Transformer
Schematron and Schematron Quick Fixes (SQF)
Implementing AI in Schematron and SQF
Examples of AI-driven Schematron and SQF Solutions
Benefits of Using AI in Schematron and SQF
https://www.oxygenxml.com/events/2022/webinar_openapi_support_in_oxygen.html
OpenAPI is a community-driven open specification that defines a language-agnostic interface used to describe, produce, consume, and visualize RESTful APIs and web services.
AsyncAPI started as an adaptation of the OpenAPI specification, used for describing asynchronous messaging APIs.
OpenAPI/AsyncAPI documents describe the API (or its elements) and are represented in either YAML or JSON formats.
During this live webinar, you will discover the support offered in Oxygen to create, edit, and validate OpenAPI/AsyncAPI documents as well as how to test, and generate documentation for OpenAPI documents. By joining this live event, you will get the chance to learn the following:
How to create OpenAPI/AsyncAPI documents
How to edit and validate OpenAPI/AsyncAPI documents
How edit OpenAPI/AsyncAPI documentation in Author mode
How to generate documentation for OpenAPI components in HTML format
How to test an OpenAPI, execute API requests, and validate responses
How to create and run test scenarios
Validating XML and JSON Documents Using Oxygen ScriptingOctavian Nadolu
https://www.oxygenxml.com/events/2023/webinar_validating_xml_and_json_documents_using_oxygen_scripting.html
This presentation covers details about this newly implemented validation scripting support, as well as showing examples of how to use it efficiently. You will learn how to validate files or directories from a command line interface. You can check that your documents are valid from an integration server and you can generate reports in several formats (text, XML, JSON, or an HTML visual format). We won’t be stopping there, as we will also be looking at how you can use transformation or comparison scripts.
During this 1-hour live event, we will focus on showing you the following:
How to use the Validation command-line script
How to validate against a specific schema file
How to validate using the default Oxygen validation scenarios
How to use validation scenario from either a scenarios file or a project file
How to generate the validation results in various formats (YAML, JSON, XML, HTML)
How to run validation on an continuous integration server CI/CD
How to use the Transformation command-line script
How to use the Comparison/Merge command-line script
OpenAPI is a community-driven open specification that defines a language-agnostic interface used to describe, produce, consume, and visualize RESTful APIs and web services. OpenAPI documents describe the API (or its elements) and are represented in either YAML or JSON formats.
Vide Demo:
https://www.oxygenxml.com/events/2022/webinar_openapi_editing_testing_and_documenting.html
In this presentation, you will learn about the new JSON and JSON Schema support added in the latest Oxygen versions, as well as the support for OpenAPI, AsyncAPI, and JSON-LD. Get the chance to discover the following:
- Smart editing of JSON documents based on the JSON Schema
- Specialized JSON tools
- Editing JSON Schema in design mode
- The OpenAPI, AsyncAPI, JSON-LD support
https://youtu.be/r5SLk3XLOUs
In this presentation you will get to see how the Design mode can help both content authors who want to visualize or understand a schema and schema designers who develop complex schemas. You will also get the chance to learn:
- How to create JSON schemas from scratch
- How to use the new Pallet view to add new components
- How to use the drag-and-drop support to design your JSON Schema
- How to use refactoring actions
- How to visualize and edit complex JSON Schemas
https://www.oxygenxml.com/events/2021/webinar_the_new_json_schema_diagram_editor.html
A webinar in which we will show you how Oxygen now offers even more powerful tools that allow you to design, develop, and edit JSON Schemas. We will be focusing on presenting features ranging from the new intuitive and expressive visual schema Design mode, all the way up to the JSON Schema documentation generator that includes diagram images for each component.
During this live webinar, you will get the chance to take an in-depth look at all of these features, as well as learn:
How to create JSON Schemas from scratch
How to visualize and edit complex JSON Schemas
How to generate JSON Schema documentation
Schematron is designed to be used for XML documents. The definition of the Schematron is "A language for making assertions about the presence or absence of patterns in XML documents". But why we should not use it also for non-XML languages, such as JSON, Markdown, or even HTML5?
Oxygen provides a specialized JSON and JSON Schema editor with a variety of editing features, helper views, and useful tools. In this presentation you will see an overview of the JSON support, as well as the new additions, such as:
- An instance generator from a JSON Schema
- XSD to JSON schema converter
- Generate JSON Schema from JSON instance
- JSON Schema annotations
- Schematron validation for JSON
Oxygen provides support for generating HTML5 and XHTML5 documents, and support for editing and validating XHTML5 files. Now Oxygen Editor introduces full HTML5 support, providing features such as:
- Specialized text-based and visual-based editing
- Syntax highlights based on the HTML5 specification
- Content completion based on the HTML5 schema
- Outline view that displays the document structure
- Validation against the W3C validator, including batch validation
- Emmet plugin - toolkit for high-speed HTML coding and editing
Documentation Quality Assurance with ISO SchematronOctavian Nadolu
It is important to have quality control over the XML documents in your project. You do this using Schematron schema in combination with other schemas (such as XSD, RNG, or DTD). Schematron solves the limitation that other types of schema have when validating XML documents because it allows the schema author to define the tests and control the messages that are presented to the user. The validation problems are more accessible to users and it ensures that they understand the problem.
Schematron is a language that ca be used to define rules for quality assurance an consistency in the XML documents. Reporting detected inconsistencies and error conditions enables content writers to correct the problems.
With Schematron you can define different type of problems (such as code smell, bug, or vulnerability) and you can set different severities (such us: info, warn, error, fatal) to the messages. By analyzing the report you can give a verdict if the project build fails, or is with warnings, or is successful.
Schematron is a rule-based validation language. Has become an ISO standard since 2006 and it is a very popular language in the XML world. In the last few years, Schematron started to be used more and more and in numerous domains. In this tutorial you will learn how to create ISO Schematron schemas, how to use XPath to express your constraints, as well as how to validate your XML files using an ISO Schematron schema and create a report.
In this tutorial I will present how to create an ISO Schematron schema from scratch. I will explain the ISO Schematron schema structure, elements and attributes, and how you can express custom rules and constraints.
This presentation is meant to explain the JSON languages and the support that you need when this type of documents are edited, validated, queried, or converted. You will also discover what languages and tools can be used when working with these types of documents.
JSON it is a common format for data interchange and is adopted by applications as a way to store data. It is a self describing languages, the structure is defined hierarchically, and has schema to define its structure.
A JSON Schema can be used the define JSON documents structure. It is an Internet Draft at the IETF and not many tools support it, but it is actively developed.
JSON Edit, Validate, Query, Transform, and ConvertOctavian Nadolu
This presentation will explore the JSON features added in Oxygen 20.1 and the new features that will be available in Oxygen 21, including:
- Validating JSON documents against a JSON Schema
- The new redesigned Outline view for JSON documents
- Content completion assistance for JSON, based on the JSON Schema
- Defining code Templates for JSON
- Associating a JSON Schema directly in JSON documents
- Executing XPath expressions over multiple JSON files
- Transforming JSON documents using XSLT
The Power Of Schematron Quick Fixes - XML Prague 2019Octavian Nadolu
In this presentation, you will discover the new additions for the SQF language and how you can create useful and interesting quick fixes for the Schematron rules defined in your project. It will include examples of quick fixes for several type of projects and using abstract quick fixes to enable easier creation of specific fixes or XSLT code for more complex fixes. You will also discover some use cases for quick fixes that extend your Schematron scope.
Collaboration Tools to Help Improve Documentation ProcessOctavian Nadolu
An in-depth view of our documentation workflow to show real world use-cases of how you can use Oxygen products to efficiently and thoroughly collaborate with everyone involved in the documentation process.
https://github.com/octavianN/Schematron-step-by-step
Schematron is a very simple and powerful language. It is used in various domains (financial, insurance, government, and technical publishing sectors) for quality assurance, validating business rules, constraint checking, or data reporting. During the presentation, I will show you how to create Schematron rules step-by-step, apply the rules over one or multiple documents, and also how to integrate Schematron rules in your development process
Schematron is a rule-based validation language for making assertions about presence or absence of certain patterns in XML documents. With Schematron, you can express constraints in a way that you cannot perform with other schemas (like XSD, RNG, or DTD). XSD, RNG, and DTD schemas define structural aspects and data types of the XML documents and can be used to check big things, such as if an element is allowed in a specific context, or if an attribute is allowed for an element. But with Schematron, you can create your custom rules specific to your project, and check things such as if the text from an element respects a particular constraint, or verify data inter-dependencies such as if a start date from an attribute value is set before the end date attribute value.
In a Schematron document, you can add a collection of rules that contain tests. The Schematron content is written as an XML document using a small number of elements, and this makes it easy to understand and write, even for people that are not programmers.
Exploring the new features in Oxygen XML Editor 20 - DevelopmentOctavian Nadolu
Explore some of the new features and improvements that were added in Oxygen XML Editor 20 on the development part. The subjects that we will discuss include:
Productivity enhancements for XSLT developers
Saxon update
Schematron improvements
Schematron Quick Fix Update
JSON
Sharpen existing tools or get a new toolbox? Contemporary cluster initiatives...Orkestra
UIIN Conference, Madrid, 27-29 May 2024
James Wilson, Orkestra and Deusto Business School
Emily Wise, Lund University
Madeline Smith, The Glasgow School of Art
Acorn Recovery: Restore IT infra within minutesIP ServerOne
Introducing Acorn Recovery as a Service, a simple, fast, and secure managed disaster recovery (DRaaS) by IP ServerOne. A DR solution that helps restore your IT infra within minutes.
Have you ever wondered how search works while visiting an e-commerce site, internal website, or searching through other types of online resources? Look no further than this informative session on the ways that taxonomies help end-users navigate the internet! Hear from taxonomists and other information professionals who have first-hand experience creating and working with taxonomies that aid in navigation, search, and discovery across a range of disciplines.
0x01 - Newton's Third Law: Static vs. Dynamic AbusersOWASP Beja
f you offer a service on the web, odds are that someone will abuse it. Be it an API, a SaaS, a PaaS, or even a static website, someone somewhere will try to figure out a way to use it to their own needs. In this talk we'll compare measures that are effective against static attackers and how to battle a dynamic attacker who adapts to your counter-measures.
About the Speaker
===============
Diogo Sousa, Engineering Manager @ Canonical
An opinionated individual with an interest in cryptography and its intersection with secure software development.
This presentation, created by Syed Faiz ul Hassan, explores the profound influence of media on public perception and behavior. It delves into the evolution of media from oral traditions to modern digital and social media platforms. Key topics include the role of media in information propagation, socialization, crisis awareness, globalization, and education. The presentation also examines media influence through agenda setting, propaganda, and manipulative techniques used by advertisers and marketers. Furthermore, it highlights the impact of surveillance enabled by media technologies on personal behavior and preferences. Through this comprehensive overview, the presentation aims to shed light on how media shapes collective consciousness and public opinion.
This presentation by Morris Kleiner (University of Minnesota), was made during the discussion “Competition and Regulation in Professions and Occupations” held at the Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found out at oe.cd/crps.
This presentation was uploaded with the author’s consent.
2. Compare and Merge Scripts
Agenda
● Overview of the Oxygen Diff Support
● File Comparison and Merge Reports Using
Command Line Scripts
● Directory Comparison and Merge Reports
Using Command Line Scripts
● Generate File and Directory Comparison
Reports in Oxygen
3. Compare and Merge Scripts
Compare and Merge
● Compare documents – identify changes
between two versions of the same document
● Merge documents - uniting two documents
into a single one
4. Compare and Merge Scripts
Compare and Merge Support in Oxygen
● Compare and Merge Files
– Text and Visual Author Compare
– Three-Way Comparisons
– XML Diff Algorithms
● Compare and Merge Directories
– Binary, Timestamp, and Content Compare
– Compare in Archives
– Streaming Diff Algorithms
● 3-Way Directory Comparison and Merging Changes
● Generating File or Directory Comparison HTML Reports*
● Compare and Merge Files/Directories Command-Line Scripts*
5. Compare and Merge Scripts
Question: Do you use/intend to use Oxygen Diff, what tools?
Compare and Merge Files
Compare and Merge Directories
3-Way Directory Comparison and Merging
Changes
Generate Comparison HTML Reports
Compare and Merge Scripts
7. Compare and Merge Scripts
Oxygen XML Scripting
oxygenxml.com/oxygen_scripting.html
oxygenxml.com/doc/ug-editor/topics/scripting_oxygen.html
8. Compare and Merge Scripts
Oxygen XML Scripting Functions
Automate and run Oxygen utilities from the command-line Interface
● Validation
● Transformation
● Conversion
● Generate Documentation
● Format and Indent
● Compare and Merge Files or Directories
● and more
Webinar: Automate XML processing with Oxygen XML Scripting
9. Compare and Merge Scripts
Question: Do you use/intend to use Oxygen Scripting, what tools?
Validation
Transformation
Generate Documentation
Compare and Merge
Other
10. Compare and Merge Scripts
Compare and Merge Files Script
Compare and merge files and get the comparison results in various formats
11. Compare and Merge Scripts
Arguments for the Compare Files Script
firstFilePath - Mandatory argument that specifies the first file path.
secondFilePath - Mandatory argument that specifies the second file path.
baseFilePath - Optional argument that specifies the path of the base file (for 3-way comparisons).
-ct contentType - Specifies the content type of the files to be compared. The option is used to force the file
handling to the specific type of file. Otherwise, the file type is auto-detected.
-out outputFormat - Specifies the format of the output. Possible values: yaml, json, xml, html, htm,
html/inlineCSS, or htm/inlineCSS. Default value = yaml.
-outfile outputFile - Specifies the path for an output file to save the comparison results, instead of presenting
them in the console.
-help | --help | -h | --h - Displays help text.
12. Compare and Merge Scripts
Compare Files Script Report
Example of generating a file comparison report in YAML format
compareFiles file1 file2
Report information:
● Total number of modifications
● Number of modifications by type
● Location of the modifications
13. Compare and Merge Scripts
Compare Files Script YAML/JSON/XML Report
Can be used to:
● Verify if the documents are modified
● Determine the type of changes between documents
● Process the changes from the documents
● Executed from CI/CD pipelines
14. Compare and Merge Scripts
Compare Files Script HTML Report
Example of generating a file comparison report in HTML format:
compareFiles file1 file2 -out html -outfile outFileName.html
Example of generating a file 3-way comparison report in HTML format:
compareFiles file1 file2 baseFile -out html -outfile outFileName.html
16. Compare and Merge Scripts
Arguments for the Compare Files Algorithms
-alg comparisonAlg - Specifies the algorithm to be used for the comparison. Possible values: auto, chars, words,
lines, syntax_aware, xml_fast, and xml_accurate. Default value = auto.
-als algStrength - Specifies the strength of the algorithm to be used for the comparison. Possible values: low,
medium, high, and very_high. Default value = medium.
-iws ignoreWS - If set to true, whitespaces are ignored if differences consist only of whitespaces. Default value =
false.
17. Compare and Merge Scripts
Compare Files Arguments
Example of a comparison that uses the Lines algorithm:
compareFiles file1 file2 base -out html -outfile fileName.html –alg lines
18. Compare and Merge Scripts
Arguments for XML-aware Algorithms
-ipi ignorePI - If set to true, processing instructions are ignored in the comparison. Default value = false.
-icm ignoreComments - If set to true, comments are ignored in the comparison. Default value = false.
-idt ignoreDocType - If set to true, DOCTYPE sections are ignored in the comparison. Default value = false.
-itn ignoreText - If set to true, text content is ignored in the comparison. Default value = false.
-ins ignoreNS - If set to true, namespaces are ignored in the comparison. Default value = false.
-ind ignoreNSDecl - If set to true, namespace declarations are ignored in the comparison. Default value = false.
-inp ignorePrefixes - If set to true, prefixes are ignored in the comparison. Default value = false.
-iao ignoreAttrOrder - If set to true, the order of attributes is ignored in the comparison. Default value = false.
-iee ignoreExpStateForEmptyElems - If set to true, the expansion state for empty elements is ignored in the
comparison. Default value = false.
-enx XpathExprToExcludeNodes - Specifies an XPath expression to exclude certain nodes from the comparison.
19. Compare and Merge Scripts
Compare Files Ignore Options
Example of a comparison that ignores whitespaces, comments, and
attributes order:
sh compareFiles.sh file1 file2 baseFile -iws -icm -iao -out html -outfile
outFileName.html
20. Compare and Merge Scripts
Merge Files Arguments
-merge mergeOperation - If set to true, a merge operation is invoked after the comparison. Default value = true.
-mergeout outputDirPathForMerge -Specifies the output directory path for the merged file (instead of directly
affecting the first compared file).
● The merge operation is similar to the same process in any versioning system
● If conflicting changes are detected, the merge operation is aborted and the first file remains unchanged
● After the comparison and merge, a report is created that provides some details about the changes that were
made
21. Compare and Merge Scripts
Merge Files Script
Example of merging the changes between two files:
compareFiles file1 file2 baseFile -mergeout destFolder
22. Compare and Merge Scripts
Compare and Merge Directories Script
Compare and merge directories and get the comparison results in various formats
23. Compare and Merge Scripts
Arguments for the Compare Directories Script
firstDirPath - Mandatory argument that specifies the first directory path.
secondDirPath - Mandatory argument that specifies the second directory path.
baseDirPath - Optional argument that specifies the path of the base directory (for 3-way comparisons).
-out outputFormat - Specifies the format of the output. Possible values: yaml/grouped, yaml/raw, json/grouped,
json/raw, xml/grouped, xml/raw, html, html/ifcr, htm, or htm/ifcr. Default value = yaml/grouped.
-outfile outputFile - Specifies the path for an output file to save the comparison results, instead of presenting
them in the console. The content of the output file is formatted according to the -out argument.
-help | --help | -h | --h - Displays help text.
24. Compare and Merge Scripts
Compare Directories Script Report
Example of generating a directories comparison report in YAML format
compareDirs dir1 dir2
Report information:
● Total number of modifications
● Number of modifications by type
● Modified files
25. Compare and Merge Scripts
Compare Directories Script Output Format
-out outputFormat - Specifies the format of the output. Possible values: yaml/grouped, yaml/raw, json/grouped,
json/raw, xml/grouped, xml/raw, html, html/ifcr, htm, or htm/ifcr. Default value = yaml/grouped.
● If you choose to save/redirect the console output to a file, this argument establishes the type of the output
file and its content is formatted accordingly. If you skip specifying the "/grouped" or the "/raw" qualifiers,
"/grouped" takes precedence.
● If you choose the html or htm output format, it is recommended that you also choose to save/redirect the
console to the specified HTML file to view the comparison result in your preferred browser.
● The "/ifcr" qualifier for the html or htm values is considered only if the -outfile argument is also present. IFCR
is an acronym for Include File Comparison Reports and it means that, along with generating the directory
comparison report, separate file comparison reports will be generated for all modified file pairs. These
reports are available through links from the main report and are saved to a specific directory based on the
value provided by the outfile argument. It will have the same parent directory and the same name as the
outputFile plus -OXY-FC-REPORTS added to the end of its name.
● The html value, as well as the grouped, raw, or ifcr qualifiers, are not considered if the -merge argument is
present.
26. Compare and Merge Scripts
Compare Directories Script HTML Report
Example of generating a directory comparison report in HTML format:
compareDirs dir1 dir2 -out html -outfile results.html
Example of generating a 3-way directory comparison report in HTML format:
compareDirs dir1 dir2 baseDir -out html -outfile results.html
Example of generating a 3-way directory comparison including files reports:
compareDirs dir1 dir2 baseDir -out html/ifcr -outfile results.html
28. Compare and Merge Scripts
Arguments for Compare Directories Filter
-ia includeArchives - If set to true, files from archives are included in the comparison. Default value = false.
-if includeFilesFilter - Use this argument to only include files that match the specified pattern in the comparison
(e.g. .xml, .json). Default value = *.
-ef excludeFilesFilter - Use this argument to exclude files that match the specified pattern from the comparison
(e.g. *.jpg).
-ed excludeSubdirsFilter - Use this argument to exclude sub-directories that match the specified pattern from the
comparison (e.g. .svn, _svn, .git).
29. Compare and Merge Scripts
Arguments for the Compare Directories Script
Example of generating a directory comparison excluding JPEG files
compareDirs dir1 dir2 -out html -outfile results.html -ef *.jpg
Example of generating a directory comparison including just Dita files
compareDirs dir1 dir2 -out html -outfile results.html -if *.dita
30. Compare and Merge Scripts
Arguments for Compare Directories Algorithms
-cm comparisonMode - Specifies the comparison mode. There are three modes available: content, binary, and
timestamp. Default value = content.
-alg comparisonAlg - Specifies the algorithm to be used for the comparison. Possible values: auto, chars, words,
lines, syntax_aware, xml_fast, and xml_accurate. Default value = auto.
-als algStrength - Specifies the strength of the algorithm to be used for the comparison. Possible values: low,
medium, high, and very_high. Default value = medium.
-iws ignoreWS - If set to true, whitespaces are ignored if differences consist only of whitespaces. Default value =
false.
31. Compare and Merge Scripts
Arguments XML-aware Algorithms
-ipi ignorePI - If set to true, processing instructions are ignored in the comparison. Default value = false.
-icm ignoreComments - If set to true, comments are ignored in the comparison. Default value = false.
-idt ignoreDocType - If set to true, DOCTYPE sections are ignored in the comparison. Default value = false.
-itn ignoreText - If set to true, text content is ignored in the comparison. Default value = false.
-ins ignoreNS - If set to true, namespaces are ignored in the comparison. Default value = false.
-ind ignoreNSDecl - If set to true, namespace declarations are ignored in the comparison. Default value = false.
-inp ignorePrefixes - If set to true, prefixes are ignored in the comparison. Default value = false.
-iao ignoreAttrOrder - If set to true, the order of attributes is ignored in the comparison. Default value = false.
-iee ignoreExpStateForEmptyElems - If set to true, the expansion state for empty elements is ignored in the
comparison. Default value = false.
32. Compare and Merge Scripts
Merge Directories Arguments
-merge mergeOperation - If set to true, a merge operation is invoked after the comparison. Default value = true.
-mergeout outputDirPathForMerge - Specifies the output directory path for the merge operation.
● The merge operation is similar to the same process in any versioning system. Following the comparison
between the first and second directories (relative to the base folder), all the differences of the type incoming
are considered and the content of the first directory is updated accordingly.
● For conflicting files that could not be merged, the left file content is kept.
● After the comparison, a report is created that provides details about the changes that were made.
33. Compare and Merge Scripts
Merge Directories Script
Example of merging the changes between two
directories:
compareDirs dir1 dir2 baseDir -mergeout destFolder
34. Compare and Merge Scripts
Save HTML Comparison Report in Oxygen
● Compare Files – save result in HTML
format
● Compare Directories – save result in HTML
format
● Generate HTML Report for Directory
Comparison
35. Compare and Merge Scripts
Generate HTML Report for Directory Comparison
36. Compare and Merge Scripts
Conclusion
● Complete support for File and Directory Comparison
● Scripts to generate File and Directory comparison reports
● Scripts to merge Files and Directories
● Options to filter the differences
● Multiple algorithms to compare different type of files
37. Compare and Merge Scripts
Future Plans
● Improve Compare Script Algoritms
● Provide Other Compare Reports
● JSON Schema Documentation Script
● OpenAPI Documentation Script
● Other (feedback is welcome)
38. Compare and Merge Scripts
Question: What features are the most important for you?
Improve Compare Script Algoritms
Provide Other Compare Reports
JSON/OpenAPI Schema Documentation
Script
Apply Validation Scenario Script
Other (feedback is welcome)