GithubHelp home page GithubHelp logo

Comments (3)

faithoflifedev avatar faithoflifedev commented on June 29, 2024 1

Hi @tnc1997, I was just able to test the branch. I know see no errors when running dart run build_runner build while using a prefix.

Thanks for the great work.

from dart-xml-serializable.

tnc1997 avatar tnc1997 commented on June 29, 2024

Hi @faithoflifedev, thank you very much for using xml_serializable and opening this issue.

It's expected that the generated code would include the device prefix.

I believe that json_serializable similarly does not support import prefixes (google/json_serializable.dart#19).

import 'package:json_annotation/json_annotation.dart';
import 'package:xml/xml.dart';
import 'package:xml_annotation/xml_annotation.dart' as annotation;

import 'teacher.dart' as prefix;

part 'student.g.dart';

@JsonSerializable()
@annotation.XmlRootElement()
@annotation.XmlSerializable()
class Student {
  @JsonKey()
  @annotation.XmlElement()
  prefix.Teacher teacher;

  Student({
    required this.teacher,
  });

  ...
}
import 'package:json_annotation/json_annotation.dart';
import 'package:xml/xml.dart';
import 'package:xml_annotation/xml_annotation.dart' as annotation;

part 'teacher.g.dart';

@JsonSerializable()
@annotation.XmlRootElement()
@annotation.XmlSerializable()
class Teacher {
  @JsonKey()
  @annotation.XmlElement()
  String name;

  Teacher({
    required this.name,
  });

  ...
}
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'student.dart';

// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************

Student _$StudentFromJson(Map<String, dynamic> json) => Student(
      teacher: Teacher.fromJson(json['teacher'] as Map<String, dynamic>),
    );

Map<String, dynamic> _$StudentToJson(Student instance) => <String, dynamic>{
      'teacher': instance.teacher,
    };

// **************************************************************************
// XmlSerializableGenerator
// **************************************************************************

...

Student _$StudentFromXmlElement(XmlElement element) {
  final teacher = element.getElement('teacher')!;
  return Student(teacher: Teacher.fromXmlElement(teacher));
}

...

XmlElement _$StudentToXmlElement(Student instance,
    {Map<String, String?> namespaces = const {}}) {
  return XmlElement(
      XmlName('Student'),
      [
        ...namespaces.toXmlAttributes(),
        ...instance.toXmlAttributes(namespaces: namespaces)
      ],
      instance.toXmlChildren(namespaces: namespaces));
}

I will investigate this functionality over the coming weeks to see if it is reasonably implementable and let you know.

from dart-xml-serializable.

tnc1997 avatar tnc1997 commented on June 29, 2024

Hi @faithoflifedev, could I get you to verify that the changes in this branch resolve this issue for you?

from dart-xml-serializable.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.