Return-Path: X-Original-To: apmail-ant-ivy-user-archive@www.apache.org Delivered-To: apmail-ant-ivy-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 46ADB5E31 for ; Tue, 10 May 2011 21:06:37 +0000 (UTC) Received: (qmail 80264 invoked by uid 500); 10 May 2011 21:06:36 -0000 Delivered-To: apmail-ant-ivy-user-archive@ant.apache.org Received: (qmail 80238 invoked by uid 500); 10 May 2011 21:06:36 -0000 Mailing-List: contact ivy-user-help@ant.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ivy-user@ant.apache.org Delivered-To: mailing list ivy-user@ant.apache.org Received: (qmail 80230 invoked by uid 99); 10 May 2011 21:06:36 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 May 2011 21:06:36 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [63.101.151.11] (HELO USA7109MR002.ACS-INC.COM) (63.101.151.11) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 May 2011 21:06:27 +0000 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEACKoyU0N8miR/2dsb2JhbACmDHfHNoYPBIZCiS6Ofg X-IronPort-AV: E=Sophos;i="4.64,347,1301893200"; d="rnc'?scan'208";a="38457187" Received: from klotzpc.adoc.xerox.com ([13.242.104.145]) by USA7109MR002.ACS-INC.COM with ESMTP; 10 May 2011 16:06:04 -0500 Message-ID: <4DC9A8BB.3080702@xerox.com> Date: Tue, 10 May 2011 14:06:03 -0700 From: Leigh L Klotz Jr User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Lightning/1.0b2 Thunderbird/3.1.10 MIME-Version: 1.0 To: ivy-user@ant.apache.org Subject: Relax NG schema for ivy.xml Content-Type: multipart/mixed; boundary="------------030107090507090404050509" X-Virus-Checked: Checked by ClamAV on apache.org --------------030107090507090404050509 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Attached is a pair of RelaxNG schemas in compact syntax for ivy.xml format, created using trang [1] from the existing XSD schema. Both are semantically equivalent to the XSD schema but can be used by XML tools such as oXygen and Emacs NXML. One file is produced mechanically (with a minor conversion error fixed in the name used for the lax patterns). It's Russian-doll nested and difficult to read, so the second file (ivy.rnc) file uses names to eliminate some of the nesting. It's quite readable. These are just format conversions of the existing schema, and aren't a new work. Leigh. --------------030107090507090404050509 Content-Type: text/plain; name="ivy.rnc" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ivy.rnc" # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. default namespace local = "" start = ivy-module ivy-module = element ivy-module { attribute version { xsd:string }, info, configurations?, publications?, dependencies?, conflicts? } info = element info { attribute \default { xsd:boolean }?, attribute namespace { xsd:string }?, attribute resolver { xsd:string }?, attribute publication { xsd:string }?, attribute status { xsd:string }?, revision.att?, branch.att?, module.att, organisation.att?, extends*, element license { url.att?, name.att }*, element ivyauthor { url.att?, name.att }*, repository*, description?, any-element-other*, any-attribute-other* } repository = element repository { name.att, attribute artifacts { xsd:boolean }?, attribute ivys { xsd:boolean }?, attribute pattern { xsd:string }?, url.att? } description = element description { mixed { attribute homepage { xsd:anyURI }?, any-element-any* } } extends = element extends { attribute extendType { xsd:string }?, attribute location { xsd:string }?, revision.att, module.att, organisation.att } configurations = element configurations { confmappingoverride.att?, defaultconfmapping.att?, defaultconf.att?, (Configurations.Conf | Configurations.Include)* } Configurations.Include = element include { url.att?, attribute file { xsd:anyURI }? } Configurations.Conf = element conf { name.att, attribute visibility { "public" | "private" }?, attribute deprecated { xsd:string }?, attribute description { xsd:string }?, attribute extends { xsd:string }?, transitive.att?, any-attribute-other* } publications = element publications { defaultconf.att?, artifact* } artifact = element artifact { name.att?, url.att?, conf.att?, ext.att?, type.att?, ConfByNameElement*, any-attribute-other* } dependencies = element dependencies { confmappingoverride.att?, defaultconfmapping.att?, defaultconf.att?, dependency*, Dependencies.Exclude*, override*, conflict* } Dependencies.Exclude = element exclude { matcher.att?, conf.att?, ext.att?, type.att?, artifact.att?, module.att?, org.att?, ConfByNameElement*, any-attribute-other* } dependency = element dependency { name.att, conf.att?, transitive.att?, attribute changing { xsd:boolean }?, attribute force { xsd:boolean }?, attribute revConstraint { xsd:string }?, rev.att, attribute branchConstraint { xsd:string }?, branch.att?, org.att?, Dependency.Conf*, artifact*, Dependency.Include*, Dependency.Exclude*, any-attribute-other* } Dependency.Conf = element conf { name.att, attribute mapped { xsd:string }?, element mapped { name.att }* } Dependency.Include = element include { name.att?, conf.att?, ext.att?, type.att?, matcher.att?, ConfByNameElement*, any-attribute-other* } Dependency.Exclude = element exclude { name.att?, conf.att?, ext.att?, type.att?, matcher.att?, module.att?, org.att?, ConfByNameElement*, any-attribute-other* } override = element override { attribute branch { xsd:string }?, rev.att?, matcher.att?, module.att?, org.att? } conflict = element conflict { matcher.att?, rev.att?, attribute manager { xsd:string }?, module.att?, org.att?, any-attribute-other* } conflicts = element conflicts { Conflicts.Manager+ } Conflicts.Manager = element manager { name.att?, matcher.att?, rev.att?, module.att?, org.att?, any-attribute-other* } exclude = element exclude { matcher.att?, conf.att?, ext.att?, type.att?, artifact.att?, module.att?, org.att?, ConfByNameElement*, any-attribute-other* } ConfByNameElement = element conf { name.att } artifact.att = attribute artifact { xsd:string } branch.att = attribute branch { xsd:string } conf.att = attribute conf { xsd:string } confmappingoverride.att = attribute confmappingoverride { xsd:boolean } defaultconf.att = attribute defaultconf { xsd:string } defaultconfmapping.att = attribute defaultconfmapping { xsd:string } ext.att = attribute ext { xsd:string } matcher.att = attribute matcher { xsd:string } module.att = attribute module { xsd:string } name.att = attribute name { xsd:string } org.att = attribute org { xsd:string } organisation.att = attribute organisation { xsd:string } rev.att = attribute rev { xsd:string } revision.att = attribute revision { xsd:string } transitive.att = attribute transitive { xsd:boolean } type.att = attribute type { xsd:string } url.att = attribute url { xsd:anyURI } any-element-other = element * - local:* { mixed { (attribute * { text } | any-element-other)* } } any-element-any = element * - ivy-module { mixed { (attribute * { text } | any-element-any)* } | ivy-module } any-attribute-other = attribute * - local:* { text } --------------030107090507090404050509 Content-Type: text/plain; name="ivy-mechanical.rnc" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ivy-mechanical.rnc" # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. default namespace local = "" start = ivy-module ivy-module = notAllowed | element ivy-module { attribute version { xsd:string }, element info { attribute default { xsd:boolean }?, attribute namespace { xsd:string }?, attribute resolver { xsd:string }?, attribute publication { xsd:string }?, attribute status { xsd:string }?, attribute revision { xsd:string }?, attribute branch { xsd:string }?, attribute module { xsd:string }, attribute organisation { xsd:string }?, element extends { attribute extendType { xsd:string }?, attribute location { xsd:string }?, attribute revision { xsd:string }, attribute module { xsd:string }, attribute organisation { xsd:string } }*, element license { attribute url { xsd:string }?, attribute name { xsd:string } }*, element ivyauthor { attribute url { xsd:string }?, attribute name { xsd:string } }*, element repository { attribute artifacts { xsd:boolean }?, attribute ivys { xsd:boolean }?, attribute pattern { xsd:string }?, attribute url { xsd:string }?, attribute name { xsd:string } }*, element description { mixed { attribute homepage { xsd:string }?, any-lax-any* } }?, any-lax-other*, attribute * - local:* { text }* }, element configurations { attribute confmappingoverride { xsd:boolean }?, attribute defaultconfmapping { xsd:string }?, attribute defaultconf { xsd:string }?, (element conf { attribute visibility { xsd:string "public" | xsd:string "private" }?, attribute deprecated { xsd:string }?, attribute description { xsd:string }?, attribute extends { xsd:string }?, attribute transitive { xsd:boolean }?, attribute name { xsd:string }, attribute * - local:* { text }* } | element include { attribute url { xsd:string }?, attribute file { xsd:string }? })* }?, element publications { attribute defaultconf { xsd:string }?, element artifact { attribute url { xsd:string }?, attribute conf { xsd:string }?, attribute ext { xsd:string }?, attribute type { xsd:string }?, attribute name { xsd:string }?, element conf { attribute name { xsd:string } }*, attribute * - local:* { text }* }* }?, element dependencies { attribute confmappingoverride { xsd:boolean }?, attribute defaultconfmapping { xsd:string }?, attribute defaultconf { xsd:string }?, element dependency { attribute conf { xsd:string }?, attribute transitive { xsd:boolean }?, attribute changing { xsd:boolean }?, attribute force { xsd:boolean }?, attribute revConstraint { xsd:string }?, attribute rev { xsd:string }, attribute branchConstraint { xsd:string }?, attribute branch { xsd:string }?, attribute name { xsd:string }, attribute org { xsd:string }?, element conf { attribute mapped { xsd:string }?, attribute name { xsd:string }, element mapped { attribute name { xsd:string } }* }*, element artifact { attribute url { xsd:string }?, attribute conf { xsd:string }?, attribute ext { xsd:string }?, attribute type { xsd:string }?, attribute name { xsd:string }, element conf { attribute name { xsd:string } }*, attribute * - local:* { text }* }*, element include { attribute matcher { xsd:string }?, attribute conf { xsd:string }?, attribute ext { xsd:string }?, attribute type { xsd:string }?, attribute name { xsd:string }?, element conf { attribute name { xsd:string } }*, attribute * - local:* { text }* }*, element exclude { attribute matcher { xsd:string }?, attribute conf { xsd:string }?, attribute ext { xsd:string }?, attribute type { xsd:string }?, attribute name { xsd:string }?, attribute module { xsd:string }?, attribute org { xsd:string }?, element conf { attribute name { xsd:string } }*, attribute * - local:* { text }* }*, attribute * - local:* { text }* }*, element exclude { attribute matcher { xsd:string }?, attribute conf { xsd:string }?, attribute ext { xsd:string }?, attribute type { xsd:string }?, attribute artifact { xsd:string }?, attribute module { xsd:string }?, attribute org { xsd:string }?, element conf { attribute name { xsd:string } }*, attribute * - local:* { text }* }*, element override { attribute branch { xsd:string }?, attribute rev { xsd:string }?, attribute matcher { xsd:string }?, attribute module { xsd:string }?, attribute org { xsd:string }? }*, element conflict { attribute matcher { xsd:string }?, attribute rev { xsd:string }?, attribute manager { xsd:string }?, attribute module { xsd:string }?, attribute org { xsd:string }?, attribute * - local:* { text }* }* }?, element conflicts { element manager { attribute matcher { xsd:string }?, attribute rev { xsd:string }?, attribute name { xsd:string }?, attribute module { xsd:string }?, attribute org { xsd:string }?, attribute * - local:* { text }* }+ }? } any-lax-other = element * - local:* { mixed { (attribute * { text } | any-lax-other)* } } any-lax-any = element * - ivy-module { mixed { (attribute * { text } | any-lax-any)* } } | ivy-module --------------030107090507090404050509--