diff --git a/v2/2_1_1/schemas/dbl-xhtml.rnc b/v2/2_1_1/schemas/dbl-xhtml.rnc index 58f85f1..adfd04a 100644 --- a/v2/2_1_1/schemas/dbl-xhtml.rnc +++ b/v2/2_1_1/schemas/dbl-xhtml.rnc @@ -1,6 +1,6 @@ # dbl-xhtml.rnc v2.1.1 # Generated by mark@notamacbook using makeRNC.py -# Generated Tue Jan 30 16:46:24 2018 +# Generated Tue Feb 6 19:20:05 2018 # Standalone xhtml schema diff --git a/v2/2_1_1/schemas/dbl-xhtml.rng b/v2/2_1_1/schemas/dbl-xhtml.rng index f46cf73..6656118 100644 --- a/v2/2_1_1/schemas/dbl-xhtml.rng +++ b/v2/2_1_1/schemas/dbl-xhtml.rng @@ -3,7 +3,7 @@ diff --git a/v2/2_1_1/schemas/dbl-xhtml.xsd b/v2/2_1_1/schemas/dbl-xhtml.xsd index 1274925..05fb177 100644 --- a/v2/2_1_1/schemas/dbl-xhtml.xsd +++ b/v2/2_1_1/schemas/dbl-xhtml.xsd @@ -3,7 +3,7 @@ diff --git a/v2/2_1_1/schemas/job-spec-upload.rnc b/v2/2_1_1/schemas/job-spec-upload.rnc index 08f84ad..cafdf27 100644 --- a/v2/2_1_1/schemas/job-spec-upload.rnc +++ b/v2/2_1_1/schemas/job-spec-upload.rnc @@ -1,6 +1,6 @@ # job-spec-upload.rnc v2.1.1 # Generated by mark@notamacbook using makeRNC.py -# Generated Tue Jan 30 16:46:24 2018 +# Generated Tue Feb 6 19:20:05 2018 # job specification @@ -17,7 +17,7 @@ start = element job-request { # Document types -dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata) +dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata | paratextZipResourceMetadata) translationMetadata = textTranslationMetadata | audioTranslationMetadata | videoTranslationMetadata @@ -124,6 +124,20 @@ videoTranslationAndExpressionMetadata = element DBLMetadata { videoFormatElement } +paratextZipResourceMetadata = element DBLMetadata { + dblMetadataCommonAtts & + paratextZipResourceIdentificationElement & + paratextZipResourceTypeElement & + relationshipsElement & + paratextZipResourceAgenciesElement & + shortLanguageElement & + translationManifestElement & + paratextZipResourceSourceElement & + paratextZipResourcePublicationsElement & + copyrightElement & + archiveStatusElement +} + translationCommonElements = ( commonElements & translationManifestElement & @@ -202,9 +216,19 @@ identificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & + element dateCompleted { dateCompletedValue }? & + (gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + element bundleProducer { lenGe2String } + } +paratextZipResourceIdentificationElement = + element identification { + element name { lenGe2String } & + element nameLocal { lenGe2String }? & + element abbreviation { abbreviationString } & + element abbreviationLocal { localAbbreviationString }? & element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -218,9 +242,8 @@ textIdentificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & - element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -262,7 +285,11 @@ ptElements = element name { lenGe2String } & element fullName { lenGe2String } & element csetId { lenGe2String }? & - element id { ptId } + element id { ptId } & + ( + element baseId { ptId } & + element baseName { lenGe2String } + )? ptregElements = element id { ptregId } @@ -426,6 +453,13 @@ agenciesElement = contributorElement+ } +paratextZipResourceAgenciesElement = + element agencies { + rightsHolderElement+ & + rightsAdminElement? & + contributorElement? + } + rightsHolderElement = element rightsHolder { element abbr { lenGe2String } & @@ -826,6 +860,16 @@ videoTranslationAndExpressionTypeElement = element isConfidential { xsd:boolean } } +paratextZipResourceTypeElement = + element type { + element medium { "paratextZipResource" } & + element hasCharacters { "true" } & + element isTranslation { "false" } & + element isExpression { "false" } & + element isConfidential { xsd:boolean } & + element projectType { paratextZipResourceProjectType } +} + commonTextTranslationTypeElements = ( commonTranslationTypeElements ) @@ -885,6 +929,20 @@ translationLevelEnum = ( "Children" ) +paratextZipResourceProjectType = ( + "Standard" | + "Daughter" | + "StudyBible" | + "StudyBibleAdditions" | + "BackTranslation" | + "Auxiliary" | + "TransliterationManual"| + "TransliterationWithEncoder" | + "ConsultantNotes" | + "GlobalConsultantNotes" | + "GlobalAnthropologyNotes" +) + # format textFormatElement = @@ -1071,6 +1129,11 @@ translationSourceElement = ( element canonicalContent { canonicalContentBook+} & element structure { (sourceStructureDivision | sourceStructureContent)+ } ) } +paratextZipResourceSourceElement = + element source { + element structure { (sourceStructureDivision | sourceStructureContent)+ } + } + sourceStructureDivision = element division { attribute name {nameIdString}, @@ -1089,11 +1152,16 @@ sourceStructureContent = srcPathString = xsd:string { pattern = "[A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)*" } +srcPathPartString = xsd:string { pattern = "(((zip|xpath)://)|#).+" } + # publications publicationsElement = # DCMI: tableOfContents element publications { publicationElement+ } +paratextZipResourcePublicationsElement = + element publications { paratextZipResourcePublicationElement+ } + publicationElement = element publication { attribute id { publicationId }, @@ -1101,6 +1169,13 @@ publicationElement = publicationChildElements } +paratextZipResourcePublicationElement = + element publication { + attribute id { publicationId }, + attribute default { xsd:boolean }?, + paratextZipResourcePublicationChildElements + } + publicationChildElements = ( element name { lenGe2String }? & element nameLocal { lenGe2String }? & @@ -1114,6 +1189,11 @@ publicationChildElements = ( element canonicalContent { canonicalContentBook+} & element structure { (publicationStructureDivision | publicationStructureContent)+ } ) +paratextZipResourcePublicationChildElements = ( + element name { lenGe2String }? & + element nameLocal { lenGe2String }? & + element structure { (publicationStructureDivision | publicationStructureContent)+ } +) publicationCountriesElement = element countries { countryElement+ } @@ -1133,12 +1213,13 @@ publicationStructureContent = element content { attribute name {nameIdString}? & attribute src {srcPathString} & - attribute role {roleId}? + attribute role {roleId}? & + attribute srcPart {srcPathPartString}? } # publications text -roleId = ptReference | knownRole | extensionRole +roleId = ptReference | nonCanonicalBookIdEnum | knownRole | extensionRole ptReference = xsd:string { pattern = "((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)(;(((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)))*" } diff --git a/v2/2_1_1/schemas/job-spec-upload.rng b/v2/2_1_1/schemas/job-spec-upload.rng index 04c1582..5b6d3f0 100644 --- a/v2/2_1_1/schemas/job-spec-upload.rng +++ b/v2/2_1_1/schemas/job-spec-upload.rng @@ -2,7 +2,7 @@ @@ -34,6 +34,7 @@ + @@ -191,6 +192,23 @@ + + + + + + + + + + + + + + + + + @@ -367,11 +385,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -420,8 +479,8 @@ - + @@ -493,6 +552,16 @@ + + + + + + + + + + @@ -755,6 +824,21 @@ + + + + + + + + + + + + + + + @@ -1413,6 +1497,30 @@ + + + + + paratextZipResource + + + true + + + false + + + false + + + + + + + + + + @@ -1483,6 +1591,21 @@ Children + + + Standard + Daughter + StudyBible + StudyBibleAdditions + BackTranslation + Auxiliary + TransliterationManual + TransliterationWithEncoder + ConsultantNotes + GlobalConsultantNotes + GlobalAnthropologyNotes + + @@ -1876,6 +1999,18 @@ + + + + + + + + + + + + @@ -1919,6 +2054,11 @@ [A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)* + + + (((zip|xpath)://)|#).+ + + @@ -1928,6 +2068,13 @@ + + + + + + + @@ -1941,6 +2088,19 @@ + + + + + + + + + + + + + @@ -1999,6 +2159,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -2047,6 +2229,11 @@ + + + + + @@ -2054,6 +2241,7 @@ + diff --git a/v2/2_1_1/schemas/metadata-lax.rnc b/v2/2_1_1/schemas/metadata-lax.rnc index 07e6b16..260b063 100644 --- a/v2/2_1_1/schemas/metadata-lax.rnc +++ b/v2/2_1_1/schemas/metadata-lax.rnc @@ -1,6 +1,6 @@ # metadata-lax.rnc v2.1.1 # Generated by mark@notamacbook using makeRNC.py -# Generated Tue Jan 30 16:46:24 2018 +# Generated Tue Feb 6 19:20:04 2018 default namespace = "" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" @@ -11,7 +11,7 @@ start = dblMetadataElement # Document types -dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata) +dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata | paratextZipResourceMetadata) translationMetadata = textTranslationMetadata | audioTranslationMetadata | videoTranslationMetadata @@ -118,6 +118,20 @@ videoTranslationAndExpressionMetadata = element DBLMetadata { videoFormatElement } +paratextZipResourceMetadata = element DBLMetadata { + dblMetadataCommonAtts & + paratextZipResourceIdentificationElement & + paratextZipResourceTypeElement & + relationshipsElement & + paratextZipResourceAgenciesElement & + shortLanguageElement & + translationManifestElement & + paratextZipResourceSourceElement & + paratextZipResourcePublicationsElement & + copyrightElement & + archiveStatusElement +} + translationCommonElements = ( commonElements & translationManifestElement & @@ -196,9 +210,19 @@ identificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & + element dateCompleted { dateCompletedValue }? & + (gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + element bundleProducer { lenGe2String } + } +paratextZipResourceIdentificationElement = + element identification { + element name { lenGe2String } & + element nameLocal { lenGe2String }? & + element abbreviation { abbreviationString } & + element abbreviationLocal { localAbbreviationString }? & element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -212,9 +236,8 @@ textIdentificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & - element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -256,7 +279,11 @@ ptElements = element name { lenGe2String } & element fullName { lenGe2String } & element csetId { lenGe2String }? & - element id { ptId } + element id { ptId } & + ( + element baseId { ptId } & + element baseName { lenGe2String } + )? ptregElements = element id { ptregId } @@ -359,6 +386,13 @@ agenciesElement = contributorElement+ } +paratextZipResourceAgenciesElement = + element agencies { + rightsHolderElement+ & + rightsAdminElement? & + contributorElement? + } + rightsHolderElement = element rightsHolder { element abbr { lenGe2String } & @@ -559,6 +593,16 @@ videoTranslationAndExpressionTypeElement = element isConfidential { xsd:boolean } } +paratextZipResourceTypeElement = + element type { + element medium { "paratextZipResource" } & + element hasCharacters { "true" } & + element isTranslation { "false" } & + element isExpression { "false" } & + element isConfidential { xsd:boolean } & + element projectType { paratextZipResourceProjectType } +} + commonTextTranslationTypeElements = ( commonTranslationTypeElements ) @@ -760,6 +804,11 @@ translationSourceElement = ( element canonicalContent { canonicalContentBook+} & element structure { (sourceStructureDivision | sourceStructureContent)+ } ) } +paratextZipResourceSourceElement = + element source { + element structure { (sourceStructureDivision | sourceStructureContent)+ } + } + sourceStructureDivision = element division { attribute name {nameIdString}, @@ -783,6 +832,9 @@ srcPathString = text publicationsElement = # DCMI: tableOfContents element publications { publicationElement+ } +paratextZipResourcePublicationsElement = + element publications { paratextZipResourcePublicationElement+ } + publicationElement = element publication { attribute id { publicationId }, @@ -790,6 +842,13 @@ publicationElement = publicationChildElements } +paratextZipResourcePublicationElement = + element publication { + attribute id { publicationId }, + attribute default { xsd:boolean }?, + paratextZipResourcePublicationChildElements + } + publicationChildElements = ( element name { lenGe2String }? & element nameLocal { lenGe2String }? & @@ -803,6 +862,11 @@ publicationChildElements = ( element canonicalContent { canonicalContentBook+} & element structure { (publicationStructureDivision | publicationStructureContent)+ } ) +paratextZipResourcePublicationChildElements = ( + element name { lenGe2String }? & + element nameLocal { lenGe2String }? & + element structure { (publicationStructureDivision | publicationStructureContent)+ } +) publicationCountriesElement = element countries { countryElement+ } @@ -822,7 +886,8 @@ publicationStructureContent = element content { attribute name {nameIdString}? & attribute src {srcPathString} & - attribute role {roleId}? + attribute role {roleId}? & + attribute srcPart {srcPathPartString}? } # publications text diff --git a/v2/2_1_1/schemas/metadata-lax.rng b/v2/2_1_1/schemas/metadata-lax.rng index 93b23a1..17d9bbe 100644 --- a/v2/2_1_1/schemas/metadata-lax.rng +++ b/v2/2_1_1/schemas/metadata-lax.rng @@ -2,7 +2,7 @@ @@ -15,6 +15,7 @@ + @@ -172,6 +173,23 @@ + + + + + + + + + + + + + + + + + @@ -326,11 +344,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -379,8 +438,8 @@ - + @@ -452,6 +511,16 @@ + + + + + + + + + + @@ -617,6 +686,21 @@ + + + + + + + + + + + + + + + @@ -1060,6 +1144,30 @@ + + + + + paratextZipResource + + + true + + + false + + + false + + + + + + + + + + @@ -1439,6 +1547,18 @@ + + + + + + + + + + + + @@ -1489,6 +1609,13 @@ + + + + + + + @@ -1502,6 +1629,19 @@ + + + + + + + + + + + + + @@ -1560,6 +1700,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -1608,6 +1770,11 @@ + + + + + diff --git a/v2/2_1_1/schemas/metadata-template.rnc b/v2/2_1_1/schemas/metadata-template.rnc index e53a75b..5ba40b1 100644 --- a/v2/2_1_1/schemas/metadata-template.rnc +++ b/v2/2_1_1/schemas/metadata-template.rnc @@ -1,6 +1,6 @@ # metadata-template.rnc v2.1.1 # Generated by mark@notamacbook using makeRNC.py -# Generated Tue Jan 30 16:46:24 2018 +# Generated Tue Feb 6 19:20:05 2018 default namespace = "" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" @@ -11,7 +11,7 @@ start = dblMetadataElement # Document types -dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata) +dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata | paratextZipResourceMetadata) translationMetadata = textTranslationMetadata | audioTranslationMetadata | videoTranslationMetadata @@ -118,6 +118,20 @@ videoTranslationAndExpressionMetadata = element DBLMetadata { videoFormatElement } +paratextZipResourceMetadata = element DBLMetadata { + dblMetadataCommonAtts & + paratextZipResourceIdentificationElement & + paratextZipResourceTypeElement & + relationshipsElement & + paratextZipResourceAgenciesElement & + shortLanguageElement & + translationManifestElement & + paratextZipResourceSourceElement & + paratextZipResourcePublicationsElement & + copyrightElement & + archiveStatusElement +} + translationCommonElements = ( commonElements & translationManifestElement & @@ -196,9 +210,19 @@ identificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & + element dateCompleted { dateCompletedValue }? & + (gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + element bundleProducer { lenGe2String } + } +paratextZipResourceIdentificationElement = + element identification { + element name { lenGe2String } & + element nameLocal { lenGe2String }? & + element abbreviation { abbreviationString } & + element abbreviationLocal { localAbbreviationString }? & element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -212,9 +236,8 @@ textIdentificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & - element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -256,7 +279,11 @@ ptElements = element name { lenGe2String } & element fullName { lenGe2String } & element csetId { lenGe2String }? & - element id { ptId } + element id { ptId } & + ( + element baseId { ptId } & + element baseName { lenGe2String } + )? ptregElements = element id { ptregId } @@ -566,6 +593,16 @@ videoTranslationAndExpressionTypeElement = element isConfidential { xsd:boolean } } +paratextZipResourceTypeElement = + element type { + element medium { "paratextZipResource" } & + element hasCharacters { "true" } & + element isTranslation { "false" } & + element isExpression { "false" } & + element isConfidential { xsd:boolean } & + element projectType { paratextZipResourceProjectType } +} + commonTextTranslationTypeElements = ( commonTranslationTypeElements ) @@ -767,6 +804,11 @@ translationSourceElement = ( element canonicalContent { canonicalContentBook+} & element structure { (sourceStructureDivision | sourceStructureContent)+ } ) } +paratextZipResourceSourceElement = + element source { + element structure { (sourceStructureDivision | sourceStructureContent)+ } + } + sourceStructureDivision = element division { attribute name {nameIdString}, @@ -790,6 +832,9 @@ srcPathString = text publicationsElement = # DCMI: tableOfContents element publications { publicationElement+ } +paratextZipResourcePublicationsElement = + element publications { paratextZipResourcePublicationElement+ } + publicationElement = element publication { attribute id { publicationId }, @@ -797,6 +842,13 @@ publicationElement = publicationChildElements } +paratextZipResourcePublicationElement = + element publication { + attribute id { publicationId }, + attribute default { xsd:boolean }?, + paratextZipResourcePublicationChildElements + } + publicationChildElements = ( element name { lenGe2String }? & element nameLocal { lenGe2String }? & @@ -810,6 +862,11 @@ publicationChildElements = ( element canonicalContent { canonicalContentBook+} & element structure { (publicationStructureDivision | publicationStructureContent)+ } ) +paratextZipResourcePublicationChildElements = ( + element name { lenGe2String }? & + element nameLocal { lenGe2String }? & + element structure { (publicationStructureDivision | publicationStructureContent)+ } +) publicationCountriesElement = element countries { countryElement+ } @@ -829,7 +886,8 @@ publicationStructureContent = element content { attribute name {nameIdString}? & attribute src {srcPathString} & - attribute role {roleId}? + attribute role {roleId}? & + attribute srcPart {srcPathPartString}? } # publications text diff --git a/v2/2_1_1/schemas/metadata-template.rng b/v2/2_1_1/schemas/metadata-template.rng index f841209..471b724 100644 --- a/v2/2_1_1/schemas/metadata-template.rng +++ b/v2/2_1_1/schemas/metadata-template.rng @@ -2,7 +2,7 @@ @@ -15,6 +15,7 @@ + @@ -172,6 +173,23 @@ + + + + + + + + + + + + + + + + + @@ -326,11 +344,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -379,8 +438,8 @@ - + @@ -452,6 +511,16 @@ + + + + + + + + + + @@ -1075,6 +1144,30 @@ + + + + + paratextZipResource + + + true + + + false + + + false + + + + + + + + + + @@ -1454,6 +1547,18 @@ + + + + + + + + + + + + @@ -1504,6 +1609,13 @@ + + + + + + + @@ -1517,6 +1629,19 @@ + + + + + + + + + + + + + @@ -1575,6 +1700,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -1623,6 +1770,11 @@ + + + + + diff --git a/v2/2_1_1/schemas/metadata-upload.rnc b/v2/2_1_1/schemas/metadata-upload.rnc index 7f80b3a..54b167b 100644 --- a/v2/2_1_1/schemas/metadata-upload.rnc +++ b/v2/2_1_1/schemas/metadata-upload.rnc @@ -1,6 +1,6 @@ # metadata-upload.rnc v2.1.1 # Generated by mark@notamacbook using makeRNC.py -# Generated Tue Jan 30 16:46:24 2018 +# Generated Tue Feb 6 19:20:04 2018 default namespace = "" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" @@ -11,7 +11,7 @@ start = dblMetadataElement # Document types -dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata) +dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata | paratextZipResourceMetadata) translationMetadata = textTranslationMetadata | audioTranslationMetadata | videoTranslationMetadata @@ -118,6 +118,20 @@ videoTranslationAndExpressionMetadata = element DBLMetadata { videoFormatElement } +paratextZipResourceMetadata = element DBLMetadata { + dblMetadataCommonAtts & + paratextZipResourceIdentificationElement & + paratextZipResourceTypeElement & + relationshipsElement & + paratextZipResourceAgenciesElement & + shortLanguageElement & + translationManifestElement & + paratextZipResourceSourceElement & + paratextZipResourcePublicationsElement & + copyrightElement & + archiveStatusElement +} + translationCommonElements = ( commonElements & translationManifestElement & @@ -196,9 +210,19 @@ identificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & + element dateCompleted { dateCompletedValue }? & + (gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + element bundleProducer { lenGe2String } + } +paratextZipResourceIdentificationElement = + element identification { + element name { lenGe2String } & + element nameLocal { lenGe2String }? & + element abbreviation { abbreviationString } & + element abbreviationLocal { localAbbreviationString }? & element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -212,9 +236,8 @@ textIdentificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & - element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -256,7 +279,11 @@ ptElements = element name { lenGe2String } & element fullName { lenGe2String } & element csetId { lenGe2String }? & - element id { ptId } + element id { ptId } & + ( + element baseId { ptId } & + element baseName { lenGe2String } + )? ptregElements = element id { ptregId } @@ -420,6 +447,13 @@ agenciesElement = contributorElement+ } +paratextZipResourceAgenciesElement = + element agencies { + rightsHolderElement+ & + rightsAdminElement? & + contributorElement? + } + rightsHolderElement = element rightsHolder { element abbr { lenGe2String } & @@ -820,6 +854,16 @@ videoTranslationAndExpressionTypeElement = element isConfidential { xsd:boolean } } +paratextZipResourceTypeElement = + element type { + element medium { "paratextZipResource" } & + element hasCharacters { "true" } & + element isTranslation { "false" } & + element isExpression { "false" } & + element isConfidential { xsd:boolean } & + element projectType { paratextZipResourceProjectType } +} + commonTextTranslationTypeElements = ( commonTranslationTypeElements ) @@ -879,6 +923,20 @@ translationLevelEnum = ( "Children" ) +paratextZipResourceProjectType = ( + "Standard" | + "Daughter" | + "StudyBible" | + "StudyBibleAdditions" | + "BackTranslation" | + "Auxiliary" | + "TransliterationManual"| + "TransliterationWithEncoder" | + "ConsultantNotes" | + "GlobalConsultantNotes" | + "GlobalAnthropologyNotes" +) + # format textFormatElement = @@ -1065,6 +1123,11 @@ translationSourceElement = ( element canonicalContent { canonicalContentBook+} & element structure { (sourceStructureDivision | sourceStructureContent)+ } ) } +paratextZipResourceSourceElement = + element source { + element structure { (sourceStructureDivision | sourceStructureContent)+ } + } + sourceStructureDivision = element division { attribute name {nameIdString}, @@ -1083,11 +1146,16 @@ sourceStructureContent = srcPathString = xsd:string { pattern = "[A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)*" } +srcPathPartString = xsd:string { pattern = "(((zip|xpath)://)|#).+" } + # publications publicationsElement = # DCMI: tableOfContents element publications { publicationElement+ } +paratextZipResourcePublicationsElement = + element publications { paratextZipResourcePublicationElement+ } + publicationElement = element publication { attribute id { publicationId }, @@ -1095,6 +1163,13 @@ publicationElement = publicationChildElements } +paratextZipResourcePublicationElement = + element publication { + attribute id { publicationId }, + attribute default { xsd:boolean }?, + paratextZipResourcePublicationChildElements + } + publicationChildElements = ( element name { lenGe2String }? & element nameLocal { lenGe2String }? & @@ -1108,6 +1183,11 @@ publicationChildElements = ( element canonicalContent { canonicalContentBook+} & element structure { (publicationStructureDivision | publicationStructureContent)+ } ) +paratextZipResourcePublicationChildElements = ( + element name { lenGe2String }? & + element nameLocal { lenGe2String }? & + element structure { (publicationStructureDivision | publicationStructureContent)+ } +) publicationCountriesElement = element countries { countryElement+ } @@ -1127,12 +1207,13 @@ publicationStructureContent = element content { attribute name {nameIdString}? & attribute src {srcPathString} & - attribute role {roleId}? + attribute role {roleId}? & + attribute srcPart {srcPathPartString}? } # publications text -roleId = ptReference | knownRole | extensionRole +roleId = ptReference | nonCanonicalBookIdEnum | knownRole | extensionRole ptReference = xsd:string { pattern = "((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)(;(((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)))*" } diff --git a/v2/2_1_1/schemas/metadata-upload.rng b/v2/2_1_1/schemas/metadata-upload.rng index 21afe6b..462b336 100644 --- a/v2/2_1_1/schemas/metadata-upload.rng +++ b/v2/2_1_1/schemas/metadata-upload.rng @@ -2,7 +2,7 @@ @@ -15,6 +15,7 @@ + @@ -172,6 +173,23 @@ + + + + + + + + + + + + + + + + + @@ -348,11 +366,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -401,8 +460,8 @@ - + @@ -474,6 +533,16 @@ + + + + + + + + + + @@ -736,6 +805,21 @@ + + + + + + + + + + + + + + + @@ -1394,6 +1478,30 @@ + + + + + paratextZipResource + + + true + + + false + + + false + + + + + + + + + + @@ -1464,6 +1572,21 @@ Children + + + Standard + Daughter + StudyBible + StudyBibleAdditions + BackTranslation + Auxiliary + TransliterationManual + TransliterationWithEncoder + ConsultantNotes + GlobalConsultantNotes + GlobalAnthropologyNotes + + @@ -1857,6 +1980,18 @@ + + + + + + + + + + + + @@ -1900,6 +2035,11 @@ [A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)* + + + (((zip|xpath)://)|#).+ + + @@ -1909,6 +2049,13 @@ + + + + + + + @@ -1922,6 +2069,19 @@ + + + + + + + + + + + + + @@ -1980,6 +2140,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -2028,6 +2210,11 @@ + + + + + @@ -2035,6 +2222,7 @@ + diff --git a/v2/2_1_1/schemas/metadata.rnc b/v2/2_1_1/schemas/metadata.rnc index 1934db4..5a9752e 100644 --- a/v2/2_1_1/schemas/metadata.rnc +++ b/v2/2_1_1/schemas/metadata.rnc @@ -1,6 +1,6 @@ # metadata.rnc v2.1.1 # Generated by mark@notamacbook using makeRNC.py -# Generated Tue Jan 30 16:46:24 2018 +# Generated Tue Feb 6 19:20:04 2018 default namespace = "" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" @@ -11,7 +11,7 @@ start = dblMetadataElement # Document types -dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata) +dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata | paratextZipResourceMetadata) translationMetadata = textTranslationMetadata | audioTranslationMetadata | videoTranslationMetadata @@ -118,6 +118,20 @@ videoTranslationAndExpressionMetadata = element DBLMetadata { videoFormatElement } +paratextZipResourceMetadata = element DBLMetadata { + dblMetadataCommonAtts & + paratextZipResourceIdentificationElement & + paratextZipResourceTypeElement & + relationshipsElement & + paratextZipResourceAgenciesElement & + shortLanguageElement & + translationManifestElement & + paratextZipResourceSourceElement & + paratextZipResourcePublicationsElement & + copyrightElement & + archiveStatusElement +} + translationCommonElements = ( commonElements & translationManifestElement & @@ -196,9 +210,19 @@ identificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & + element dateCompleted { dateCompletedValue }? & + (gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + element bundleProducer { lenGe2String } + } +paratextZipResourceIdentificationElement = + element identification { + element name { lenGe2String } & + element nameLocal { lenGe2String }? & + element abbreviation { abbreviationString } & + element abbreviationLocal { localAbbreviationString }? & element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -212,9 +236,8 @@ textIdentificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & - element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -256,7 +279,11 @@ ptElements = element name { lenGe2String } & element fullName { lenGe2String } & element csetId { lenGe2String }? & - element id { ptId } + element id { ptId } & + ( + element baseId { ptId } & + element baseName { lenGe2String } + )? ptregElements = element id { ptregId } @@ -420,6 +447,13 @@ agenciesElement = contributorElement+ } +paratextZipResourceAgenciesElement = + element agencies { + rightsHolderElement+ & + rightsAdminElement? & + contributorElement? + } + rightsHolderElement = element rightsHolder { element abbr { lenGe2String } & @@ -820,6 +854,16 @@ videoTranslationAndExpressionTypeElement = element isConfidential { xsd:boolean } } +paratextZipResourceTypeElement = + element type { + element medium { "paratextZipResource" } & + element hasCharacters { "true" } & + element isTranslation { "false" } & + element isExpression { "false" } & + element isConfidential { xsd:boolean } & + element projectType { paratextZipResourceProjectType } +} + commonTextTranslationTypeElements = ( commonTranslationTypeElements ) @@ -879,6 +923,20 @@ translationLevelEnum = ( "Children" ) +paratextZipResourceProjectType = ( + "Standard" | + "Daughter" | + "StudyBible" | + "StudyBibleAdditions" | + "BackTranslation" | + "Auxiliary" | + "TransliterationManual"| + "TransliterationWithEncoder" | + "ConsultantNotes" | + "GlobalConsultantNotes" | + "GlobalAnthropologyNotes" +) + # format textFormatElement = @@ -1053,6 +1111,11 @@ translationSourceElement = ( element canonicalContent { canonicalContentBook+} & element structure { (sourceStructureDivision | sourceStructureContent)+ } ) } +paratextZipResourceSourceElement = + element source { + element structure { (sourceStructureDivision | sourceStructureContent)+ } + } + sourceStructureDivision = element division { attribute name {nameIdString}, @@ -1071,11 +1134,16 @@ sourceStructureContent = srcPathString = xsd:string { pattern = "[A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)*" } +srcPathPartString = xsd:string { pattern = "(((zip|xpath)://)|#).+" } + # publications publicationsElement = # DCMI: tableOfContents element publications { publicationElement+ } +paratextZipResourcePublicationsElement = + element publications { paratextZipResourcePublicationElement+ } + publicationElement = element publication { attribute id { publicationId }, @@ -1083,6 +1151,13 @@ publicationElement = publicationChildElements } +paratextZipResourcePublicationElement = + element publication { + attribute id { publicationId }, + attribute default { xsd:boolean }?, + paratextZipResourcePublicationChildElements + } + publicationChildElements = ( element name { lenGe2String }? & element nameLocal { lenGe2String }? & @@ -1096,6 +1171,11 @@ publicationChildElements = ( element canonicalContent { canonicalContentBook+} & element structure { (publicationStructureDivision | publicationStructureContent)+ } ) +paratextZipResourcePublicationChildElements = ( + element name { lenGe2String }? & + element nameLocal { lenGe2String }? & + element structure { (publicationStructureDivision | publicationStructureContent)+ } +) publicationCountriesElement = element countries { countryElement+ } @@ -1115,12 +1195,13 @@ publicationStructureContent = element content { attribute name {nameIdString}? & attribute src {srcPathString} & - attribute role {roleId}? + attribute role {roleId}? & + attribute srcPart {srcPathPartString}? } # publications text -roleId = ptReference | knownRole | extensionRole +roleId = ptReference | nonCanonicalBookIdEnum | knownRole | extensionRole ptReference = xsd:string { pattern = "((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)(;(((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)))*" } diff --git a/v2/2_1_1/schemas/metadata.rng b/v2/2_1_1/schemas/metadata.rng index 70a173c..918f8af 100644 --- a/v2/2_1_1/schemas/metadata.rng +++ b/v2/2_1_1/schemas/metadata.rng @@ -2,7 +2,7 @@ @@ -15,6 +15,7 @@ + @@ -172,6 +173,23 @@ + + + + + + + + + + + + + + + + + @@ -349,11 +367,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -402,8 +461,8 @@ - + @@ -475,6 +534,16 @@ + + + + + + + + + + @@ -737,6 +806,21 @@ + + + + + + + + + + + + + + + @@ -1395,6 +1479,30 @@ + + + + + paratextZipResource + + + true + + + false + + + false + + + + + + + + + + @@ -1465,6 +1573,21 @@ Children + + + Standard + Daughter + StudyBible + StudyBibleAdditions + BackTranslation + Auxiliary + TransliterationManual + TransliterationWithEncoder + ConsultantNotes + GlobalConsultantNotes + GlobalAnthropologyNotes + + @@ -1821,6 +1944,18 @@ + + + + + + + + + + + + @@ -1864,6 +1999,11 @@ [A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)* + + + (((zip|xpath)://)|#).+ + + @@ -1873,6 +2013,13 @@ + + + + + + + @@ -1886,6 +2033,19 @@ + + + + + + + + + + + + + @@ -1944,6 +2104,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -1992,6 +2174,11 @@ + + + + + @@ -1999,6 +2186,7 @@ + diff --git a/v2/2_1_1/src/agencies_rnc_2_1_1.template b/v2/2_1_1/src/agencies_rnc_2_1_1.template index 55ef425..ba230ff 100644 --- a/v2/2_1_1/src/agencies_rnc_2_1_1.template +++ b/v2/2_1_1/src/agencies_rnc_2_1_1.template @@ -7,6 +7,13 @@ agenciesElement = contributorElement+ } +paratextZipResourceAgenciesElement = + element agencies { + rightsHolderElement+ & + rightsAdminElement? & + contributorElement? + } + rightsHolderElement = element rightsHolder { element abbr { lenGe2String } & @@ -16,7 +23,6 @@ rightsHolderElement = element name { lenGe2String } } - rightsAdminElement = element rightsAdmin { element url { anyURI }? & diff --git a/v2/2_1_1/src/document_types_rnc_2_1_1.template b/v2/2_1_1/src/document_types_rnc_2_1_1.template index 5df3f70..e221df3 100644 --- a/v2/2_1_1/src/document_types_rnc_2_1_1.template +++ b/v2/2_1_1/src/document_types_rnc_2_1_1.template @@ -1,6 +1,6 @@ # Document types -dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata) +dblMetadataElement = (translationMetadata | expressionMetadata | translationAndExpressionMetadata | paratextZipResourceMetadata) translationMetadata = textTranslationMetadata | audioTranslationMetadata | videoTranslationMetadata @@ -107,6 +107,20 @@ videoTranslationAndExpressionMetadata = element DBLMetadata { videoFormatElement } +paratextZipResourceMetadata = element DBLMetadata { + dblMetadataCommonAtts & + paratextZipResourceIdentificationElement & + paratextZipResourceTypeElement & + relationshipsElement & + paratextZipResourceAgenciesElement & + shortLanguageElement & + translationManifestElement & + paratextZipResourceSourceElement & + paratextZipResourcePublicationsElement & + copyrightElement & + archiveStatusElement +} + translationCommonElements = ( commonElements & translationManifestElement & diff --git a/v2/2_1_1/src/identification_rnc_2_1_1.template b/v2/2_1_1/src/identification_rnc_2_1_1.template index c6a9814..33c2065 100644 --- a/v2/2_1_1/src/identification_rnc_2_1_1.template +++ b/v2/2_1_1/src/identification_rnc_2_1_1.template @@ -10,9 +10,19 @@ identificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & + element dateCompleted { dateCompletedValue }? & + (gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + element bundleProducer { lenGe2String } + } +paratextZipResourceIdentificationElement = + element identification { + element name { lenGe2String } & + element nameLocal { lenGe2String }? & + element abbreviation { abbreviationString } & + element abbreviationLocal { localAbbreviationString }? & element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -26,9 +36,8 @@ textIdentificationElement = element descriptionLocal { lenGe2String }? & element scope { scopeEnum } & canonSpecElement? & - element dateCompleted { dateCompletedValue }? & - (gbcSystemId | ptSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & + (ptSystemId | gbcSystemId | reapSystemId | biblicaSystemId | tmsSystemId | ptregSystemId | dbpSystemId)* & element bundleProducer { lenGe2String } } @@ -70,7 +79,11 @@ ptElements = element name { lenGe2String } & element fullName { lenGe2String } & element csetId { lenGe2String }? & - element id { ptId } + element id { ptId } & + ( + element baseId { ptId } & + element baseName { lenGe2String } + )? ptregElements = element id { ptregId } diff --git a/v2/2_1_1/src/publications_rnc_2_1_1.template b/v2/2_1_1/src/publications_rnc_2_1_1.template index 54375f4..3ec5ae1 100644 --- a/v2/2_1_1/src/publications_rnc_2_1_1.template +++ b/v2/2_1_1/src/publications_rnc_2_1_1.template @@ -3,6 +3,9 @@ publicationsElement = # DCMI: tableOfContents element publications { publicationElement+ } +paratextZipResourcePublicationsElement = + element publications { paratextZipResourcePublicationElement+ } + publicationElement = element publication { attribute id { publicationId }, @@ -10,6 +13,13 @@ publicationElement = publicationChildElements } +paratextZipResourcePublicationElement = + element publication { + attribute id { publicationId }, + attribute default { xsd:boolean }?, + paratextZipResourcePublicationChildElements + } + publicationChildElements = ( element name { lenGe2String }? & element nameLocal { lenGe2String }? & @@ -23,6 +33,11 @@ publicationChildElements = ( element canonicalContent { canonicalContentBook+} & element structure { (publicationStructureDivision | publicationStructureContent)+ } ) +paratextZipResourcePublicationChildElements = ( + element name { lenGe2String }? & + element nameLocal { lenGe2String }? & + element structure { (publicationStructureDivision | publicationStructureContent)+ } +) publicationCountriesElement = element countries { countryElement+ } @@ -42,7 +57,8 @@ publicationStructureContent = element content { attribute name {nameIdString}? & attribute src {srcPathString} & - attribute role {roleId}? + attribute role {roleId}? & + attribute srcPart {srcPathPartString}? } %%insert canon_rnc_2_1_1.template%% diff --git a/v2/2_1_1/src/publications_text_rnc_2_1_1.template b/v2/2_1_1/src/publications_text_rnc_2_1_1.template index 5bd9bde..8d71085 100644 --- a/v2/2_1_1/src/publications_text_rnc_2_1_1.template +++ b/v2/2_1_1/src/publications_text_rnc_2_1_1.template @@ -1,6 +1,6 @@ # publications text -roleId = ptReference | knownRole | extensionRole +roleId = ptReference | nonCanonicalBookIdEnum | knownRole | extensionRole ptReference = xsd:string { pattern = "((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)(;(((GEN|EXO|LEV|NUM|DEU|JOS|JDG|RUT|1SA|2SA|1KI|2KI|1CH|2CH|EZR|NEH|EST|JOB|PSA|PRO|ECC|SNG|ISA|JER|LAM|EZK|DAN|HOS|JOL|AMO|OBA|JON|MIC|NAM|HAB|ZEP|HAG|ZEC|MAL|MAT|MRK|LUK|JHN|ACT|ROM|1CO|2CO|GAL|EPH|PHP|COL|1TH|2TH|1TI|2TI|TIT|PHM|HEB|JAS|1PE|2PE|1JN|2JN|3JN|JUD|REV|TOB|JDT|ESG|WIS|SIR|BAR|LJE|S3Y|SUS|BEL|1MA|2MA|3MA|4MA|1ES|2ES|MAN|PS2|ODA|PSS|JSA|JDB|TBS|SST|DNT|BLT|EZA|5EZ|6EZ|DAG|PS3|2BA|LBA|JUB|ENO|1MQ|2MQ|3MQ|REP|4BA|LAO)(( [1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?((,([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?))*))|( [1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?(,(([1-9][0-9]{0,2}(-[1-9][0-9]{0,2})?)|([1-9][0-9]{0,2}:[1-9][0-9]{0,2}(-[1-9][0-9]{0,2}(:[1-9][0-9]{0,2})?)?)))*))?)))*" } @@ -144,4 +144,4 @@ nonCanonicalBookIdEnum = ( "NDX" # Names Index ) -publicationId = xsd:string { pattern = "[A-Za-z][A-Za-z0-9_\-]{0,31}" } \ No newline at end of file +publicationId = xsd:string { pattern = "[A-Za-z][A-Za-z0-9_\-]{0,31}" } diff --git a/v2/2_1_1/src/source_rnc_2_1_1.template b/v2/2_1_1/src/source_rnc_2_1_1.template index 000d77b..c1e2eba 100644 --- a/v2/2_1_1/src/source_rnc_2_1_1.template +++ b/v2/2_1_1/src/source_rnc_2_1_1.template @@ -6,6 +6,11 @@ translationSourceElement = ( element canonicalContent { canonicalContentBook+} & element structure { (sourceStructureDivision | sourceStructureContent)+ } ) } +paratextZipResourceSourceElement = + element source { + element structure { (sourceStructureDivision | sourceStructureContent)+ } + } + sourceStructureDivision = element division { attribute name {nameIdString}, diff --git a/v2/2_1_1/src/source_text_rnc_2_1_1.template b/v2/2_1_1/src/source_text_rnc_2_1_1.template index ddebbec..22131b0 100644 --- a/v2/2_1_1/src/source_text_rnc_2_1_1.template +++ b/v2/2_1_1/src/source_text_rnc_2_1_1.template @@ -1,3 +1,5 @@ # source text srcPathString = xsd:string { pattern = "[A-Za-z0-9][\-A-Za-z0-9_\.]+(/[A-Za-z0-9][\-A-Za-z0-9_\.]+)*" } + +srcPathPartString = xsd:string { pattern = "(((zip|xpath)://)|#).+" } \ No newline at end of file diff --git a/v2/2_1_1/src/type_rnc_2_1_1.template b/v2/2_1_1/src/type_rnc_2_1_1.template index ef14f4a..e8a5bdf 100644 --- a/v2/2_1_1/src/type_rnc_2_1_1.template +++ b/v2/2_1_1/src/type_rnc_2_1_1.template @@ -112,6 +112,16 @@ videoTranslationAndExpressionTypeElement = element isConfidential { xsd:boolean } } +paratextZipResourceTypeElement = + element type { + element medium { "paratextZipResource" } & + element hasCharacters { "true" } & + element isTranslation { "false" } & + element isExpression { "false" } & + element isConfidential { xsd:boolean } & + element projectType { paratextZipResourceProjectType } +} + commonTextTranslationTypeElements = ( commonTranslationTypeElements ) diff --git a/v2/2_1_1/src/type_text_rnc_2_1_1.template b/v2/2_1_1/src/type_text_rnc_2_1_1.template index 642805f..aff3fc0 100644 --- a/v2/2_1_1/src/type_text_rnc_2_1_1.template +++ b/v2/2_1_1/src/type_text_rnc_2_1_1.template @@ -17,3 +17,17 @@ translationLevelEnum = ( "Liturgical" | "Children" ) + +paratextZipResourceProjectType = ( + "Standard" | + "Daughter" | + "StudyBible" | + "StudyBibleAdditions" | + "BackTranslation" | + "Auxiliary" | + "TransliterationManual"| + "TransliterationWithEncoder" | + "ConsultantNotes" | + "GlobalConsultantNotes" | + "GlobalAnthropologyNotes" +) \ No newline at end of file diff --git a/v2/2_1_1/test_docs/broken_converted_2_1.xml b/v2/2_1_1/test_docs/broken_converted_2_1.xml new file mode 100644 index 0000000..2ade96d --- /dev/null +++ b/v2/2_1_1/test_docs/broken_converted_2_1.xml @@ -0,0 +1,315 @@ +from Eric's uri: ``` + + English: NT Background Notes - Craig Keener + + NTBN + + Paratext/7.6.54.151 + + d825aeedcdfea7ae4e1fe9d33aade4ea1e70fd16 + 81764f7cba5f6e4d4d7a4af1923f41bba215ec0b + NTBN + English: NT Background Notes - Craig Keener + + + + text + true + true + true + true + Revision + Common + + + + + WBT + http://www.wycliffe.org + Wycliffe Bible Translators, Inc. + 545d2cb00be06579ca809b57 + Wycliffe Bible Translators, Inc. + + + + eng + English +