• 2002

    1
    Version 1.0 - April the 15th, 2002
    Version 1.1 - May the 15th, 2002
    Version 1.1.5 - May the 20th, 2002
    Version 1.1.6 - May the 24th, 2002
    Version 1.1.7 - May the 27th, 2002
    Version 1.1.8 - June the 5th, 2002
    Version 1.1.9 - June the 15th, 2002
    Version 1.2 - June the 27th, 2002
    Version 1.2.1 - September the 27th, 2002
    Version 1.2.2 - October the 22nd, 2002
    Version 1.2.3 - November the 27th, 2002
    Version 1.2.4 - December the 17th, 2002
  • 2003

    2
    Version 2.0 - April the 2nd, 2003
    Version 2.0.1 - May the 15th, 2003
    Version 2.0.2 - June the 9th, 2003
    Version 2.0.3 - August the 14th, 2003
    Version 2.0.4 - September the 19th, 2003
  • 2004

    3
    Version 3.0 - January the 14th, 2004
    Version 3.1 - February the 6th, 2004
    4
    Version 4.0 - April the 30th, 2004
    Version 4.1 - June the 10th, 2004
    Version 4.2 - July the 15th, 2004
    5
    Version 5.0 - October the 15th, 2004
    Version 5.1 - January the 18th, 2005
  • 2005

    6
    Version 6.0 - May the 22nd, 2005
    Version 6.1 - July the 19th, 2005
    Version 6.2 - September the 19th, 2005
  • 2006

    7
    Version 7.0 - January the 13th, 2006
    Version 7.1 - March the 2nd, 2006
    Version 7.2 - June the 6th, 2006
    8
    Version 8.0 - November 20th, 2006
    Version 8.1 - January 25th, 2007
    Version 8.2 - May 7th, 2007
  • 2007

    9
    Version 9.0 - November 2nd, 2007
    Version 9.1 - December 18, 2007
    Version 9.2 - May 9, 2008
    Version 9.3 - July 2, 2008
  • 2008

    10
    Version 10.0 - October 23, 2008
  • 2009

    11
    Version 11.0 - October 9, 2009
    11.1
    Version 11.1 - December 17, 2009
  • 2010

    11.2
    Version 11.2 - March 16, 2010
    12
    Version 12.0 - September 14, 2010
  • 2011

    12.1
    Version 12.1 - January 12, 2011
    12.2
    Version 12.2 - May 19, 2011
    13
    Version 13.0 - August 29th, 2011
    13.1
    Version 13.1 - October 26th, 2011
  • 2012

    13.2
    Version 13.2 - January 12th, 2012
    14
    Version 14.0 - June 27, 2012
    14.1
    Version 14.1 - October 19, 2012
  • 2013

    14.2
    Version 14.2 - February 13, 2013
    15
    Version 15.0 - June 7, 2013
    15.1
    Version 15.1 - October 7, 2013
  • 2014

    15.2
    Version 15.2 - January 22, 2014
    16
    Version 16.0 - May 20, 2014
    16.1
    Version 16.1 - October 7, 2014

What was new in oXygen XML Editor 9.0

Related Versions: 9.09.19.29.3

Version: 9.0

November 2nd, 2007

There are changes in:

WYSIWYG-like XML editing

Out-of-the-box Table Support   [read more...]

oXygen offers built-in support for both CALS and HTML table models. If your XML vocabulary adheres to one of those models, oXygen will automatically detect the table elements and layout the content in a tabular fashion. If your XML vocabulary uses other table standard you can use the standard W3C CSS table styling properties in the associated stylesheet.

Full XML markup control

oXygen combines the easy way of working in a visual WYSIWYG-like XML editor with the full power of XML source editing. Also, the Outline view, which is synchronized with the edited XML document, shows the entire markup structure.

Drag-and-Drop Editing

The Author mode allows drag-and-drop editing. You can select the XML content then drag and drop it in the desired location to move or copy that content.

Full integration with XML Editor

The WYSIWYG-like editor was closely integrated in oXygen as an editor tab called Author next to the Text and Grid editing modes. All oXygen's powerful editing actions are also available in the Author mode. These include: spell checking (on request and as-you-type), XML validation (continuous, on request), search and replace, and XPath execution. Also all side views that oXygen provides are offering information when editing in Author mode.

XML Element folding

You can indicate the elements that can be folded using a oXygen CSS property extension: "foldable".
Extensibility: The Document Types
Starting with version 9 oXygen XML Editor adds a new concept, Document Type, which provides ready-to-use support for a framework or an XML language. The Document Type concept is used to provide the built-in support that oXygen XML Editor has for a number of XML frameworks (DITA, DocBook, TEI, etc.) More importantly, it can be employed to provide support for a user-defined framework that is to be shared with others.

Default Schema   [read more...]

You can specify the default schema to be used for validation and content completion assistance for the documents that match a document type. This schema can be overwritten if the XML document itself specifies a schema inside. All the current schema languages are supported (DTD, XML Schema, Relax NG, ISO Schematron, ISO NVDL).

Default CSS files   [read more...]

You can specify a set of CSS files, including alternates and default CSS that will be used by oXygen when editing in Author mode.

Custom Actions   [read more...]

You can define custom actions for the Author mode that will appear in tool bar, menu, or contextual menu. These actions, in general, add support for inserting XML markup structures, lists, list items, tables, table rows, table columns, etc., in the specific framework the document type describes. oXygen provides a set of operations that can be used to implement most of the actions. If needed, you can code your own operations in Java and use them to define your actions.

Document Templates   [read more...]

You can specify a folder where you have document templates. These templates will be gathered automatically by oXygen and will appear in the new file dialog, allowing new documents of the defined document type to be created with ease.

XML Catalogs   [read more...]

You can specify XML Catalogs for the document type that resolve remote resources to local copies. This allows faster access to those resources (schemas, stylesheets, etc.) and also allows you to work off-line without changing the XML documents to explicitly point to local resources.

Default Transformation Scenarios   [read more...]

You can specify a set of transformation scenarios to convert the XML documents to different formats, such as HTML and PDF.

Side Views for Editing Help

Elements View   [read more...]

Shows the XML elements defined by the schema that can be inserted at the current position in the document.

When editing in the Author visual editing mode you can add elements before or after the element where the caret is located.

Entities View   [read more...]

Shows the defined XML entities. You can insert an entity by clicking on its label.

Sortable CSS Outline View   [read more...]

The overall structure of a CSS stylesheet edited in the CSS Editor is available in the Outline view similar with the Outline view of the XML Editor. You can sort the CSS rules alphabetically either by the entire selector or by the last component of the selector.

Improved validation error reporting

Better error reporting for XML validation against Relax NG schemas

Incomplete error reports, such as "required attributes missing", "required elements missing", or "unfinished element", are now updated to report exactly what XML attributes or elements are missing and what is expected to finish the element.

Better error reporting for Relax NG schema validation

The errors regarding overlapping names inside interleave are now reported by specifying the actual names that are overlapping.

Schematron diagnostics and reports   [read more...]

The diagnostics messages issued by a Schematron schema are displayed together with the other validation errors. Schematron report messages are treated as warnings.

Component Updates

Integrated TEI P5

TEI P5 0.9 schemas and the TEI XSL 5.7 stylesheets are included in the installation kit.

Updated DocBook

Updated to the version 1.73.2 of the XSL Stylesheets and DocBook 5.0 RC 7 XML Schemas.

Updated FOP

Updated FOP to the latest version 0.94.
Other features

Improved the Content Completion Assistant on Eclipse

You can turn on the "learn words" option in the oXygen Eclipse plugin. Hence, by using the CTRL+SPACE shortcut you can insert a word from ones you previously used in the document simply by typing the first few letters of the word.

Print Support - Print Preview   [read more...]

You can preview the printing result before actually printing an XML document.

Spell checking sensitive to the xml:lang attribute

The spell checking takes into account the value of the xml:lang attribute and switches the dictionary automatically when you run the spell checking on a file.

PDF/A-1b Support

You can generate PDF/A-1b files using the built-in FO processor.

Move up or down the selection

Using the ALT+UP/DOWN key combination you can move the currently selected lines in the XML document source.

Support URN syntax for XML Schema location when creating a new XML document

The XML Schema location can be specified using URN syntax. The URN is then mapped using the XML catalogs "system" entries to the actual schema.


Version: 9.1

December 18, 2007

There are changes in:

WYSIWYG-like XML editor improvements

In place editing for XML attributes with completion support

When visually editing XML documents it is always a challenge to edit XML attributes. oXygen XML Editor solves this problem by allowing a quick and easy way with the in-place-editing for XML attributes. The editing pop-up can be triggered in place with a configurable shortcut (by default that is ALT+ENTER). Both XML attribute names and possible values can be quickly selected by typing in a prefix.

Bookmarks support

The visual Author mode from oXygen XML Editor was enhanced with support for bookmarks. These allow quick positioning in large documents and working in multiple locations of multiple documents.

Transform a DITA Map to PDF and HTML

A pre-configured scenario was added for the default DITA configuration for transforming a DITA Map document to HTML. The pre-existing DITA to PDF scenario can also handle DITA map files so you can use it to convert a DITA map to PDF.

Editing Actions

The following actions are introduced: Remove All Markup (removes all the XML markup from the selected element and keeps the text content), Remove Text (removes the text content and keeps the XML markup in the selected element), double-click in Elements view to surround the current selection with the XML tags of the double-clicked element name.

Increase and decrease the font size

The font size of the WYSIWYG-like XML editor can be increased or decreased using CTRL + NumPad+ and CTRL + NumPad- or the CTRL key combined with the mouse wheel.

The CSS property not-foldable-child accepts a list of element names

The custom CSS property not-foldable-child accepts a list of comma separated element names. When a section is folded in the XML editor visual Author mode the first child element from the XML document that appears in the list of element names will be identified as the not-foldable-child and displayed.
Improved HTTP/WebDAV support

WebDAV locking support

You can decide to lock a WebDAV resource when you open it. This ensures that only you can modify that resource on the WebDAV server. If another user tries to edit a locked resource he will receive a warning message containing the name of the lock owner. The lock is released automatically when the resource is closed.

GZIP compression handling

GZIP compressed content received from a HTTP/WebDAV server is handled correctly. The server is notified when the connection is established that GZIP compressed streams are accepted.

Read proxy server settings from the operating system

An option is introduced for using the proxy server set in the operating system when making HTTP/WebDAV connections. For example, on Windows the proxy system settings are configured in Control Panel and used automatically in Internet Explorer.
Other features

SOAP 1.2 support

The SOAP version is detected from the WSDL definition file and the appropriate headers are set in the SOAP request. The SOAP 1.2 envelope is validated against a SOAP 1.2 XML Schema.

The custom protocol plugin was extended to add resource locking support

The custom protocol plugin facilitates the connection with different repositories such as content management systems, oXygen XML Editor being able to browse, edit and save these resources as normal files. The additional support allows the custom protocol plugin to manage resource locking to avoid conflicts with other users trying to access the same resources.
Component Updates

Updated TEI P5

oXygen XML Editor ships with the latest TEI P5 1.0 schemas.

Updated Saxon XSLT 2.0 processor

Updated the Saxon B XSLT 2.0 processor to the latest version 9.0.0.2. The support for Saxon SA was also updated to support the latest Saxon SA version 9.0.0.2 (note that you need a separate license from Saxonica in order to use Saxon SA).

Updated DITA Open Toolkit

The DITA Open Toolkit was updated in the oXygen XML editor DITA authoring framework to the latest version 1.4.1.


Version: 9.2

May 9, 2008

There are changes in:

oXygen XML Author Product!

Special version suited for authoring

The oXygen XML Author is available both as a separate product (standalone and Eclipse plugin) and also as a part of oXygen XML Editor. It keeps only the relevant authoring features of oXygen XML Editor enhancing the authors productivity by providing a clean and easy-to-use interface specially suited for content authors. The exact features included in oXygen XML Author are described in the feature matrix.
DITA Editor

DITA Maps Manager   [read more...]

The DITA Maps are key components for authoring DITA content. Managing these files and the referenced topics is an important feature for a DITA aware editor.

The DITA Maps Manager allows viewing and editing of DITA map files. It acts also similar with a project manager allowing you to easily open different topics/concepts for editing. The DITA maps manager is shown each time you open a .ditamap file in oXygen and it will appear as a tab in the same stack as the Project view. A double-click on a file reference listed in a DITA map opens that file in the editor.

Integrated DITA Open Toolkit   [read more...]

The tool chain to generate output in a multitude of formats (XHTML, PDF, HTML, JavaHelp, Eclipse Help, DocBook, etc.) is ready to use out of the box as oXygen includes the latest version of the DITA-OT.

Power users have the possibility to fine tune the transformations by using the advanced options (for example, specifying parameters for the ANT build files, filtering content using a DITAVAL file or a Profiling Condition Set, providing a custom build file, etc.)

Integrated the Idiom FO plugin for DITA Open Toolkit

You can generate high quality PDF output using the PDF2 transformation scenario. It uses the Idiom FO plugin that comes installed in the DITA Open Toolkit bundled in oXygen. The plugin transforms a DITA map to PDF using the XEP or Antenna House processors - depending on which of them is configured in oXygen XML Editor - or the built-in Apache FOP processor.

Support for creation of content reference links   [read more...]

Content referencing (conref) is a convenient DITA mechanism for re-use of content from other topics or maps. You can easily insert a conref in a DITA document using the "Insert a DITA Content Reference" action. It allows you to choose the target ID by selecting it from the list of IDs defined in a topic.

oXygen supports the DITA 1.2 indirect referencing based on key references and key definitions (keyref and conkeyref) to increase reusability of content. There is also support for inserting and rendering of content referred through the pair of attributes conref / conrefend.

Display of the resolved DITA content in the editor   [read more...]

The XML content referred with DITA conref is presented in place as a read-only block that can be collapsed or expanded. Therefore, the XML editor shows a picture of the entire XML document with all the XML references resolved.

WYSIWYG XML Editor

In-place view of the included XML content

Similar to the DITA conref support, the XML content included using XInclude or external entities is presented in place as a read-only block that can be collapsed/expanded.

Document Navigation Using Links

With the navigation links support, it is easy to go from a DITA conref to the referred content, from a DocBook link to the target element, or from an XInclude reference to the included content, with just a single click.

Support for creating Chinese, Japanese, Korean (CJK) content   [read more...]

The input methods for CJK text are fully supported. The editor displays an on-the-spot pop-up window with the composed text when the inserted characters belong to the CJK code pages. The composed text is shown in the context of the document that it will eventually belong to, in a style that indicates that the text still needs to be converted or confirmed by the user.

Wrapping of CJK text

The wrapping of CJK (Chinese Japanese Korean) text in the Author mode of oXygen XML Editor takes into account some rules for wrapping at punctuation marks in East Asian languages. For example, in CJK text a punctuation mark cannot be the first character of a line.

Presentation Modes for XML Tags

Two additional presentation modes for the XML tags were added to the Author editing mode. One mode displays both the start tag and the end tag of each XML element including the attributes using small graphical symbols. The other mode displays the start tag and the end tag of the inline XML elements but hides the tags of block elements.

Content Completion Proposals for Element Values

When the content model of an XML element allows a specific set of values defined with an enumeration type then the content completion list includes those enumeration values.

Control how to combine the CSS specified in the document with the default CSS of the document type

The developer of a document type can decide if the CSS stylesheets specified inside a document (using xml-stylesheet processing instructions) will replace the default CSS stylesheets or will be merged with them. This is useful for XML documents where it is needed to change only the styles for several elements, and leave the default styles for the rest (the XHTML documents, for instance).

CSS Functions

For allowing greater flexibility in presenting the generated content in the visual mode oXygen provides a set of additional CSS functions. The replace function allows to replace all occurrences of a string with another (regular expressions are supported), the document-url function returns the full URL of the document and the parent-url function returns the parent directory URL of another URL.

Extend selection to the ancestor XML elements

The action Select Content applied repeatedly starts with selecting the XML element from the cursor position and extends the selection to the ancestor XML elements. Each execution of the action extends the current selection to the surrounding element.

Enhancement for foldable elements

When a foldable element is collapsed it is possible to show a title of that collapsed element. This enhancement makes it possible to have the title content extracted from an attribute value rather than using only an element value. If the CSS stylesheet sets the custom foldable property of an XML element but it does not set the custom not-foldable-child property then at the time the element is collapsed only the before pseudo element is visible in the Author mode of oXygen XML Editor.

Find All Elements Action   [read more...]

The Find All Elements action is available in all the XML editor modes: Text, Author and Grid. It represents an easy way to search for XML elements using tag name, attribute name, and value.

Text editing Mode of the XML Editor

Automatic Editing of the Matching End-tag   [read more...]

It is easy to rename elements in oXygen. When the start-tag of an XML element is edited, the matching end-tag is automatically changed, thus keeping the XML document "well-formed" and saving you a few keystrokes. This behavior is controlled from the preferences page.

Better Drag-and-Drop support

The drag-and-drop actions can now also be executed on a selection including multiple nodes of a tree. This is available for the DITA Maps Manager, SVN Working Copy, and Outline views.

Option for preserving the formatting of embedded JavaScript or CSS code

Embedded scripts or CSS styles are automatically formatted by specific JavaScript and CSS formatters. Sometimes it is desired to keep the original formatting of these embedded scripts or CSS styles. An option was added for preserving the formatting.
Database support

Database access through WebDAV

A database connection can be set up to browse the database collections and access the data in read/write mode through WebDAV. Any database with a WebDAV interface can be accessed in oXygen XML Editor (for example, MarkLogic and Tamino).

Select the initial XML eXist collection or the initial Tamino database

When a database connection is set up the user can choose the initial XML collection which will be accessed through that connection. This support is offered only for the Tamino and eXist databases.
XML Schema improvements

Custom schema for XML Schema annotations   [read more...]

XML Schemas contain annotations for providing additional information, such as documentation or application specific information. For instance, a schema can contain documentation for its components in XHTML or can contain Schematron embedded rules. You can specify a schema for these annotations and oXygen will use that for providing content completion proposals, thus facilitating the editing support.

Schematron improvements

Option for using Saxon EE (Schema Aware) for Schematron   [read more...]

The XPath 2.0 checks used in an ISO Schematron schema or a Schematron 1.5 schema can be executed optionally with Saxon EE instead of Saxon B in order to access the schema-aware features of Saxon EE. The Saxon EE processor is an extension of the Saxon B one and is bundled with oXygen.

Allow foreign elements in an ISO Schematron schema   [read more...]

The allow-foreign parameter set for Schematron processing allows XML elements which are outside the ISO Schematron namespace (for example, xsl:function and xsl:import-schema) to be used inside an ISO Schematron schema.

Other improvements

Stop an external tool

When the execution of an external tool is too long you can stop its execution.

Check references to XML Schema elements in WSDL messages

When a WSDL document is validated there is an additional verification: the references to the XML elements used in the defined messages are checked to see if they point to valid XML elements defined in the types section of the WSDL document.

NTLM authentication

oXygen supports NTLM authentication.
Component Updates

Updated the Saxon 9 XSLT / XQuery processor

The Saxon 9 XSLT and XQuery processor was updated to the latest version: 9.0.0.4. Both Saxon 9 Basic and Schema Aware versions are supported, including XSLT and XQuery debugging and profiling, and schema validation. For the Schema Aware version you need a separate license from Saxonica.

Updated the DocBook XML framework

The OASIS DocBook XML Schemas were updated to the version 5.0. The DocBook XSL stylesheets were updated to the version 1.73.2 which is namespace aware.

Updated DITA Open Toolkit

The DITA Open Toolkit was updated in the oXygen XML editor DITA authoring framework to the latest version 1.4.2.1

Support for latest version of Berkeley DB XML

Version 2.4.11 of the Berkeley DB XML native XML database is now supported.

Updated the XQuery documentation tool

The version 1.6 of the XQDoc tool can be used for generating HTML documentation for XQuery documents.

Updated the XML security component

The Apache XML security library was updated to the version 1.4.1. It is used for the canonicalization of XML documents and for digital signatures of XML documents.


Version: 9.3

July 2, 2008

There are changes in:

OOXML, ODF and other ZIP-based packages support

Microsoft® Office 2007 - Office Open XML (OOXML)   [read more...]

oXygen XML Editor offers support for editing, transforming and validating documents composing the Office Open XML (OOXML) package directly through the archive support. This support is also available for other zipped files.

Open Document Format (ODF)   [read more...]

oXygen XML Editor allows you to extract, validate, edit and process the XML data stored in OpenDocument files and any other ZIP-based archive. These capabilities allow developers to use data from ODF documents together with validation and transformations (using XSLT or XQuery) to other file formats.

Edit/Process files directly from ZIP-based packages

You can transform (using XSLT 1.0, 2.0, XQuery), validate, and perform many other operations on files inside archives.

Comparing files and directories from ZIP-based archives

You can seamlessly compare and merge files in ZIP archives (OOXML, ODF, JAR, etc.) using the Compare Directories tool. You can examine and merge differences in files from ZIP archives in the Compare Files tool.
Improvements in the visual Author mode

Support for images referenced by an entity name

The Author mode can display images referenced by the name of an external entity which specifies the physical location of the image file.

Support for multiple selection in the Author Outliner

You can drag-and-drop, cut, copy, paste or delete multiple nodes in the Author Outliner.
Improvements in the DITA Map editor

Easier addition of topic references in DITA Maps

You can insert multiple topic references repeatedly without closing the insertion dialog. The dialog also has an integrated file navigator for easier topic references browsing. Using the contextual menu you can also easily insert a topic reference to the current edited topic.

Support for using URI's in topic references

If a topic reference contains a URI value it will be solved through the oXygen configured catalogs before being displayed in the DITA Map.

Generate bookmarks in PDF transformations with DITA Open Toolkit

The XSLT stylesheets of DITA Open Toolkit for PDF output were patched for generating correct PDF bookmarks and a Table of Contents.
Improvements in the Text editor

Improved attributes editing support

You can quickly find and insert an attribute without having to edit directly in the attributes table using the enhanced attributes editor. You can also choose a file path as an attribute value. This support is available in the Attributes, Outline and Schema Diagram views.

Selection plugins can be applied to non XML documents

A selection plugin can now be applied to non-XML documents. In previous versions it could be applied only to an XML document.
Other features

Show/Hide Processing Instructions and Comments in the Text/Author Outliner

You can use a toggle button in the Outliner view to easily show/hide Processing Instructions and Comments in the Outliner tree.

Easier generation of XML Schema Documentation from an external process

You can export the settings of the schema documentation dialog to an XML file. With the exported settings file you can generate the same HTML documentation from the command line by running the script schemaDocumentation.bat (on Windows) / schemaDocumentation.sh (on Mac OS X / Unix / Linux) located in the oXygen XML Editor installation folder.

More detailed errors in digital signature verification

When the verification of a digital signature fails, the error messages offer more details when they are available. This is the case when the signature hash value does not match the signed content or the public key is invalid.

More flexible options when creating detached signatures

You can set options such as Transformation type, XPath, or ID when creating a detached signature.

Drag-and-Drop in the Project Linked Folders

The structure of the project tree can be changed by drag-and-drop actions also when the tree contains linked folders.

Built-in Support for Validation and Content Completion in MathML Documents

oXygen includes the Math 2.0 DTD's allowing validation and content completion proposals in MathML XML documents.

Support for post-validation in LIBXML

The --postvalid flag is set as default allowing LIBXML to correctly validate the main document even if the XInclude fragments contain IDREFS located in other fragments.
Component Updates

Support for eXist database 1.2.2

The eXist database support was updated to eXist version 1.2.2.

Updated the Saxon 9 XSLT / XQuery processor

The Saxon 9 XSLT and XQuery processor was updated to the latest version: 9.0.0.6. Both Saxon 9 Basic and Schema Aware versions are supported, including XSLT and XQuery debugging and profiling, and schema validation. For the Schema Aware version you need a separate license from Saxonica.

Updated the Xalan processor

The Apache XSLT 1.0 processor was updated to version 2.7.1. Xalan can be used for running XSLT transformations in both the Editor perspective and the XSLT Debugger one and for validating XSLT stylesheets.

Updated the NekoHTML parser

The Apache NekoHTML parser was updated to version 1.9.7. The NekoHTML parser is used for parsing HTML documents and making them valid XHTML documents.


Video Tutorials
Upcoming Events
oXygen Users Meetup Prague 2015
oXygen Users Meetup Prague 2015
February 13, 2015
Prague, Czech Republic
" oXygen XML Editor is the premier text editor for XML geeks, and an indispensable tool for O'Reilly's Production group. My team uses oXygen XML Editor for everything from simple XML editing to Schema validation and XSLT transformations. The digital production staff especially loves oXygen's built-in EPUB support, which eliminates a great deal of the grunt work that is usually entailed in editing EPUB files. The more we use oXygen, the more realize what a powerful tool it can be in digital and XML-based workflows."
Adam Witwer
Director of Content and Publishing Operations
O'Reilly Media