Skip to content

Commit 861be1b

Browse files
committed
Add initial support for id attributes (primitive or inline), linking them
to values and requiring uniqueness.
1 parent a77f16e commit 861be1b

File tree

7 files changed

+263
-18
lines changed

7 files changed

+263
-18
lines changed

Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Features:
55
be ordered before/after elements that do not have this. Explicit order
66
relationships will be maintained.
77
- Support checking ordering in reading.
8+
- Support ID type attributes with an @XmlId attribute marking them
89

910
Fixes:
1011
- For attribute lists, make sure to collapse the whitespace.

serialization/api/android/serialization.api

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,13 @@ public synthetic class nl/adaptivity/xmlutil/serialization/XmlElement$Impl : nl/
461461
public final synthetic fun value ()Z
462462
}
463463

464+
public abstract interface annotation class nl/adaptivity/xmlutil/serialization/XmlId : java/lang/annotation/Annotation {
465+
}
466+
467+
public synthetic class nl/adaptivity/xmlutil/serialization/XmlId$Impl : nl/adaptivity/xmlutil/serialization/XmlId {
468+
public fun <init> ()V
469+
}
470+
464471
public abstract interface annotation class nl/adaptivity/xmlutil/serialization/XmlIgnoreWhitespace : java/lang/annotation/Annotation {
465472
public abstract fun value ()Z
466473
}
@@ -703,6 +710,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlAttributeMap
703710
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
704711
public fun getPreserveSpace ()Z
705712
public final fun getValueDescriptor ()Lnl/adaptivity/xmlutil/serialization/structure/XmlDescriptor;
713+
public fun isIdAttr ()Z
706714
}
707715

708716
public final class nl/adaptivity/xmlutil/serialization/structure/XmlCompositeDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlValueDescriptor {
@@ -714,6 +722,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlCompositeDes
714722
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
715723
public fun getPreserveSpace ()Z
716724
public fun hashCode ()I
725+
public fun isIdAttr ()Z
717726
}
718727

719728
public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlDescriptor : nl/adaptivity/xmlutil/serialization/structure/SafeXmlDescriptor {
@@ -735,6 +744,7 @@ public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlDescripto
735744
public fun hashCode ()I
736745
public fun isCData ()Z
737746
public fun isElementOptional (I)Z
747+
public abstract fun isIdAttr ()Z
738748
public fun isNullable ()Z
739749
public fun isUnsigned ()Z
740750
public final fun toString ()Ljava/lang/String;
@@ -748,6 +758,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlInlineDescri
748758
public fun getPreserveSpace ()Z
749759
public fun getTagName ()Ljavax/xml/namespace/QName;
750760
public fun hashCode ()I
761+
public fun isIdAttr ()Z
751762
public fun isUnsigned ()Z
752763
}
753764

@@ -757,6 +768,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlListDescript
757768
public fun getElementDescriptor (I)Lnl/adaptivity/xmlutil/serialization/structure/XmlDescriptor;
758769
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
759770
public fun hashCode ()I
771+
public fun isIdAttr ()Z
760772
}
761773

762774
public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlListLikeDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlDescriptor {
@@ -772,6 +784,7 @@ public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlListLikeD
772784
public final class nl/adaptivity/xmlutil/serialization/structure/XmlMapDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlListLikeDescriptor {
773785
public fun getElementDescriptor (I)Lnl/adaptivity/xmlutil/serialization/structure/XmlDescriptor;
774786
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
787+
public fun isIdAttr ()Z
775788
public final fun isValueCollapsed ()Z
776789
}
777790

@@ -805,6 +818,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlPolymorphicD
805818
public final fun getPolymorphicMode ()Lnl/adaptivity/xmlutil/serialization/structure/PolymorphicMode;
806819
public fun getPreserveSpace ()Z
807820
public fun hashCode ()I
821+
public fun isIdAttr ()Z
808822
public final fun isTransparent ()Z
809823
}
810824

@@ -815,6 +829,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlPrimitiveDes
815829
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
816830
public fun getPreserveSpace ()Z
817831
public fun hashCode ()I
832+
public fun isIdAttr ()Z
818833
}
819834

820835
public final class nl/adaptivity/xmlutil/serialization/structure/XmlRootDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlDescriptor {
@@ -826,6 +841,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlRootDescript
826841
public fun getPreserveSpace ()Z
827842
public fun getTagName ()Ljavax/xml/namespace/QName;
828843
public fun hashCode ()I
844+
public fun isIdAttr ()Z
829845
}
830846

831847
public final class nl/adaptivity/xmlutil/serialization/structure/XmlTypeDescriptor {

serialization/api/jvm/serialization.api

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,13 @@ public synthetic class nl/adaptivity/xmlutil/serialization/XmlElement$Impl : nl/
461461
public final synthetic fun value ()Z
462462
}
463463

464+
public abstract interface annotation class nl/adaptivity/xmlutil/serialization/XmlId : java/lang/annotation/Annotation {
465+
}
466+
467+
public synthetic class nl/adaptivity/xmlutil/serialization/XmlId$Impl : nl/adaptivity/xmlutil/serialization/XmlId {
468+
public fun <init> ()V
469+
}
470+
464471
public abstract interface annotation class nl/adaptivity/xmlutil/serialization/XmlIgnoreWhitespace : java/lang/annotation/Annotation {
465472
public abstract fun value ()Z
466473
}
@@ -703,6 +710,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlAttributeMap
703710
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
704711
public fun getPreserveSpace ()Z
705712
public final fun getValueDescriptor ()Lnl/adaptivity/xmlutil/serialization/structure/XmlDescriptor;
713+
public fun isIdAttr ()Z
706714
}
707715

708716
public final class nl/adaptivity/xmlutil/serialization/structure/XmlCompositeDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlValueDescriptor {
@@ -714,6 +722,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlCompositeDes
714722
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
715723
public fun getPreserveSpace ()Z
716724
public fun hashCode ()I
725+
public fun isIdAttr ()Z
717726
}
718727

719728
public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlDescriptor : nl/adaptivity/xmlutil/serialization/structure/SafeXmlDescriptor {
@@ -735,6 +744,7 @@ public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlDescripto
735744
public fun hashCode ()I
736745
public fun isCData ()Z
737746
public fun isElementOptional (I)Z
747+
public abstract fun isIdAttr ()Z
738748
public fun isNullable ()Z
739749
public fun isUnsigned ()Z
740750
public final fun toString ()Ljava/lang/String;
@@ -748,6 +758,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlInlineDescri
748758
public fun getPreserveSpace ()Z
749759
public fun getTagName ()Ljavax/xml/namespace/QName;
750760
public fun hashCode ()I
761+
public fun isIdAttr ()Z
751762
public fun isUnsigned ()Z
752763
}
753764

@@ -757,6 +768,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlListDescript
757768
public fun getElementDescriptor (I)Lnl/adaptivity/xmlutil/serialization/structure/XmlDescriptor;
758769
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
759770
public fun hashCode ()I
771+
public fun isIdAttr ()Z
760772
}
761773

762774
public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlListLikeDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlDescriptor {
@@ -772,6 +784,7 @@ public abstract class nl/adaptivity/xmlutil/serialization/structure/XmlListLikeD
772784
public final class nl/adaptivity/xmlutil/serialization/structure/XmlMapDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlListLikeDescriptor {
773785
public fun getElementDescriptor (I)Lnl/adaptivity/xmlutil/serialization/structure/XmlDescriptor;
774786
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
787+
public fun isIdAttr ()Z
775788
public final fun isValueCollapsed ()Z
776789
}
777790

@@ -805,6 +818,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlPolymorphicD
805818
public final fun getPolymorphicMode ()Lnl/adaptivity/xmlutil/serialization/structure/PolymorphicMode;
806819
public fun getPreserveSpace ()Z
807820
public fun hashCode ()I
821+
public fun isIdAttr ()Z
808822
public final fun isTransparent ()Z
809823
}
810824

@@ -815,6 +829,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlPrimitiveDes
815829
public fun getOutputKind ()Lnl/adaptivity/xmlutil/serialization/OutputKind;
816830
public fun getPreserveSpace ()Z
817831
public fun hashCode ()I
832+
public fun isIdAttr ()Z
818833
}
819834

820835
public final class nl/adaptivity/xmlutil/serialization/structure/XmlRootDescriptor : nl/adaptivity/xmlutil/serialization/structure/XmlDescriptor {
@@ -826,6 +841,7 @@ public final class nl/adaptivity/xmlutil/serialization/structure/XmlRootDescript
826841
public fun getPreserveSpace ()Z
827842
public fun getTagName ()Ljavax/xml/namespace/QName;
828843
public fun hashCode ()I
844+
public fun isIdAttr ()Z
829845
}
830846

831847
public final class nl/adaptivity/xmlutil/serialization/structure/XmlTypeDescriptor {

0 commit comments

Comments
 (0)